Files
ClaudeCode-Roblox-Studio-MCP/inject_cod_final.py
Gemini AI 2065361e57 Add GTA city builder + background injection API for Roblox Studio
- inject_gta_city.py: Full GTA-style city with 20 buildings, roads, cars,
  street lights, traffic lights, trees, 15 human enemies with varied
  skin/clothing, and 10 COD weapons with visible gun models
- inject_bg.py: Background injection using SendMessage/PostMessage Win32 API
- inject_bg2.py: PostMessage approach targeting main window for WPF apps
- inject_cod_final.py: Working COD game injection (7-step sequential)
- cod_inject.py: Combined COD game builder with proper Studio launch
- roblox-fps-p1-p6: Split Lua scripts for multi-part injection

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-31 21:39:39 +04:00

209 lines
19 KiB
Python

"""
Fast COD game injection - command bar is already focused.
Uses paste for speed. Each step is a separate injection.
"""
import ctypes, ctypes.wintypes, subprocess, time, sys, os
user32 = ctypes.windll.user32
def key_down(vk): user32.keybd_event(vk, 0, 0, 0)
def key_up(vk): user32.keybd_event(vk, 0, 2, 0)
def press(vk): key_down(vk); time.sleep(0.02); key_up(vk)
def paste_execute(code):
tmp = os.path.join(os.environ["TEMP"], "rbx.lua")
with open(tmp, "w", encoding="utf-8") as f:
f.write(code)
subprocess.run(["powershell", "-Command", f"Get-Content '{tmp}' -Raw | Set-Clipboard"], capture_output=True, timeout=10)
time.sleep(0.2)
# Select all
key_down(0x11); key_down(0x41); time.sleep(0.02); key_up(0x41); key_up(0x11)
time.sleep(0.05)
# Paste
key_down(0x11); key_down(0x56); time.sleep(0.02); key_up(0x56); key_up(0x11)
time.sleep(0.8)
# Execute
press(0x0D)
time.sleep(2)
# Bring Studio to front
def find_studio():
target = [None]
def cb(hwnd, _):
l = user32.GetWindowTextLengthW(hwnd)
if l > 0:
buf = ctypes.create_unicode_buffer(l + 1)
user32.GetWindowTextW(hwnd, buf, l + 1)
if "Roblox Studio" in buf.value:
target[0] = hwnd
return False
return True
WNDENUMPROC = ctypes.WINFUNCTYPE(ctypes.c_bool, ctypes.wintypes.HWND, ctypes.wintypes.LPARAM)
user32.EnumWindows(WNDENUMPROC(cb), 0)
return target[0]
hwnd = find_studio()
if not hwnd:
print("Studio not found!"); sys.exit(1)
user32.ShowWindow(hwnd, 9); time.sleep(0.3)
user32.SetForegroundWindow(hwnd); time.sleep(0.3)
# ============ STEP 1: Clean + Ground + Lighting ============
print("[1/7] Ground + lighting...")
paste_execute("""for _,v in pairs(workspace:GetChildren()) do if v:IsA("Model")or v:IsA("Part")or v:IsA("Folder")then if v.Name~="Camera"and v.Name~="Terrain"then v:Destroy()end end end
for _,v in pairs(game.ServerScriptService:GetChildren())do v:Destroy()end
for _,v in pairs(game.StarterGui:GetChildren())do v:Destroy()end
for _,v in pairs(game.StarterPlayer.StarterPlayerScripts:GetChildren())do v:Destroy()end
for _,v in pairs(game.ReplicatedStorage:GetChildren())do v:Destroy()end
wait(0.2)
local g=Instance.new("Part",workspace)g.Name="Ground"g.Size=Vector3.new(500,2,500)g.Position=Vector3.new(0,-1,0)g.Anchored=true g.BrickColor=BrickColor.new("Dark stone grey")g.Material=Enum.Material.Asphalt
local L=game:GetService("Lighting")L.ClockTime=6 L.Brightness=0.3 L.FogEnd=500 L.FogStart=100 L.Ambient=Color3.fromRGB(50,50,70) L.OutdoorAmbient=Color3.fromRGB(40,40,60)
print("STEP1 DONE")""")
# ============ STEP 2: Buildings + Cover ============
print("[2/7] Buildings + cover...")
paste_execute("""local blds={{-80,10,-100,35,22,28},{90,10,-70,28,18,32},{-50,11,80,40,24,22},{100,9,90,25,16,30},{0,13,-160,32,26,32},{-130,10,0,22,20,22},{130,10,-30,26,20,26}}
for i,b in ipairs(blds)do local m=Instance.new("Model",workspace)m.Name="Building"..i local p=Instance.new("Part",m)p.Size=Vector3.new(b[4],b[5],b[6])p.Position=Vector3.new(b[1],b[2],b[3])p.Anchored=true p.BrickColor=BrickColor.new(i%2==0 and"Medium stone grey"or"Brown")p.Material=Enum.Material.Brick end
for i=1,30 do local x,z=math.random(-200,200),math.random(-200,200)local p=Instance.new("Part",workspace)p.Anchored=true p.Name="Cover"..i if i%3==0 then p.Size=Vector3.new(2,4,2)p.Position=Vector3.new(x,2,z)p.BrickColor=BrickColor.new("Reddish brown")p.Material=Enum.Material.Metal p.Shape=Enum.PartType.Cylinder elseif i%3==1 then p.Size=Vector3.new(4,4,4)p.Position=Vector3.new(x,2,z)p.BrickColor=BrickColor.new("Brown")p.Material=Enum.Material.Wood else p.Size=Vector3.new(7,2.5,3)p.Position=Vector3.new(x,1.25,z)p.BrickColor=BrickColor.new("Brick yellow")p.Material=Enum.Material.Sand end end
for i=1,4 do local x,z=({-180,-180,180,180})[i],({-180,180,-180,180})[i]local t=Instance.new("Model",workspace)t.Name="Tower"..i for _,o in ipairs({{-2,0,-2},{2,0,-2},{-2,0,2},{2,0,2}})do local l=Instance.new("Part",t)l.Size=Vector3.new(1,18,1)l.Position=Vector3.new(x+o[1],9,z+o[2])l.Anchored=true l.BrickColor=BrickColor.new("Dark stone grey")end local pl=Instance.new("Part",t)pl.Size=Vector3.new(8,1,8)pl.Position=Vector3.new(x,18,z)pl.Anchored=true pl.BrickColor=BrickColor.new("Brown")pl.Material=Enum.Material.Wood end
print("STEP2 DONE")""")
# ============ STEP 3: WeaponData + Events ============
print("[3/7] Weapons + events...")
paste_execute("""local sh=Instance.new("Folder",game.ReplicatedStorage)sh.Name="Shared"
local ev=Instance.new("Folder",game.ReplicatedStorage)ev.Name="Events"
for _,n in ipairs({"HitEvent","KillEvent","DamageEvent","HitMarkerEvent"})do Instance.new("RemoteEvent",ev).Name=n end
local wd=Instance.new("ModuleScript",sh)wd.Name="WeaponData"
wd.Source=[[local W={n="M4A1",d=28,h=2.5,f=0.09,m=30,r=2.2,s=0.02,a=0.007,rc=0.3,rng=350,auto=true},{n="AK-47",d=32,h=2.5,f=0.11,m=30,r=2.5,s=0.03,a=0.012,rc=0.45,rng=300,auto=true},{n="SCAR-H",d=38,h=2.5,f=0.1,m=20,r=2.6,s=0.022,a=0.009,rc=0.4,rng=400,auto=true},{n="ACR 6.8",d=30,h=2.5,f=0.075,m=30,r=2,s=0.015,a=0.005,rc=0.25,rng=380,auto=true},{n="MP7",d=22,h=2,f=0.06,m=40,r=1.8,s=0.03,a=0.012,rc=0.12,rng=140,auto=true},{n="MP5",d=21,h=2,f=0.07,m=30,r=1.7,s=0.032,a=0.014,rc=0.15,rng=150,auto=true},{n="AWP",d=120,h=3,f=1.5,m=10,r=3.5,s=0.001,a=0,rc=2.5,rng=900,auto=false,zm=8},{n="Intervention",d=98,h=3,f=1.2,m=5,r=3,s=0.002,a=0,rc=3,rng=850,auto=false,zm=10},{n="SPAS-12",d=18,h=1.5,f=0.85,m=8,r=3,s=0.09,a=0.07,rc=1.5,rng=45,auto=false,pel=8},{n="RPG-7",d=250,h=1,f=2.5,m=1,r=4.5,s=0.01,a=0.005,rc=3.5,rng=250,auto=false,expl=true,bl=25},}return W]]
print("STEP3 DONE")""")
# ============ STEP 4: Game Server + Enemy AI ============
print("[4/7] Game server + enemy AI...")
paste_execute("""local s=Instance.new("Script",game.ServerScriptService)s.Name="GameServer"
s.Source=[[
local RS=game.ReplicatedStorage local P=game.Players local D=game.Debris
local E=RS:WaitForChild("Events") local HE=E.HitEvent KE=E.KillEvent DE=E.DamageEvent HME=E.HitMarkerEvent
P.PlayerAdded:Connect(function(pl)
local ls=Instance.new("Folder",pl)ls.Name="leaderstats"
local k=Instance.new("IntValue",ls)k.Name="Kills"k.Value=0
local d=Instance.new("IntValue",ls)d.Name="Deaths"d.Value=0
pl.CharacterAdded:Connect(function(c)local h=c:WaitForChild("Humanoid")h.MaxHealth=100 h.Health=100 h.WalkSpeed=20
h.Died:Connect(function()d.Value=d.Value+1 task.delay(4,function()if pl and pl.Parent then pl:LoadCharacter()end end)end)end)end)
HE.OnServerEvent:Connect(function(pl,hp,dmg,hs)
if hp and hp.Parent and hp.Parent:FindFirstChild("Humanoid")then local hm=hp.Parent.Humanoid
if hm and hm.Health>0 then local d=hs and dmg*2.5 or dmg hm:TakeDamage(d)HME:FireClient(pl,hs)
if hm.Health<=0 then KE:FireClient(pl,"Enemy")pl.leaderstats.Kills.Value=pl.leaderstats.Kills.Value+1 end end end end)
local SP={Vector3.new(-180,3,-180),Vector3.new(180,3,-180),Vector3.new(-180,3,180),Vector3.new(180,3,180),Vector3.new(0,3,-200),Vector3.new(0,3,200),Vector3.new(-200,3,0),Vector3.new(200,3,0),Vector3.new(-120,3,-120),Vector3.new(120,3,120),Vector3.new(0,3,0),Vector3.new(-60,3,60)}
local function mkE(sp)
local m=Instance.new("Model",workspace)m.Name="EnemyBot"
local t=Instance.new("Part",m)t.Name="Torso"t.Size=Vector3.new(3,3,2)t.Position=sp t.BrickColor=BrickColor.new("Dark olive green")t.Material=Enum.Material.Plastic
local hd=Instance.new("Part",m)hd.Name="Head"hd.Size=Vector3.new(2,2,2)hd.Position=sp+Vector3.new(0,2.5,0)hd.BrickColor=BrickColor.new("Medium stone grey")
for _,n in ipairs({"Left Leg","Right Leg","Left Arm","Right Arm"})do local p=Instance.new("Part",m)p.Name=n p.Size=Vector3.new(1,3,1)p.BrickColor=BrickColor.new("Dark olive green")end
m["Left Leg"].Position=sp+Vector3.new(-.75,-2.5,0)m["Right Leg"].Position=sp+Vector3.new(.75,-2.5,0)
m["Left Arm"].Position=sp+Vector3.new(-2,0,0)m["Right Arm"].Position=sp+Vector3.new(2,0,0)
local hm=Instance.new("Humanoid",m)hm.MaxHealth=100 hm.Health=100 hm.WalkSpeed=14
local rp=Instance.new("Part",m)rp.Name="HumanoidRootPart"rp.Size=Vector3.new(2,2,1)rp.Position=sp rp.Transparency=1 rp.CanCollide=false
for _,a in ipairs({{rp,t},{t,hd},{t,m["Left Leg"]},{t,m["Right Leg"]},{t,m["Left Arm"]},{t,m["Right Arm"]}})do local w=Instance.new("Weld")w.Part0=a[1]w.Part1=a[2]w.Parent=a[1]end
local tp=SP[math.random(#SP)]local ls=0
hm.Died:Connect(function()task.delay(6,function()if m.Parent then m:Destroy()end end)task.delay(15,function()mkE(SP[math.random(#SP)])end)end)
spawn(function()while m.Parent and hm.Health>0 do task.wait(.4)local r=m:FindFirstChild("HumanoidRootPart")if r then hm:MoveTo(tp)if(r.Position-tp).Magnitude<6 then tp=SP[math.random(#SP)]end end end end)
spawn(function()while m.Parent and hm.Health>0 do task.wait(.25)local r=m:FindFirstChild("HumanoidRootPart")if not r then continue end for _,pl in ipairs(P:GetPlayers())do if pl.Character and pl.Character:FindFirstChild("HumanoidRootPart")then local pr=pl.Character.HumanoidRootPart local d=(pr.Position-r.Position).Magnitude if d<70 then hm:MoveTo(pr.Position)if d<50 and tick()-ls>1.2 then ls=tick()local ph=pl.Character:FindFirstChild("Humanoid")if ph and ph.Health>0 then ph:TakeDamage(6+math.random(8))DE:FireClient(pl,8)end end end end end end end)
end
for i=1,12 do task.delay(i*.4,function()mkE(SP[i])end)end
]]
print("STEP4 DONE")""")
# ============ STEP 5: HUD ============
print("[5/7] HUD...")
paste_execute("""local h=Instance.new("ScreenGui",game.StarterGui)h.Name="COD_HUD"h.ResetOnSpawn=false
local c1=Instance.new("Frame",h)c1.Name="CH"c1.Size=UDim2.new(0,24,0,2)c1.Position=UDim2.new(0.5,-12,0.5,-1)c1.BackgroundColor3=Color3.new(1,1,1)c1.BorderSizePixel=0
local c2=Instance.new("Frame",h)c2.Name="CV"c2.Size=UDim2.new(0,2,0,24)c2.Position=UDim2.new(0.5,-1,0.5,-12)c2.BackgroundColor3=Color3.new(1,1,1)c2.BorderSizePixel=0
local cd=Instance.new("Frame",h)cd.Name="CDot"cd.Size=UDim2.new(0,4,0,4)cd.Position=UDim2.new(0.5,-2,0.5,-2)cd.BackgroundColor3=Color3.fromRGB(255,50,50)cd.BorderSizePixel=0
local hf=Instance.new("Frame",h)hf.Name="HP_Frame"hf.Size=UDim2.new(0,260,0,32)hf.Position=UDim2.new(0,15,1,-55)hf.BackgroundColor3=Color3.fromRGB(0,0,0)hf.BackgroundTransparency=0.4 hf.BorderSizePixel=0
local hfl=Instance.new("Frame",hf)hfl.Name="Fill"hfl.Size=UDim2.new(1,0,1,0)hfl.BackgroundColor3=Color3.fromRGB(0,180,0)hfl.BorderSizePixel=0
local htx=Instance.new("TextLabel",hf)htx.Size=UDim2.new(1,0,1,0)htx.BackgroundTransparency=1 htx.TextColor3=Color3.new(1,1,1)htx.TextStrokeTransparency=0.5 htx.Font=Enum.Font.GothamBold htx.TextSize=16 htx.Text="100"
local af=Instance.new("Frame",h)af.Name="Ammo_Frame"af.Size=UDim2.new(0,220,0,65)af.Position=UDim2.new(1,-235,1,-75)af.BackgroundTransparency=1
local at=Instance.new("TextLabel",af)at.Name="AmmoTxt"at.Size=UDim2.new(1,0,0.6,0)at.BackgroundTransparency=1 at.TextColor3=Color3.new(1,1,1)at.TextStrokeTransparency=0.5 at.Font=Enum.Font.GothamBold at.TextSize=30 at.TextXAlignment=Enum.TextXAlignment.Right at.Text="30 | 30"
local wn=Instance.new("TextLabel",af)wn.Name="WepName"wn.Size=UDim2.new(1,0,0.4,0)wn.Position=UDim2.new(0,0,.6,0)wn.BackgroundTransparency=1 wn.TextColor3=Color3.fromRGB(180,180,180)wn.Font=Enum.Font.Gotham wn.TextSize=13 wn.TextXAlignment=Enum.TextXAlignment.Right wn.Text="M4A1"
local sf=Instance.new("Frame",h)sf.Name="ScoreFrame"sf.Size=UDim2.new(0,180,0,36)sf.Position=UDim2.new(0.5,-90,0,8)sf.BackgroundColor3=Color3.fromRGB(0,0,0)sf.BackgroundTransparency=0.5 sf.BorderSizePixel=0
local st=Instance.new("TextLabel",sf)st.Name="ScoreTxt"st.Size=UDim2.new(1,0,1,0)st.BackgroundTransparency=1 st.TextColor3=Color3.new(1,1,1)st.Font=Enum.Font.GothamBold st.TextSize=18 st.Text="KILLS: 0"
local kf=Instance.new("Frame",h)kf.Name="KillFeed"kf.Size=UDim2.new(0,240,0,180)kf.Position=UDim2.new(1,-250,0,8)kf.BackgroundTransparency=1 Instance.new("UIListLayout",kf)
local hm=Instance.new("Frame",h)hm.Name="HitMark"hm.Size=UDim2.new(0,30,0,30)hm.Position=UDim2.new(0.5,-15,0.5,-15)hm.BackgroundTransparency=1 hm.Visible=false
for _,a in ipairs({{15,0,45},{0,15,45}})do local f=Instance.new("Frame",hm)f.Size=UDim2.new(0,14,0,3)f.Position=UDim2.new(0,a[1],0,a[2])f.Rotation=45 f.BackgroundColor3=Color3.new(1,1,1)f.BorderSizePixel=0 end
local rb=Instance.new("Frame",h)rb.Name="ReloadBar"rb.Size=UDim2.new(0,180,0,5)rb.Position=UDim2.new(0.5,-90,1,-100)rb.BackgroundColor3=Color3.fromRGB(50,50,50)rb.BorderSizePixel=0 rb.Visible=false rb.BackgroundTransparency=0.3
Instance.new("Frame",rb).Name="Fill"Instance.new("Frame",rb).Fill.Size=UDim2.new(0,0,1,0)Instance.new("Frame",rb).Fill.BackgroundColor3=Color3.fromRGB(255,200,0)
local wb=Instance.new("Frame",h)wb.Name="WepBar"wb.Size=UDim2.new(0,400,0,28)wb.Position=UDim2.new(0.5,-200,1,-28)wb.BackgroundColor3=Color3.fromRGB(10,10,10)wb.BackgroundTransparency=0.5 wb.BorderSizePixel=0
for i,s in ipairs({{"1-4 AR",100,150,255},{"5-6 SMG",100,255,100},{"7-8 SNIPER",255,80,80},{"9 SHOTGUN",255,200,50},{"0 RPG",255,130,50}})do local l=Instance.new("TextLabel",wb)l.Size=UDim2.new(0.2,0,1,0)l.Position=UDim2.new((i-1)*0.2,0,0,0)l.BackgroundColor3=Color3.fromRGB(s[2],s[3],s[4])l.BackgroundTransparency=0.6 l.TextColor3=Color3.new(1,1,1)l.Font=Enum.Font.GothamBold l.TextSize=10 l.Text=s[1]end
print("STEP5 DONE")""")
# ============ STEP 6: Player Setup ============
print("[6/7] Player setup...")
paste_execute("""local ps=Instance.new("LocalScript",game.StarterPlayer.StarterPlayerScripts)ps.Name="PlayerSetup"
ps.Source=[[local P=game.Players local RS=game.RunService local UI=game.UserInputService local pl=P.LocalPlayer cam=workspace.CurrentCamera
pl.CharacterAdded:Connect(function(c)local h=c:WaitForChild("Humanoid")h.MaxHealth=100 h.Health=100 h.WalkSpeed=20
RS.RenderStepped:Connect(function()if h.Health>0 then cam.CameraType=Enum.CameraType.LockFirstPerson local hd=c:FindFirstChild("Head")if hd then cam.CFrame=hd.CFrame end end end)
local sp,cr=false,false
UI.InputBegan:Connect(function(i,g)if g then return end if i.KeyCode==Enum.KeyCode.LeftShift then sp=true h.WalkSpeed=32 elseif i.KeyCode==Enum.KeyCode.LeftControl then cr=true h.WalkSpeed=10 end end)
UI.InputEnded:Connect(function(i)if i.KeyCode==Enum.KeyCode.LeftShift then sp=false h.WalkSpeed=cr and 10 or 20 elseif i.KeyCode==Enum.KeyCode.LeftControl then cr=false h.WalkSpeed=sp and 32 or 20 end end)end)
]]
print("STEP6 DONE")""")
# ============ STEP 7: Weapon Controller ============
print("[7/7] Weapon controller...")
paste_execute("""local wc=Instance.new("LocalScript",game.StarterPlayer.StarterPlayerScripts)wc.Name="WeaponCtrl"
wc.Source=[[
local P=game.Players local RS=game.RunService local UI=game.UserInputService local RepS=game.ReplicatedStorage local TS=game.TweenService local D=game.Debris
local pl=P.LocalPlayer cam=workspace.CurrentCamera ms=pl:GetMouse()
local E=RepS:WaitForChild("Events")local HE=E.HitEvent KE=E.KillEvent HME=E.HitMarkerEvent
local WD=require(RepS:WaitForChild("Shared"):WaitForChild("WeaponData"))
local ci=1 ammo={} isR=false isA=false canS=true ro=0 so=0 kills=0 holdM=false
for i,w in ipairs(WD)do ammo[i]=w.m end
local function hud()return pl.PlayerGui:FindFirstChild("COD_HUD")end
local function sw(idx)if idx<1 or idx>#WD or isR then return end ci=idx local w=WD[ci]isA=false cam.FieldOfView=70 ro=0 so=0 local h=hud()if h then h.Ammo_Frame.AmmoTxt.Text=ammo[ci].." | "..w.m h.Ammo_Frame.WepName.Text=w.n end end
UI.InputBegan:Connect(function(i,g)if g then return end
if i.KeyCode.Value>=48 and i.KeyCode.Value<=57 then local idx=i.KeyCode.Value-47 if idx>0 and idx<=10 then sw(idx==10 and 10 or idx)end end
if i.UserInputType==Enum.UserInputType.MouseButton2 then local w=WD[ci]if w.zm then isA=true cam.FieldOfView=70/w.zm else isA=true TS:Create(cam,TweenInfo.new(.15),{FieldOfView=50}):Play()end end
if i.KeyCode==Enum.KeyCode.R and not isR then local w=WD[ci]if ammo[ci]<w.m then isR=true canS=false local h=hud()if h then h.ReloadBar.Visible=true local f=h.ReloadBar.Fill f.Size=UDim2.new(0,0,1,0)TS:Create(f,TweenInfo.new(w.r),{Size=UDim2.new(1,0,1,0)}):Play()end task.delay(w.r,function()ammo[ci]=w.m isR=false canS=true local h=hud()if h then h.ReloadBar.Visible=false h.Ammo_Frame.AmmoTxt.Text=ammo[ci].." | "..w.m end end)end end end)
UI.InputEnded:Connect(function(i)if i.UserInputType==Enum.UserInputType.MouseButton2 then isA=false TS:Create(cam,TweenInfo.new(.15),{FieldOfView=70}):Play()end end)
local function shoot()
local w=WD[ci]if not canS or isR or ammo[ci]<=0 then return end ammo[ci]=ammo[ci]-1
local h=hud()if h then h.Ammo_Frame.AmmoTxt.Text=ammo[ci].." | "..w.m end
local c=pl.Character if not c or not c:FindFirstChild("Head")then return end
local hd=c.Head local sp=isA and w.a or w.s sp=sp+so
local dir=(ms.Hit.Position-hd.Position).Unit+Vector3.new((math.random()-.5)*sp,(math.random()-.5)*sp,(math.random()-.5)*sp).Unit
local rp=RaycastParams.new()rp.FilterType=Enum.RaycastFilterType.Exclude rp.FilterDescendantsInstances={c}
local pe=w.pel or 1
for p=1,pe do local d=dir if pe>1 then d=dir+Vector3.new((math.random()-.5)*w.s*2,(math.random()-.5)*w.s*2,(math.random()-.5)*w.s*2).Unit end
local r=workspace:Raycast(hd.Position,d*w.rng,rp)
if r then local hp=r.Instance local hs=hp.Name=="Head"
local tr=Instance.new("Part",workspace)tr.Size=Vector3.new(.1,.1,(r.Position-hd.Position).Magnitude)tr.CFrame=CFrame.lookAt(hd.Position,r.Position)*CFrame.new(0,0,-tr.Size.Z/2)tr.Anchored=true tr.CanCollide=false tr.BrickColor=BrickColor.new("New Yeller")tr.Material=Enum.Material.Neon tr.Transparency=.4 D:AddItem(tr,.12)
if w.expl then local ex=Instance.new("Explosion",workspace)ex.Position=r.Position ex.BlastRadius=w.bl or 25 ex.BlastPressure=500000 end
if hp.Parent and hp.Parent:FindFirstChild("Humanoid")then local hm=hp.Parent.Humanoid
if hm and hm.Health>0 then local dm=hs and w.d*w.h or w.d HE:FireServer(hp,dm,hs)
if hm.Health<=0 then kills=kills+1 local h=hud()if h then h.ScoreFrame.ScoreTxt.Text="KILLS: "..kills end KE:FireServer("Enemy")end end end end end
ro=math.min(ro+w.rc,w.rc*5)so=math.min(so+w.s*.5,w.s*3)
if ammo[ci]<=0 then task.delay(.2,function()if ammo[ci]<=0 and not isR then isR=true canS=false local ww=WD[ci]local h=hud()if h then h.ReloadBar.Visible=true local f=h.ReloadBar.Fill f.Size=UDim2.new(0,0,1,0)TS:Create(f,TweenInfo.new(ww.r),{Size=UDim2.new(1,0,1,0)}):Play()end task.delay(ww.r,function()ammo[ci]=ww.m isR=false canS=true local h=hud()if h then h.ReloadBar.Visible=false h.Ammo_Frame.AmmoTxt.Text=ammo[ci].." | "..ww.m end end)end end)end end
UI.InputBegan:Connect(function(i,g)if g then return end
if i.UserInputType==Enum.UserInputType.MouseButton1 then holdM=true local w=WD[ci]
if w.auto then spawn(function()while holdM and canS do shoot()task.wait(w.f)end end)else shoot()end end end)
UI.InputEnded:Connect(function(i)if i.UserInputType==Enum.UserInputType.MouseButton1 then holdM=false end end)
RS.RenderStepped:Connect(function()ro=math.max(ro-.12,0)so=math.max(so-.008,0)end)
sw(1)print("[WeaponCtrl] 10 COD weapons loaded!")
]]
print("STEP7 DONE - ALL INJECTED!")
""")
# ============ PRESS F5 ============
print("\nStarting Play mode (F5)...")
time.sleep(1)
press(0x74) # F5
print("\n" + "=" * 50)
print(" CALL OF DUTY - ROBLOX EDITION LOADED!")
print("=" * 50)
print(" WASD=Move LMB=Shoot RMB=ADS R=Reload")
print(" Shift=Sprint Ctrl=Crouch")
print(" 1=M4A1 2=AK-47 3=SCAR-H 4=ACR 5=MP7")
print(" 6=MP5 7=AWP 8=Intervention 9=SPAS 0=RPG")
print("=" * 50)