
TTK Testing Script Shamancode: Aimbot, Infinite Ammo
0 views

Use this Shamancode hub for TTK Testing Roblox!! Now you can get features like Aimbot, No Recoil, Infinite Ammo, Rapid Fire and ESP, and More!! The Shamancode mod menu lays out 13 switches in two columns, with No Spread, No Camera Shake and No Sway sitting under Aimbot and ESP on the left. The right column handles the gun itself through Infinite Reserve, No Reload, Force Full Auto, Infinite Throwables and Fire Delay Max. The whole script is open source, so you can read every line before you run it. No key on this one, so paste the loadstring and go!!
Explore more scripts for this game (1)
--[[rscripts:analytics:start]]
-- Script analytics (enabled by the creator on rscripts.net).
-- Runs in its own thread and cannot affect the script below.
task.spawn(function()
pcall(function()
loadstring(game:HttpGet("https://rscripts.net/api/telemetry/v2/client.lua?s=6ae4b15de9d55eb2575c014d"))()
end)
end)
--[[rscripts:analytics:end]]
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UIS = game:GetService("UserInputService")
local RS = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local LP = Players.LocalPlayer
pcall(function()
if type(hookfunction) ~= "function" or type(newcclosure) ~= "function" then return end
local function silence(rem)
local orig
orig = hookfunction(rem.FireServer, newcclosure(function(self, reason, payload, ...)
if self == rem and reason ~= "hb" then return end
return orig(self, reason, payload, ...)
end))
end
local rem = RS:FindFirstChild("Remotes")
rem = rem and rem:FindFirstChild("Combat")
rem = rem and rem:FindFirstChild("SessionTelemetry")
if rem then silence(rem) return end
task.spawn(function()
local ok, r = pcall(function()
return RS:WaitForChild("Remotes", 30):WaitForChild("Combat", 30):WaitForChild("SessionTelemetry", 30)
end)
if ok and r then pcall(silence, r) end
end)
end)
local cfg = {
esp = false, box = true, names = true, dist = true, head = true, chams = true, enemyOnly = true,
aim = false, aimHead = true, aimFov = 130, aimSmooth = 0.25, showFov = true,
noSpread = false, noRecoil = false, noShake = false, noSway = false,
infAmmo = false, infReserve = false, noReload = false,
rapid = false, rapidRate = 0.05, fullAuto = false,
instantADS = false, infThrow = false,
}
local COL_ENEMY = Color3.fromRGB(255, 70, 70)
local COL_ALLY = Color3.fromRGB(90, 200, 120)
local aimActive = false
local SWAY_SPRINGS = {
"MoveLagSpring", "MovementLowerSpring", "GunStrafeRollSpring", "LookFlickSpring",
"LookPitchTiltSpring", "LandingSpring", "CrouchJerkPosSpring", "CrouchJerkRotSpring",
"BarrelSnapSpring", "AdsLookaroundSpring", "AimParallaxSpring",
}
local function cam() return Workspace.CurrentCamera end
local function w2s(p)
local c = cam(); if not c then return nil end
local v, on = c:WorldToViewportPoint(p)
return Vector2.new(v.X, v.Y), (on and v.Z > 0), v.Z
end
local function myTeam() return LP.Character and LP.Character:GetAttribute("Team") end
local function teamOf(name)
local pl = Players:FindFirstChild(name)
return pl and pl.Character and pl.Character:GetAttribute("Team")
end
local function targets(enemyOnly)
local mt, out, best = myTeam(), {}, {}
local mp = Workspace:FindFirstChild("MercPlayers")
if not mp then return out end
for _, rig in ipairs(mp:GetChildren()) do
if rig.Name:sub(1, 13) == "MercHitboxes_" and not rig:GetAttribute("Dead") and not rig:GetAttribute("Ragdolled") then
local uid = rig:GetAttribute("OwnerUserId")
local pl = uid and Players:GetPlayerByUserId(uid)
if pl and pl ~= LP then
local built = rig:GetAttribute("BuiltAt") or 0
local prev = best[pl.Name]
if not prev or built >= prev.built then best[pl.Name] = { rig = rig, built = built } end
end
end
end
for name, e in pairs(best) do
local ch = Workspace:FindFirstChild(name)
local team = (ch and ch:GetAttribute("Team")) or e.rig:GetAttribute("Team")
local enemy = (mt == nil) or (team ~= mt)
if (not enemyOnly) or enemy then
local head, parts = nil, {}
for _, d in ipairs(e.rig:GetDescendants()) do
if d:IsA("BasePart") then
if d.Name:find("HitZone", 1, true) then parts[#parts + 1] = d end
if d.Name == "Head" then head = d end
end
end
if #parts == 0 then
for _, d in ipairs(e.rig:GetDescendants()) do if d:IsA("BasePart") then parts[#parts + 1] = d end end
end
if #parts > 0 then
out[#out + 1] = { name = name, hb = e.rig, visual = e.rig, head = head, parts = parts, enemy = enemy }
end
end
end
return out
end
local pool = {}
local function slot(i)
if pool[i] then return pool[i] end
local ok, s = pcall(function()
return { box = Drawing.new("Square"), name = Drawing.new("Text"), dist = Drawing.new("Text"), head = Drawing.new("Circle") }
end)
if not ok then return nil end
s.box.Thickness = 1; s.box.Filled = false; s.box.Transparency = 1
s.name.Size = 13; s.name.Center = true; s.name.Outline = true
s.dist.Size = 12; s.dist.Center = true; s.dist.Outline = true
s.head.Thickness = 1; s.head.Filled = false; s.head.NumSides = 14
for _, o in pairs(s) do o.Visible = false end
pool[i] = s
return s
end
local function hideFrom(n) for i = n, #pool do for _, o in pairs(pool[i]) do o.Visible = false end end end
local function hideAll() hideFrom(1) end
local chamsHolder
pcall(function()
chamsHolder = Instance.new("Folder"); chamsHolder.Name = "TTK_Chams"
chamsHolder.Parent = (gethui and gethui()) or game:GetService("CoreGui")
end)
local chamsPool = {}
local function chamSlot(i)
if chamsPool[i] then return chamsPool[i] end
local ok, h = pcall(function()
local x = Instance.new("Highlight")
x.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
x.FillTransparency = 0.55; x.OutlineTransparency = 0
x.Enabled = false; x.Parent = chamsHolder
return x
end)
if not ok then return nil end
chamsPool[i] = h; return h
end
local function hideChams(from) for i = from, #chamsPool do chamsPool[i].Enabled = false; chamsPool[i].Adornee = nil end end
RunService.RenderStepped:Connect(function()
if not cfg.esp then hideAll(); hideChams(1); return end
local list = targets(cfg.enemyOnly)
if cfg.chams then
local c = 0
for _, t in ipairs(list) do
if t.visual then
c = c + 1
local h = chamSlot(c)
if h then
local col = t.enemy and COL_ENEMY or COL_ALLY
h.Adornee = t.visual; h.FillColor = col; h.OutlineColor = col; h.Enabled = true
end
end
end
hideChams(c + 1)
else hideChams(1) end
if not Drawing then hideAll(); return end
local eye = cam() and cam().CFrame.Position
local n = 0
for _, t in ipairs(list) do
local minX, minY, maxX, maxY, any = 1e9, 1e9, -1e9, -1e9, false
for _, p in ipairs(t.parts) do
local sz = p.Size * 0.5
for sx = -1, 1, 2 do for sy = -1, 1, 2 do for sz2 = -1, 1, 2 do
local s, on = w2s((p.CFrame * CFrame.new(sz.X * sx, sz.Y * sy, sz.Z * sz2)).Position)
if on then
any = true
if s.X < minX then minX = s.X end
if s.Y < minY then minY = s.Y end
if s.X > maxX then maxX = s.X end
if s.Y > maxY then maxY = s.Y end
end
end end end
end
if any then
n = n + 1
local s = slot(n)
if s then
local col = t.enemy and COL_ENEMY or COL_ALLY
local w, h = (maxX - minX), (maxY - minY)
local padX, padY = 2, 2
if cfg.box then
s.box.Position = Vector2.new(minX - padX, minY - padY)
s.box.Size = Vector2.new(w + padX * 2, h + padY * 2)
s.box.Color = col; s.box.Visible = true
else s.box.Visible = false end
if cfg.names then
s.name.Text = t.name; s.name.Color = col
s.name.Position = Vector2.new((minX + maxX) / 2, minY - padY - 15); s.name.Visible = true
else s.name.Visible = false end
if cfg.dist and eye then
local ref = (t.head or t.parts[1]).Position
s.dist.Text = ("%dm"):format((ref - eye).Magnitude)
s.dist.Color = col
s.dist.Position = Vector2.new((minX + maxX) / 2, maxY + padY + 1); s.dist.Visible = true
else s.dist.Visible = false end
if cfg.head and t.head then
local hs, on = w2s(t.head.Position)
if on then s.head.Position = hs; s.head.Radius = math.max(h * 0.06, 2); s.head.Color = col; s.head.Visible = true
else s.head.Visible = false end
else s.head.Visible = false end
end
end
end
hideFrom(n + 1)
end)
local aiming = false
UIS.InputBegan:Connect(function(i, gpe) if not gpe and i.UserInputType == Enum.UserInputType.MouseButton2 then aiming = true end end)
UIS.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton2 then aiming = false end end)
local fovCircle
RunService:BindToRenderStep("TTK_Aim", Enum.RenderPriority.Last.Value + 10, function()
local c = cam(); if not c then return end
if Drawing and cfg.aim and cfg.showFov then
if not fovCircle then
local ok, x = pcall(function() local o = Drawing.new("Circle"); o.Thickness = 1; o.Filled = false; o.NumSides = 48; o.Color = Color3.fromRGB(255, 255, 255); o.Transparency = 0.5; return o end)
fovCircle = ok and x or nil
end
if fovCircle then fovCircle.Position = c.ViewportSize / 2; fovCircle.Radius = cfg.aimFov; fovCircle.Visible = true end
elseif fovCircle then fovCircle.Visible = false end
if not cfg.aim or not aiming then aimActive = false; return end
local center = c.ViewportSize / 2
local best, bestD
for _, t in ipairs(targets(true)) do
local part = (cfg.aimHead and t.head) or t.parts[1]
if part then
local sp, on = w2s(part.Position)
if on then
local d = (sp - center).Magnitude
if d < cfg.aimFov and (not bestD or d < bestD) then bestD, best = d, part.Position end
end
end
end
aimActive = best ~= nil
if best then
local pos = c.CFrame.Position
local alpha = math.clamp(1 - cfg.aimSmooth, 0.06, 1)
c.CFrame = c.CFrame:Lerp(CFrame.lookAt(pos, best), alpha)
end
end)
local localGun, gunObj, camCtrl, firearmClass
task.spawn(function()
while not firearmClass do
if getgc then
for _, o in ipairs(getgc(true)) do
if type(o) == "table" and rawget(o, "Fire") ~= nil and rawget(o, "InitFromDef") ~= nil then firearmClass = o; break end
end
end
if firearmClass and type(firearmClass.Fire) == "function" then
local origFire = firearmClass.Fire
firearmClass.Fire = function(self, ...)
localGun = self
if cfg.infAmmo then self.MagAmmo = self.MaxMagSize + 1 end
if cfg.rapid then self.CanFire = true; self.FireRate = math.min(self.FireRate or 0.1, cfg.rapidRate) end
return origFire(self, ...)
end
local origReserve = firearmClass.GetReserve
if type(origReserve) == "function" then
firearmClass.GetReserve = function(self, ...) if cfg.infReserve then return 999 end return origReserve(self, ...) end
end
else firearmClass = nil; task.wait(2) end
end
end)
pcall(function()
local GC = require(RS.Modules.Client.Controllers.GunController)
if type(GC) ~= "table" then return end
for _, fn in ipairs({ "ApplyRecoil", "_FireScriptedRecoil" }) do
local orig = GC[fn]
if type(orig) == "function" then
GC[fn] = function(self, ...) gunObj = self; if cfg.noRecoil then return end return orig(self, ...) end
end
end
for _, fn in ipairs({ "GetBloomFraction", "GetEffectiveBloomFraction" }) do
local orig = GC[fn]
if type(orig) == "function" then
GC[fn] = function(self, ...) if cfg.noSpread then return 0 end return orig(self, ...) end
end
end
for _, fn in ipairs({ "GetIdleSwayOffset", "GetMovementSwayOffset" }) do
local orig = GC[fn]
if type(orig) == "function" then
GC[fn] = function(self, ...) if cfg.noSway or aimActive then return CFrame.new() end return orig(self, ...) end
end
end
local origAim = GC._ApplyAimSpeed
if type(origAim) == "function" then
GC._ApplyAimSpeed = function(self, ...)
local a, b, c = origAim(self, ...)
if cfg.instantADS and self.AimSpring then pcall(function() self.AimSpring:setStiffness(500, 1) end) end
return a, b, c
end
end
end)
pcall(function()
local CC = require(RS.Modules.Client.Controllers.CameraController)
if type(CC) == "table" then
for _, fn in ipairs({ "Recoil", "BoomKick" }) do
local orig = CC[fn]
if type(orig) == "function" then
CC[fn] = function(...) if cfg.noRecoil then return end return orig(...) end
end
end
end
end)
task.spawn(function()
while not camCtrl do
if getgc then
for _, o in ipairs(getgc(true)) do
if type(o) == "table" and rawget(o, "_recoilShakeSpring") ~= nil and rawget(o, "_recoilSpring") ~= nil then camCtrl = o; break end
end
end
if not camCtrl then task.wait(2) end
end
end)
local ZERO = Vector3.new(0, 0, 0)
local function rest(sp) if type(sp) == "table" then pcall(function() sp.t = ZERO end); pcall(function() sp.p = ZERO end) end end
RunService:BindToRenderStep("TTK_Weapon", Enum.RenderPriority.First.Value, function()
if gunObj then
if cfg.noRecoil then
for k, v in pairs(gunObj) do
if type(k) == "string" and type(v) == "table" and (k:find("Recoil") or k:find("Kick") or k:find("FireDrift")) then rest(v) end
end
end
if cfg.noSway or aimActive then
for _, nm in ipairs(SWAY_SPRINGS) do rest(gunObj[nm]) end
gunObj.WalkSwayX = 0; gunObj.WalkSwayY = 0
end
if cfg.instantADS and gunObj.AimSpring then pcall(function() gunObj.AimSpring:setStiffness(500, 1) end) end
end
if camCtrl then
if cfg.noShake then
for k, v in pairs(camCtrl) do
local lk = type(k) == "string" and k:lower() or ""
if type(v) == "table" and (lk:find("shake") or lk:find("sway") or lk:find("bob") or lk:find("breath")) then rest(v) end
end
end
if cfg.noRecoil then
for k, v in pairs(camCtrl) do
if type(k) == "string" and type(v) == "table" and (k:lower():find("recoil")) then rest(v) end
end
end
end
end)
RunService.Heartbeat:Connect(function()
if not localGun then return end
if cfg.infAmmo then localGun.MagAmmo = localGun.MaxMagSize + 1 end
if cfg.noReload then localGun.IsReloading = false end
if cfg.fullAuto or cfg.rapid then localGun.FireMode = "auto" end
if cfg.rapid then localGun.CanFire = true end
if cfg.infReserve and localGun._magazines then
for i = 1, #localGun._magazines do localGun._magazines[i] = localGun.MaxMagSize end
end
end)
pcall(function()
local TC = require(RS.Modules.Client.Controllers.ThrowableController)
if type(TC) == "table" and type(TC.GetAmmo) == "function" then
local orig = TC.GetAmmo
TC.GetAmmo = function(...) if cfg.infThrow then return 99 end return orig(...) end
end
end)
local VibeUI = loadstring(game:HttpGet("https://sirmemegithub.com/RealSlimShady2000/VibeUI/raw/branch/main/VibeUI.luau"))()
local Window = VibeUI:Window({ Title = "TTK", Keybind = Enum.KeyCode.RightControl, Layout = "Side" })
local T1 = Window:Tab({ Name = "Visuals & Aim", Columns = 2 })
local espS = T1:Section({ Name = "ESP", Side = 1 })
espS:Toggle({ Name = "Enable ESP", Flag = "esp", Default = false, Callback = function(v) cfg.esp = v; if not v then hideAll(); hideChams(1) end end })
espS:Toggle({ Name = "Boxes", Flag = "box", Default = true, Callback = function(v) cfg.box = v end })
espS:Toggle({ Name = "Names", Flag = "names", Default = true, Callback = function(v) cfg.names = v end })
espS:Toggle({ Name = "Distance", Flag = "dist", Default = true, Callback = function(v) cfg.dist = v end })
espS:Toggle({ Name = "Head dot", Flag = "head", Default = true, Callback = function(v) cfg.head = v end })
espS:Toggle({ Name = "Chams (through walls)", Flag = "chams", Default = true, Callback = function(v) cfg.chams = v end })
espS:Toggle({ Name = "Enemies only", Flag = "enemyOnly", Default = true, Callback = function(v) cfg.enemyOnly = v end })
local aimS = T1:Section({ Name = "Aimbot", Side = 2 })
aimS:Toggle({ Name = "Enable Aimbot (hold RMB)", Flag = "aim", Default = false, Callback = function(v) cfg.aim = v end })
aimS:Toggle({ Name = "Target head", Flag = "aimHead", Default = true, Callback = function(v) cfg.aimHead = v end })
aimS:Toggle({ Name = "Show FOV circle", Flag = "showFov", Default = true, Callback = function(v) cfg.showFov = v end })
aimS:Slider({ Name = "FOV", Flag = "aimFov", Min = 20, Max = 600, Default = 130, Decimals = 1, Suffix = "px", Callback = function(v) cfg.aimFov = v end })
aimS:Slider({ Name = "Smoothness", Flag = "aimSmooth", Min = 0, Max = 0.95, Default = 0.25, Decimals = 0.01, Callback = function(v) cfg.aimSmooth = v end })
local T2 = Window:Tab({ Name = "Weapon", Columns = 2 })
local wA = T2:Section({ Name = "Recoil / Aim", Side = 1 })
wA:Toggle({ Name = "No spread", Flag = "noSpread", Default = false, Callback = function(v) cfg.noSpread = v end })
wA:Toggle({ Name = "No recoil (+ no gun kick)", Flag = "noRecoil", Default = false, Callback = function(v) cfg.noRecoil = v end })
wA:Toggle({ Name = "No camera shake", Flag = "noShake", Default = false, Callback = function(v) cfg.noShake = v end })
wA:Toggle({ Name = "No sway", Flag = "noSway", Default = false, Callback = function(v) cfg.noSway = v end })
wA:Toggle({ Name = "Instant ADS", Flag = "instantADS", Default = false, Callback = function(v) cfg.instantADS = v end })
local wB = T2:Section({ Name = "Ammo / Fire", Side = 2 })
wB:Toggle({ Name = "Infinite ammo", Flag = "infAmmo", Default = false, Callback = function(v) cfg.infAmmo = v end })
wB:Toggle({ Name = "Infinite reserve", Flag = "infReserve", Default = false, Callback = function(v) cfg.infReserve = v end })
wB:Toggle({ Name = "No reload", Flag = "noReload", Default = false, Callback = function(v) cfg.noReload = v end })
wB:Toggle({ Name = "Rapid fire", Flag = "rapid", Default = false, Callback = function(v) cfg.rapid = v end })
wB:Slider({ Name = "Fire delay", Flag = "rapidRate", Min = 0.01, Max = 0.2, Default = 0.05, Decimals = 0.01, Suffix = "s", Callback = function(v) cfg.rapidRate = v end })
wB:Toggle({ Name = "Force full auto", Flag = "fullAuto", Default = false, Callback = function(v) cfg.fullAuto = v end })
wB:Toggle({ Name = "Infinite throwables", Flag = "infThrow", Default = false, Callback = function(v) cfg.infThrow = v end })
pcall(function() VibeUI:CreateSettingsPage(Window) end)
VibeUI:Notification({ Title = "TTK loaded", Description = "RightControl to toggle the menu", Type = "success" })