Roblox El Paso Roleplay Script (October 2026)

PUBLISHEDUPDATED
1 Available ScriptFree

Grinding out money and dodging checkpoint inspections can get old fast when you just want to cause chaos in El Paso Roleplay script sessions.

You spawn your car, drive to the checkpoint to get inspected, pick up a legal job, or just start total chaos around the Texas-inspired city streets. It is all about roleplaying as police, SWAT, or regular citizens while managing cars and cash.

If you want to skip the usual hassle and test out some working weapon upgrades, here is the script you need right now.

El Paso Roleplay Script – Gun mods(Poisonbablo) & More

Gun mods(Poisonbablo) & MoreFree
Gun mods(Poisonbablo)
-- [[ Rscripts Risk Notice ]]
-- This script is not verified by rscripts.net. Deal with caution.
--
-- Stay safe:
--   • Never log in on unofficial Roblox sites or lookalike domains.
--   • Real Roblox links use roblox.com (check the .com ending).
--   • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End Rscripts Risk Notice ]]

--[[rscripts:analytics:start]]
task.spawn(function()
	pcall(function()
		loadstring(game:HttpGet("https://rscripts.net/api/telemetry/v2/client.lua?s=6adb3714e3d4c3928f756eac"))()
	end)
end)
--[[rscripts:analytics:end]]

--===========================================================
--   GLOCK CONTROL v4.0  |  El Paso Roleplay  (English)
--   --------------------------------------------------------
--   - Hitbox only expands on enemies (team check)
--   - Fire rate: scans every weapon module for rate/delay
--     fields + tool attributes and values, direction selectable
--   - Panic button: instantly reverts to vanilla values
--   - NEW: Player section (CFrame speed, infinite jump, fly...)
--===========================================================

local P=game:GetService("Players")
local U=game:GetService("UserInputService")
local T=game:GetService("TweenService")
local RS=game:GetService("RunService")
local LIGHT=game:GetService("Lighting")
local VU=game:GetService("VirtualUser")
local lp=P.LocalPlayer
local CG=game:GetService("CoreGui")
local PG=lp:WaitForChild("PlayerGui")
local SG=game:GetService("StarterGui")
local RFs=game:GetService("ReplicatedFirst")
local RSv=game:GetService("ReplicatedStorage")

local MYID=(shared.__GlockID or 0)+1
shared.__GlockID=MYID
local DIRTY=false
local DIRTYT=tick()

for _,par in ipairs({CG,PG})do
	local g=par:FindFirstChild("GlockControl")
	if g then DIRTY=true pcall(function()g:Destroy()end)end
	local e=par:FindFirstChild("GCErr")
	if e then pcall(function()e:Destroy()end)end
end

local function vp()
	local c=workspace.CurrentCamera
	if c and c.ViewportSize.X>0 then return c.ViewportSize end
	return Vector2.new(1000,1700)
end
local V0=vp()
local SC=U.TouchEnabled and math.clamp(math.min(V0.X,V0.Y)/620,1,1.9)or 1
local function S(v)return math.floor(v*SC+.5)end
local function n(c,p,q)local o=Instance.new(c)for k,v in pairs(p)do o[k]=v end o.Parent=q return o end
local function tw(o,t,p)local a=T:Create(o,t,p)a:Play()return a end
local function crn(o,r)return n("UICorner",{CornerRadius=UDim.new(0,S(r))},o)end

local C={
	bg=Color3.fromRGB(13,14,18),pn=Color3.fromRGB(21,23,30),
	rw=Color3.fromRGB(28,31,40),rwH=Color3.fromRGB(36,40,52),
	ac=Color3.fromRGB(88,160,255),ad=Color3.fromRGB(28,58,104),
	tx=Color3.fromRGB(238,241,248),mu=Color3.fromRGB(140,148,166),
	of=Color3.fromRGB(52,56,68),dn=Color3.fromRGB(232,96,96),
	gn=Color3.fromRGB(80,200,140),wh=Color3.new(1,1,1)}

local DEF={Torso=Vector3.new(2,2,1),["Left Arm"]=Vector3.new(1,2,1),["Right Arm"]=Vector3.new(1,2,1),["Left Leg"]=Vector3.new(1,2,1),["Right Leg"]=Vector3.new(1,2,1),
UpperTorso=Vector3.new(2,2,1),LowerTorso=Vector3.new(2,1,1),
LeftUpperArm=Vector3.new(1,2,1),RightUpperArm=Vector3.new(1,2,1),LeftLowerArm=Vector3.new(1,2,1),RightLowerArm=Vector3.new(1,2,1),
LeftHand=Vector3.new(1,1,1),RightHand=Vector3.new(1,1,1),
LeftUpperLeg=Vector3.new(1,2,1),RightUpperLeg=Vector3.new(1,2,1),LeftLowerLeg=Vector3.new(1,2,1),RightLowerLeg=Vector3.new(1,2,1),
LeftFoot=Vector3.new(1,1,1),RightFoot=Vector3.new(1,1,1)}

local st={
	fullauto=false,norecoil=false,nospread=false,instantads=false,
	penetration=false,ignoreprot=false,breach=false,bigmag=false,tracers=false,
	firerate=1,fdir="both",nofalloff=false,longtracer=false,steadyaim=false,
	ballistics=1,ammuhelp=true,
	hitbox=false,hitboxsize=5,hitboxparts="vartalo",hitboxvis=false,
	teamcheck=true,hitboxnpc=false,pause=false,
	keybind=Enum.KeyCode.RightShift,
	-- player
	walkspeed=16,jumppower=50,cfspeed=false,cfspeedval=60,
	flyspeed=60,fly=false,infjump=false,noclip=false,
	fullbright=false,clicktp=false,antiafk=false}

local DEFST={}
for k,v in pairs(st)do DEFST[k]=v end

local GS,BASE,MOD
local PAUSED=false
local RD={}
local RF=function()end
local ST=function()end

local ok,err=pcall(function()

local gui=n("ScreenGui",{Name="GlockControl",ResetOnSpawn=false,IgnoreGuiInset=true,DisplayOrder=2147483647,ZIndexBehavior=Enum.ZIndexBehavior.Sibling},CG)

local WW=math.min(S(340),math.floor(V0.X*.92))
local WH=math.min(S(566),math.floor(V0.Y*.8))
local HD=S(48)
local FTH=S(40)
local Y0=math.max(S(50),math.floor(V0.Y*.04))

local sh=n("Frame",{Size=UDim2.fromOffset(WW,WH),Position=UDim2.new(0,S(13),0,Y0+S(4)),BackgroundColor3=Color3.fromRGB(3,4,7),BackgroundTransparency=.45,BorderSizePixel=0},gui)
crn(sh,14)
local main=n("Frame",{Size=UDim2.fromOffset(WW,WH),Position=UDim2.new(0,S(10),0,Y0),BackgroundColor3=C.bg,BorderSizePixel=0,ClipsDescendants=true},gui)
crn(main,14)
n("UIStroke",{Color=Color3.fromRGB(44,48,60),Thickness=S(1.4)},main)

local bar=n("Frame",{Size=UDim2.new(1,0,0,HD),BackgroundColor3=C.pn,BorderSizePixel=0,Active=true},main)
n("UIGradient",{Color=ColorSequence.new(Color3.fromRGB(32,38,56),Color3.fromRGB(19,21,28)),Rotation=90},bar)
local dot=n("Frame",{Size=UDim2.fromOffset(S(8),S(8)),Position=UDim2.new(0,S(14),0,S(11)),BackgroundColor3=C.ac,BorderSizePixel=0},bar)
crn(dot,4)
n("TextLabel",{Size=UDim2.new(1,-S(92),0,S(18)),Position=UDim2.new(0,S(30),0,S(7)),BackgroundTransparency=1,Font=Enum.Font.GothamBold,TextSize=S(14),TextColor3=C.tx,TextXAlignment=Enum.TextXAlignment.Left,Text="GLOCK CONTROL"},bar)
local pill=n("Frame",{Size=UDim2.fromOffset(S(160),S(19)),Position=UDim2.new(0,S(30),0,S(25)),BackgroundColor3=C.rw,BorderSizePixel=0},bar)
crn(pill,10)
local pillLbl=n("TextLabel",{Size=UDim2.new(1,-S(14),1,0),Position=UDim2.new(0,S(8),0,0),BackgroundTransparency=1,Font=Enum.Font.Gotham,TextSize=S(10),TextColor3=C.mu,TextXAlignment=Enum.TextXAlignment.Left,Text="scanning for weapon..."},pill)
local topLine=n("Frame",{Size=UDim2.new(1,0,0,S(2)),Position=UDim2.new(0,0,1,-S(2)),BackgroundColor3=C.ac,BorderSizePixel=0},bar)

local BT=S(30)
local minB=n("TextButton",{Size=UDim2.fromOffset(BT,BT),Position=UDim2.new(1,-(BT*2+S(10)),.5,-BT/2),BackgroundTransparency=1,Font=Enum.Font.GothamBold,TextSize=S(17),TextColor3=C.mu,Text="-",AutoButtonColor=false},bar)
local clB=n("TextButton",{Size=UDim2.fromOffset(BT,BT),Position=UDim2.new(1,-(BT+S(4)),.5,-BT/2),BackgroundTransparency=1,Font=Enum.Font.GothamBold,TextSize=S(16),TextColor3=C.mu,Text="x",AutoButtonColor=false},bar)
for _,b in ipairs({minB,clB})do
	b.MouseEnter:Connect(function()tw(b,TweenInfo.new(.1),{TextColor3=C.tx})end)
	b.MouseLeave:Connect(function()tw(b,TweenInfo.new(.1),{TextColor3=C.mu})end)
end

local allB=n("TextButton",{Size=UDim2.new(1,-S(20),0,S(30)),Position=UDim2.new(0,S(10),0,HD+S(8)),BackgroundColor3=C.ad,AutoButtonColor=false,Font=Enum.Font.GothamBold,TextSize=S(11),TextColor3=C.wh,Text="TURN EVERYTHING ON"},main)
crn(allB,9)

local sc=n("ScrollingFrame",{Size=UDim2.new(1,-S(20),1,-(HD+S(8)+S(30)+S(10)+FTH+S(34))),Position=UDim2.new(0,S(10),0,HD+S(8)+S(30)+S(10)),BackgroundTransparency=1,BorderSizePixel=0,ScrollBarThickness=S(4),ScrollBarImageColor3=C.of,CanvasSize=UDim2.new(0,0,0,0),AutomaticCanvasSize=Enum.AutomaticSize.Y},main)
n("UIListLayout",{Padding=UDim.new(0,S(7)),SortOrder=Enum.SortOrder.LayoutOrder},sc)

local ft=n("Frame",{Size=UDim2.new(1,-S(20),0,FTH),Position=UDim2.new(0,S(10),1,-(FTH+S(30))),BackgroundTransparency=1},main)
n("UIListLayout",{FillDirection=Enum.FillDirection.Horizontal,Padding=UDim.new(0,S(6)),VerticalAlignment=Enum.VerticalAlignment.Center},ft)
local function fb(t,c,h)
	local b=n("TextButton",{Size=UDim2.new(1/3,-S(4),0,S(34)),BackgroundColor3=c,AutoButtonColor=false,Font=Enum.Font.GothamBold,TextSize=S(11),TextColor3=C.wh,Text=t},ft)
	crn(b,9)
	b.MouseEnter:Connect(function()tw(b,TweenInfo.new(.1),{BackgroundColor3=h})end)
	b.MouseLeave:Connect(function()tw(b,TweenInfo.new(.1),{BackgroundColor3=c})end)
	return b
end
local rB=fb("Restore",Color3.fromRGB(52,56,68),Color3.fromRGB(66,71,86))
local nB=fb("Reset sizes",Color3.fromRGB(70,58,40),Color3.fromRGB(88,73,50))
local eB=fb("Swap weapon",C.ad,Color3.fromRGB(38,74,130))
local stL=n("TextLabel",{Size=UDim2.new(1,-S(20),0,S(16)),Position=UDim2.new(0,S(10),1,-S(18)),BackgroundTransparency=1,Font=Enum.Font.Gotham,TextSize=S(11),TextColor3=C.mu,TextXAlignment=Enum.TextXAlignment.Left,Text="loading..."},main)
function ST(t,c)stL.Text=t stL.TextColor3=c or C.mu end

local th=n("Frame",{Size=UDim2.new(0,S(228),0,0),Position=UDim2.new(1,-S(240),0,Y0),BackgroundTransparency=1,AutomaticSize=Enum.AutomaticSize.Y},gui)
n("UIListLayout",{Padding=UDim.new(0,S(6)),SortOrder=Enum.SortOrder.LayoutOrder,HorizontalAlignment=Enum.HorizontalAlignment.Right},th)
local function toast(msg,col)
	local f=n("Frame",{Size=UDim2.new(1,0,0,S(32)),BackgroundTransparency=1},th)
	local ir=n("Frame",{Size=UDim2.new(1,0,1,0),Position=UDim2.new(0,S(40),0,0),BackgroundColor3=C.pn,BackgroundTransparency=.12,BorderSizePixel=0},f)
	crn(ir,9)
	n("UIStroke",{Color=col or C.ac,Transparency=.5,Thickness=S(1.2)},ir)
	n("Frame",{Size=UDim2.fromOffset(S(3),S(16)),Position=UDim2.new(0,S(9),.5,-S(8)),BackgroundColor3=col or C.ac,BorderSizePixel=0},ir)
	n("TextLabel",{Size=UDim2.new(1,-S(24),1,0),Position=UDim2.new(0,S(20),0,0),BackgroundTransparency=1,Font=Enum.Font.GothamMedium,TextSize=S(11),TextColor3=C.tx,TextXAlignment=Enum.TextXAlignment.Left,Text=msg,TextTruncate=Enum.TextTruncate.AtEnd},ir)
	tw(ir,TweenInfo.new(.2,Enum.EasingStyle.Quint,Enum.EasingDirection.Out),{Position=UDim2.new(0,0,0,0)})
	task.delay(2.2,function()
		tw(ir,TweenInfo.new(.2),{BackgroundTransparency=1})
		task.wait(.22)
		pcall(function()f:Destroy()end)
	end)
end

local function sec(t)
	local s=n("Frame",{Size=UDim2.new(1,0,0,0),AutomaticSize=Enum.AutomaticSize.Y,BackgroundTransparency=1},sc)
	n("UIListLayout",{Padding=UDim.new(0,S(6)),SortOrder=Enum.SortOrder.LayoutOrder},s)
	n("TextLabel",{Size=UDim2.new(1,0,0,S(16)),BackgroundTransparency=1,Font=Enum.Font.GothamBold,TextSize=S(10),TextColor3=C.mu,TextXAlignment=Enum.TextXAlignment.Left,Text=string.upper(t)},s)
	return s
end

local function tog(par,lab,key,desc)
	local r=n("TextButton",{Size=UDim2.new(1,0,0,S(desc and 50 or 40)),BackgroundColor3=C.rw,AutoButtonColor=false,Text=""},par)
	crn(r,10)
	local lb=n("TextLabel",{Size=UDim2.new(1,-S(78),1,0),Position=UDim2.new(0,S(12),0,0),BackgroundTransparency=1,Font=Enum.Font.GothamMedium,TextSize=S(13),TextColor3=C.tx,TextXAlignment=Enum.TextXAlignment.Left,Text=lab},r)
	if desc then
		lb.Size=UDim2.new(1,-S(78),0,S(18))
		lb.Position=UDim2.new(0,S(12),0,S(8))
		n("TextLabel",{Size=UDim2.new(1,-S(78),0,S(14)),Position=UDim2.new(0,S(12),0,S(26)),BackgroundTransparency=1,Font=Enum.Font.Gotham,TextSize=S(10),TextColor3=C.mu,TextXAlignment=Enum.TextXAlignment.Left,Text=desc},r)
	end
	local sw=n("Frame",{Size=UDim2.fromOffset(S(44),S(24)),Position=UDim2.new(1,-S(12),.5,0),AnchorPoint=Vector2.new(1,.5),BackgroundColor3=C.of},r)
	crn(sw,12)
	local kn=n("Frame",{Size=UDim2.fromOffset(S(17),S(17)),Position=UDim2.new(0,S(3.5),.5,-S(8.5)),BackgroundColor3=C.wh},sw)
	crn(kn,9)
	local function pt()
		local on=st[key]
		tw(sw,TweenInfo.new(.12),{BackgroundColor3=on and C.ac or C.of})
		tw(kn,TweenInfo.new(.12),{Position=on and UDim2.new(1,-S(20.5),.5,-S(8.5))or UDim2.new(0,S(3.5),.5,-S(8.5))})
		lb.TextColor3=on and C.ac or C.tx
		r.BackgroundColor3=on and C.ad or C.rw
	end
	r.MouseButton1Click:Connect(function()st[key]=not st[key]pt()RF()end)
	r.MouseEnter:Connect(function()if not st[key]then tw(r,TweenInfo.new(.1),{BackgroundColor3=C.rwH})end end)
	r.MouseLeave:Connect(function()if not st[key]then tw(r,TweenInfo.new(.1),{BackgroundColor3=C.rw})end end)
	RD[#RD+1]=pt
	pt()
	return r
end

local function seg(par,lab,op,key)
	local b=n("Frame",{Size=UDim2.new(1,0,0,0),AutomaticSize=Enum.AutomaticSize.Y,BackgroundTransparency=1},par)
	n("UIListLayout",{Padding=UDim.new(0,S(5))},b)
	n("TextLabel",{Size=UDim2.new(1,0,0,S(15)),BackgroundTransparency=1,Font=Enum.Font.Gotham,TextSize=S(11),TextColor3=C.mu,TextXAlignment=Enum.TextXAlignment.Left,Text=lab},b)
	local sp=n("Frame",{Size=UDim2.new(1,0,0,S(34)),BackgroundTransparency=1},b)
	n("UIListLayout",{FillDirection=Enum.FillDirection.Horizontal,Padding=UDim.new(0,S(5))},sp)
	local bs,ps={},{}
	local function rp()for _,x in ipairs(bs)do ps[x]()end end
	for _,o in ipairs(op)do
		local bt=n("TextButton",{Size=UDim2.new(1/#op,-((#op-1)*S(5))/#op,1,0),BackgroundColor3=C.rw,AutoButtonColor=false,Font=Enum.Font.GothamBold,TextSize=S(12),TextColor3=C.mu,Text=o.l},sp)
		crn(bt,9)
		ps[bt]=function()
			local on=st[key]==o.v
			bt.BackgroundColor3=on and C.ac or C.rw
			bt.TextColor3=on and C.wh or C.mu
		end
		bt.MouseButton1Click:Connect(function()st[key]=o.v rp()RF()end)
		bs[#bs+1]=bt
	end
	RD[#RD+1]=rp
	rp()
end

local function slider(par,lab,key,mn,mx,step)
	local row=n("Frame",{Size=UDim2.new(1,0,0,0),AutomaticSize=Enum.AutomaticSize.Y,BackgroundTransparency=1},par)
	n("UIListLayout",{Padding=UDim.new(0,S(4))},row)
	local top=n("Frame",{Size=UDim2.new(1,0,0,S(14)),BackgroundTransparency=1},row)
	n("TextLabel",{Size=UDim2.new(1,-S(60),1,0),BackgroundTransparency=1,Font=Enum.Font.Gotham,TextSize=S(11),TextColor3=C.mu,TextXAlignment=Enum.TextXAlignment.Left,Text=lab},top)
	local val=n("TextLabel",{Size=UDim2.new(0,S(60),1,0),Position=UDim2.new(1,-S(60),0,0),BackgroundTransparency=1,Font=Enum.Font.Code,TextSize=S(11),TextColor3=C.ac,TextXAlignment=Enum.TextXAlignment.Right,Text=""},top)
	local mid=n("Frame",{Size=UDim2.new(1,0,0,S(26)),BackgroundTransparency=1},row)
	n("UIListLayout",{FillDirection=Enum.FillDirection.Horizontal,Padding=UDim.new(0,S(4)),VerticalAlignment=Enum.VerticalAlignment.Center},mid)
	local mB=n("TextButton",{Size=UDim2.fromOffset(S(26),S(26)),BackgroundColor3=C.rw,AutoButtonColor=false,Font=Enum.Font.GothamBold,TextSize=S(15),TextColor3=C.tx,Text="-"},mid)
	crn(mB,8)
	local track=n("TextButton",{Size=UDim2.new(1,-S(60),1,0),BackgroundColor3=C.rw,AutoButtonColor=false,Text=""},mid)
	crn(track,8)
	local fill=n("Frame",{Size=UDim2.new(0,0,1,0),BackgroundColor3=C.ac,BorderSizePixel=0},track)
	crn(fill,8)
	local pB=n("TextButton",{Size=UDim2.fromOffset(S(26),S(26)),BackgroundColor3=C.rw,AutoButtonColor=false,Font=Enum.Font.GothamBold,TextSize=S(15),TextColor3=C.tx,Text="+"},mid)
	crn(pB,8)
	local function show()
		local v=st[key]
		fill.Size=UDim2.new(math.clamp((v-mn)/math.max(mx-mn,1e-9),0,1),0,1,0)
		val.Text=tostring(math.floor(v+.5))
	end
	local function set(v)
		v=math.clamp(v,mn,mx)
		v=mn+math.floor((v-mn)/step+.5)*step
		v=math.clamp(v,mn,mx)
		st[key]=v
		show()
		RF()
	end
	mB.MouseButton1Click:Connect(function()set(st[key]-step)end)
	pB.MouseButton1Click:Connect(function()set(st[key]+step)end)
	track.InputBegan:Connect(function(i)
		if i.UserInputType==Enum.UserInputType.MouseButton1 or i.UserInputType==Enum.UserInputType.Touch then
			local x=(i.Position.X-track.AbsolutePosition.X)/math.max(track.AbsoluteSize.X,1)
			set(mn+(mx-mn)*math.clamp(x,0,1))
		end
	end)
	RD[#RD+1]=show
	show()
	return row
end

-- ===== WEAPON =====
local a=sec("Weapon")
tog(a,"Full auto","fullauto","Automatic fire")
seg(a,"Fire rate  (rate/delay)",{{l="default",v=1},{l="x10",v=10},{l="x20",v=20}},"firerate")
seg(a,"Fire rate direction",{{l="multiply",v="mul"},{l="divide",v="div"},{l="both",v="both"}},"fdir")
local frLbl=n("TextLabel",{Size=UDim2.new(1,0,0,S(30)),BackgroundTransparency=1,Font=Enum.Font.Code,TextSize=S(9),TextColor3=C.mu,TextXAlignment=Enum.TextXAlignment.Left,TextWrapped=true,Text="scanning weapon modules..."},a)
tog(a,"No recoil","norecoil","Zeroes camera kick")
tog(a,"No spread","nospread")
tog(a,"Instant ADS","instantads","No ADS transition time")
tog(a,"No damage falloff","nofalloff","Full damage at any range")
tog(a,"Penetration","penetration")
tog(a,"Ignore protection","ignoreprot")
tog(a,"Breach doors / walls","breach")
tog(a,"Big magazine","bigmag")
tog(a,"Ammo helper","ammuhelp","Keeps the magazine topped up")
tog(a,"Tracers","tracers")
tog(a,"Long tracers","longtracer","Tracer lines last longer")
tog(a,"Steady aim","steadyaim","No accuracy drift")

-- ===== BALLISTICS =====
local bSec=sec("Ballistics")
seg(bSec,"Bullet velocity / drop",{{l="default",v=1},{l="x2",v=2},{l="x5",v=5},{l="hitscan",v=10}},"ballistics")

-- ===== HITBOX =====
local hSec=sec("Hitbox")
tog(hSec,"Expand hitbox","hitbox","Enemies only")
seg(hSec,"Multiplier",{{l="x5",v=5},{l="x8",v=8},{l="x30",v=30},{l="x100",v=100},{l="x1000",v=1000},{l="x3000",v=3000}},"hitboxsize")
local hbLbl=n("TextLabel",{Size=UDim2.new(1,0,0,S(14)),BackgroundTransparency=1,Font=Enum.Font.Code,TextSize=S(10),TextColor3=C.mu,TextXAlignment=Enum.TextXAlignment.Left,Text="active: no"},hSec)
seg(hSec,"Which parts to scale",{{l="Head",v="paa"},{l="Torso",v="vartalo"},{l="Whole body",v="koko"}},"hitboxparts")
tog(hSec,"Show hitbox outlines","hitboxvis")

-- ===== TARGET =====
local kSec=sec("Target")
tog(kSec,"Enemies only (team check)","teamcheck","Skip teammates")
tog(kSec,"Also affect NPCs","hitboxnpc","Dummies and NPCs")

-- ===== PLAYER =====
local plSec=sec("Player")

tog(plSec,"Infinite jump","infjump","Jump again in mid-air")
tog(plSec,"Noclip","noclip","Walk through walls")
tog(plSec,"Fly  (WASD + Space/Ctrl)","fly")
slider(plSec,"Fly speed","flyspeed",10,300,5)
tog(plSec,"CFrame speed","cfspeed","Drives you with CFrame (bypasses server speed checks)")
slider(plSec,"CFrame speed value","cfspeedval",5,300,5)
slider(plSec,"Walk speed","walkspeed",8,300,1)
slider(plSec,"Jump power","jumppower",50,500,5)
tog(plSec,"Fullbright","fullbright")
tog(plSec,"Click teleport","clicktp","Click the ground to teleport there")
tog(plSec,"Anti-AFK","antiafk")

local posRow=n("Frame",{Size=UDim2.new(1,0,0,S(30)),BackgroundTransparency=1},plSec)
n("UIListLayout",{FillDirection=Enum.FillDirection.Horizontal,Padding=UDim.new(0,S(5))},posRow)
local saveB=n("TextButton",{Size=UDim2.new(.5,-S(3),1,0),BackgroundColor3=C.rw,AutoButtonColor=false,Font=Enum.Font.GothamBold,TextSize=S(11),TextColor3=C.tx,Text="Save position"},posRow)
crn(saveB,9)
local loadB=n("TextButton",{Size=UDim2.new(.5,-S(3),1,0),BackgroundColor3=C.rw,AutoButtonColor=false,Font=Enum.Font.GothamBold,TextSize=S(11),TextColor3=C.tx,Text="Go to position"},posRow)
crn(loadB,9)

-- ===== DIAGNOSTICS =====
local gSec=sec("Diagnostics")
local dbgLbl=n("TextLabel",{Size=UDim2.new(1,0,0,S(40)),BackgroundTransparency=1,Font=Enum.Font.Code,TextSize=S(9),TextColor3=C.mu,TextXAlignment=Enum.TextXAlignment.Left,TextWrapped=true,Text="module fields: -"},gSec)
tog(gSec,"Pause script (vanilla values)","pause","Back to the game's own values")
seg(gSec,"Hotkey",{{l="RightShift",v=Enum.KeyCode.RightShift},{l="F1",v=Enum.KeyCode.F1},{l="F2",v=Enum.KeyCode.F2},{l="F3",v=Enum.KeyCode.F3}},"keybind")

local function dc(v)
	if type(v)~="table"then return v end
	local o={}
	for a2,b in pairs(v)do o[a2]=dc(b)end
	return o
end
local function modname()local p=MOD and MOD.Parent return p and p.Name or "?" end
local function r3(x)return math.floor(x*1000+.5)/1000 end

-- ===== FIRE RATE ENGINE =====
local FEX={"tracer","falloff","recoil","spread","zoom","walk","move","sprint","jump","ammo","mag","velocity","drop","penetration","damage","health","aim","ads","equip","draw","holster","pitch","sound","npc","tilt","offset","weight","mass"}
local FMUL={"rate","rpm","freq"}
local FDIV={"delay","cooldown","interval","cycletime","shoottime","firetime","waittime","reloadtime"}
local function fkind(k)
	local l=string.lower(tostring(k))
	for _,x in ipairs(FEX)do if string.find(l,x,1,true)then return nil end end
	for _,x in ipairs(FMUL)do if string.find(l,x,1,true)then return "mul" end end
	for _,x in ipairs(FDIV)do if string.find(l,x,1,true)then return "div" end end
	return nil
end
local function wMul()return st.fdir=="mul"or st.fdir=="both"end
local function wDiv()return st.fdir=="div"or st.fdir=="both"end

local WATCH={}
local FFOUNDS={}
local ATTRB={}
local function isGunMod(d)
	local x=string.lower(d.Name)
	return string.find(x,"gunsettings",1,true)or string.find(x,"gunconfig",1,true)or string.find(x,"weaponsettings",1,true)or string.find(x,"weaponconfig",1,true)or string.find(x,"gunstats",1,true)or string.find(x,"weaponstats",1,true)
end
local function refreshWatch()
	local seen={}
	for _,r in ipairs({RSv,RFs,workspace})do
		for _,d in ipairs(r:GetDescendants())do
			if d:IsA("ModuleScript")and isGunMod(d)then seen[d]=true end
		end
	end
	for _,pl in ipairs(P:GetPlayers())do
		local ch=pl.Character
		if ch then for _,d in ipairs(ch:GetDescendants())do if d:IsA("ModuleScript")and isGunMod(d)then seen[d]=true end end end
	end
	for m in pairs(seen)do
		local have=false
		for _,w in ipairs(WATCH)do if w.mod==m then have=true break end end
		if not have then
			local o,t=pcall(require,m)
			if o and type(t)=="table"then WATCH[#WATCH+1]={mod=m,gs=t,base=dc(t)}end
		end
	end
	for i=#WATCH,1,-1 do if not WATCH[i].mod.Parent then table.remove(WATCH,i)end end
end
local function applyPair(g,b,depth)
	if type(g)~="table"or type(b)~="table"then return end
	for k,v in pairs(b)do
		local gv=g[k]
		if type(v)=="number"and type(gv)=="number"then
			local kd=fkind(k)
			if kd then
				local nv=v
				if st.firerate~=1 then
					if kd=="mul"and wMul()then nv=v*st.firerate
					elseif kd=="div"and wDiv()then nv=v/st.firerate end
				end
				if gv~=nv then pcall(function()g[k]=nv end)end
				FFOUNDS[tostring(k)]=tostring(r3(nv))
			end
		elseif type(v)=="table"and type(gv)=="table"and depth<3 then
			applyPair(gv,v,depth+1)
		end
	end
end
local function applyTool()
	local ch=lp.Character if not ch then return end
	for _,t in ipairs(ch:GetChildren())do
		if t:IsA("Tool")then
			for _,an in ipairs(t:GetAttributeNames())do
				local kd=fkind(an)
				if kd then
					local cu=t:GetAttribute(an)
					if type(cu)=="number"then
						local key=t.Name.."|"..an
						local b=ATTRB[key]
						if b==nil then b=cu ATTRB[key]=b end
						local nv=b
						if st.firerate~=1 then
							if kd=="mul"and wMul()then nv=b*st.firerate
							elseif kd=="div"and wDiv()then nv=b/st.firerate end
						end
						pcall(function()t:SetAttribute(an,nv)end)
					end
				end
			end
			for _,d in ipairs(t:GetDescendants())do
				if d:IsA("NumberValue")or d:IsA("IntValue")then
					local kd=fkind(d.Name)
					if kd then
						local b=d:GetAttribute("GCOrig")
						if b==nil then b=d.Value pcall(function()d:SetAttribute("GCOrig",b)end)end
						local nv=b
						if st.firerate~=1 then
							if kd=="mul"and wMul()then nv=b*st.firerate
							elseif kd=="div"and wDiv()then nv=b/st.firerate end
						end
						if d:IsA("IntValue")then nv=math.max(0,math.floor(nv+.5))end
						pcall(function()d.Value=nv end)
					end
				end
			end
		end
	end
end
local function applyFire()
	FFOUNDS={}
	for _,w in ipairs(WATCH)do applyPair(w.gs,w.base,1)end
	applyTool()
end

local MAG=999
local RES=9999
local SK={"time","rate","speed","delay","cost","mult","scale","range"}
local HW={"ammo","reserve","stored","spare","pool","mag","clip"}
local EG={"MagSize","MagazineSize","Magazine","ClipSize","Clip","MaxAmmo","MaxMag","MaxMagazine","MaxClip","TotalAmmo","MaxTotalAmmo","ReserveAmmo","MaxReserveAmmo","AmmoReserve"}
local function hw(s,l)
	s=string.lower(s)
	for _,w in ipairs(l)do if string.find(s,w,1,true)then return true end end
	return false
end

local function ammo()
	if not st.bigmag or not st.ammuhelp then return end
	local ch=lp.Character if not ch then return end
	for _,t in ipairs(ch:GetChildren())do
		if t:IsA("Tool")then
			for _,at in ipairs(t:GetAttributeNames())do
				local cu=t:GetAttribute(at)
				if type(cu)=="number"and hw(at,HW)and not hw(at,SK)and cu<RES then pcall(function()t:SetAttribute(at,RES)end)end
			end
			for _,d in ipairs(t:GetDescendants())do
				if(d:IsA("IntValue")or d:IsA("NumberValue"))and hw(d.Name,HW)and not hw(d.Name,SK)and d.Value<RES then pcall(function()d.Value=RES end)end
			end
		end
	end
end

local function restoreAll()
	if not GS or not BASE then return end
	for k,v in pairs(BASE)do
		if type(v)=="table"then
			local a2=GS[k]
			if type(a2)=="table"then
				for k2,v2 in pairs(v)do
					if type(v2)=="table"then
						if type(a2[k2])=="table"then for i=1,2 do if a2[k2][i]~=nil then a2[k2][i]=v2[i]end end end
					else a2[k2]=v2 end
				end
			end
		else GS[k]=v end
	end
end

local function _RF()
	if not GS or not BASE then return end
	if st.pause then
		restoreAll()
		ST(("paused | %s"):format(modname()),C.mu)
		return
	end
	if GS.FireModes then
		GS.FireModes.Auto=st.fullauto and true or BASE.FireModes.Auto
		GS.FireModes.ChangeFiremode=st.fullauto and true or BASE.FireModes.ChangeFiremode
	end
	local cr,cs=GS.camRecoil,BASE.camRecoil
	if cr and cs then
		for _,k in ipairs({"camRecoilUp","camRecoilRight","camRecoilLeft","camRecoilTilt"})do
			if type(cr[k])=="table"and type(cs[k])=="table"then
				for i=1,2 do cr[k][i]=st.norecoil and((k=="camRecoilTilt")and cs[k][i]*.1 or 0)or cs[k][i]end
			end
		end
	end
	GS.MinRecoilPower=st.norecoil and 0 or BASE.MinRecoilPower
	GS.MaxRecoilPower=st.norecoil and 0 or BASE.MaxRecoilPower
	GS.MinSpread=st.nospread and 0 or BASE.MinSpread
	GS.MaxSpread=st.nospread and 0 or BASE.MaxSpread
	if type(GS.ADSEnabled)=="table"then for i=1,2 do GS.ADSEnabled[i]=st.instantads and true or BASE.ADSEnabled[i]end end
	GS.adsTime=st.instantads and 0 or BASE.adsTime
	GS.BulletPenetration=st.penetration and 300 or BASE.BulletPenetration
	GS.IgnoreProtection=st.ignoreprot and true or BASE.IgnoreProtection
	GS.CanBreachDoor=st.breach and true or BASE.CanBreachDoor
	GS.CanBreak=st.breach and true or BASE.CanBreak
	GS.Ammo=st.bigmag and MAG or BASE.Ammo
	GS.StoredAmmo=st.bigmag and RES or BASE.StoredAmmo
	GS.MaxStoredAmmo=st.bigmag and RES or BASE.MaxStoredAmmo
	for _,k in ipairs(EG)do
		if type(GS[k])=="number"and type(BASE[k])=="number"then GS[k]=(st.bigmag and st.ammuhelp)and RES or BASE[k]end
	end
	ammo()
	GS.TracerEveryXShots=st.tracers and 1 or BASE.TracerEveryXShots
	if type(BASE.TracerLifeTime)=="number"then GS.TracerLifeTime=BASE.TracerLifeTime*(st.longtracer and 3 or 1)end
	if type(BASE.DamageFalloff)=="number"then GS.DamageFalloff=st.nofalloff and 0 or BASE.DamageFalloff end
	if type(BASE.AimInaccuracyStepAmount)=="number"then GS.AimInaccuracyStepAmount=st.steadyaim and 0 or BASE.AimInaccuracyStepAmount end
	if type(BASE.CrosshairOffset)=="number"then GS.CrosshairOffset=st.steadyaim and 0 or BASE.CrosshairOffset end
	if type(BASE.MuzzleVelocity)=="number"then GS.MuzzleVelocity=BASE.MuzzleVelocity*st.ballistics end
	if type(BASE.BulletDrop)=="number"then GS.BulletDrop=BASE.BulletDrop/st.ballistics end
	refreshWatch()
	applyFire()
	ST(("%s | %s"):format(modname(),st.fullauto and "AUTO"or "SEMI"),C.tx)
	pillLbl.Text=modname().." · "..(st.fullauto and "AUTO"or "SEMI")
	pillLbl.TextColor3=C.ac
end
RF=function()pcall(_RF)end

local function keep()
	-- player features (must run even without a weapon)
	if not st.pause then
		local ch=lp.Character
		local hu=ch and ch:FindFirstChildOfClass("Humanoid")
		if hu then
			local ws=st.cfspeed and 0 or st.walkspeed
			if hu.WalkSpeed~=ws then hu.WalkSpeed=ws end
			if hu.UseJumpPower then
				if hu.JumpPower~=st.jumppower then hu.JumpPower=st.jumppower end
			else
				local jh=st.jumppower*st.jumppower/392.4
				if math.abs(hu.JumpHeight-jh)>.01 then hu.JumpHeight=jh end
			end
		end
	end

	if not GS or not BASE then return end
	if st.pause then
		if not PAUSED then PAUSED=true restoreAll()end
		return
	end
	if PAUSED then PAUSED=false RF()end
	local G=GS
	if st.bigmag then
		if G.Ammo~=MAG then G.Ammo=MAG end
		if G.StoredAmmo~=RES then G.StoredAmmo=RES end
		if G.MaxStoredAmmo~=RES then G.MaxStoredAmmo=RES end
		for _,k in ipairs(EG)do if type(G[k])=="number"and type(BASE[k])=="number"and G[k]~=RES then G[k]=RES end end
		ammo()
	end
	if st.fullauto and G.FireModes then
		if G.FireModes.Auto~=true then G.FireModes.Auto=true end
		if G.FireModes.ChangeFiremode~=true then G.FireModes.ChangeFiremode=true end
	end
	if st.norecoil then
		G.MinRecoilPower=0 G.MaxRecoilPower=0
		local cr=G.camRecoil local sb=BASE.camRecoil
		if cr and sb then
			for _,k in ipairs({"camRecoilUp","camRecoilRight","camRecoilLeft","camRecoilTilt"})do
				if type(cr[k])=="table"and type(sb[k])=="table"then for i=1,2 do cr[k][i]=(k=="camRecoilTilt")and sb[k][i]*.1 or 0 end end
			end
		end
	end
	if st.nospread then G.MinSpread=0 G.MaxSpread=0 end
	if st.instantads then
		G.adsTime=0
		if type(G.ADSEnabled)=="table"then for i=1,2 do G.ADSEnabled[i]=true end end
	end
	if st.penetration and G.BulletPenetration~=300 then G.BulletPenetration=300 end
	if st.ignoreprot then G.IgnoreProtection=true end
	if st.breach then G.CanBreachDoor=true G.CanBreak=true end
	if st.tracers and G.TracerEveryXShots~=1 then G.TracerEveryXShots=1 end
	if st.longtracer and type(BASE.TracerLifeTime)=="number"then
		local v=BASE.TracerLifeTime*3 if G.TracerLifeTime~=v then G.TracerLifeTime=v end
	end
	if st.nofalloff and G.DamageFalloff~=0 then G.DamageFalloff=0 end
	if st.steadyaim then
		if type(BASE.AimInaccuracyStepAmount)=="number"and G.AimInaccuracyStepAmount~=0 then G.AimInaccuracyStepAmount=0 end
		if type(BASE.CrosshairOffset)=="number"and G.CrosshairOffset~=0 then G.CrosshairOffset=0 end
	end
	if st.ballistics~=1 then
		if type(BASE.MuzzleVelocity)=="number"then G.MuzzleVelocity=BASE.MuzzleVelocity*st.ballistics end
		if type(BASE.BulletDrop)=="number"then G.BulletDrop=BASE.BulletDrop/st.ballistics end
	end
end

-- ===== HITBOX / TEAM CHECK =====
local function isEnemy(pl)
	if pl==lp then return false end
	local mt=lp.Team
	if mt==nil then return true end
	return pl.Team~=mt
end
local NPCS={}
local NPCNT=0
local ACTIVE={}
local function refreshNPC()
	local t={}
	for _,m in ipairs(workspace:GetChildren())do
		if m:IsA("Model")and m:FindFirstChildOfClass("Humanoid")and P:GetPlayerFromCharacter(m)==nil then t[#t+1]=m end
	end
	NPCS=t
end
local function restoreChar(ch)
	for _,d in ipairs(ch:GetDescendants())do
		if d:IsA("BasePart")then
			local b=d:GetAttribute("GCO")if b then pcall(function()d.Size=b end)end
			local c=d:GetAttribute("GCC")if c~=nil then pcall(function()d.CanCollide=c end)end
		end
		if d.Name=="GCBox"then pcall(function()d:Destroy()end)end
	end
end
local function eachChar(cb)
	for _,pl in ipairs(P:GetPlayers())do local ch=pl.Character if ch then cb(ch)end end
	for _,m in ipairs(NPCS)do if m.Parent then cb(m)end end
end
local function hbTarget(ch)
	if not st.hitbox then return false end
	local pl=P:GetPlayerFromCharacter(ch)
	if pl then
		if pl==lp then return false end
		if st.teamcheck then return isEnemy(pl)end
		return true
	end
	return st.hitboxnpc
end

local HG={paa={"Head"},vartalo={"Head","Torso","UpperTorso","LowerTorso","Hitbox"},koko={"Head","Torso","UpperTorso","LowerTorso","Hitbox","Left Arm","Right Arm","Left Leg","Right Leg","LeftUpperArm","RightUpperArm","LeftLowerArm","RightLowerArm","LeftHand","RightHand","LeftUpperLeg","RightUpperLeg","LeftLowerLeg","RightLowerLeg","LeftFoot","RightFoot"}}
local HB={sig="off"}
local HBN=0

local function defSize(ch,p)
	if p.Name=="Head"then return ch:FindFirstChild("Torso")and Vector3.new(2,1,1)or Vector3.new(1,1,1)end
	return DEF[p.Name]
end
local function hA()
	eachChar(restoreChar)
	ACTIVE={}
end
local function fixCh(ch)
	local nm=HG[st.hitboxparts]or HG.vartalo
	for _,x in ipairs(nm)do
		local p=ch:FindFirstChild(x)
		if p and p:IsA("BasePart")then
			local b=p:GetAttribute("GCO")
			if b==nil then
				if DIRTY then local d=defSize(ch,p)if d then pcall(function()p.Size=d end)b=d end end
				if b==nil then b=p.Size end
				p:SetAttribute("GCO",b)
				p:SetAttribute("GCC",p.CanCollide)
			end
			if st.hitbox then
				local s=st.hitboxsize
				local ns=Vector3.new(b.X*s,b.Y*s,b.Z*s)
				if p.Size~=ns then pcall(function()p.Size=ns end)end
				if p.CanCollide then pcall(function()p.CanCollide=false end)end
			else
				if p.Size~=b then pcall(function()p.Size=b end)end
			end
		end
	end
end
local function hV(ch)
	local w=st.hitbox and st.hitboxvis
	local nm=HG[st.hitboxparts]or HG.vartalo
	for _,x in ipairs(nm)do
		local p=ch:FindFirstChild(x)
		if p and p:IsA("BasePart")then
			local b=p:FindFirstChild("GCBox")
			if w and not b then
				local s=Instance.new("SelectionBox")
				s.Name="GCBox" s.Adornee=p s.LineThickness=.03 s.Color3=C.ac s.SurfaceColor3=C.ac s.SurfaceTransparency=1 s.Transparency=.45 s.Parent=p
			elseif not w and b then b:Destroy()end
		end
	end
end
local function hT()
	local sg=st.hitbox and(tostring(st.teamcheck).."|"..tostring(st.hitboxnpc).."|"..tostring(st.hitboxparts).."|"..tostring(st.hitboxsize).."|"..tostring(st.hitboxvis))or"off"
	if sg~=HB.sig then HB.sig=sg hA()end
	if st.hitboxnpc then
		if tick()-NPCNT>.8 then NPCNT=tick() refreshNPC()end
	elseif #NPCS>0 then NPCS={}end
	local now={}
	local c=0
	eachChar(function(ch)
		if hbTarget(ch)then
			now[ch]=true
			c=c+1
			fixCh(ch)
			hV(ch)
		end
	end)
	for ch in pairs(ACTIVE)do
		if not now[ch]and ch.Parent then restoreChar(ch)end
	end
	ACTIVE=now
	HBN=c
end
local function hardReset()
	eachChar(restoreChar)
	ACTIVE={}
	DIRTY=true
	DIRTYT=tick()
	HB.sig="?"
	ST("sizes reset",C.gn)
end

RS.Heartbeat:Connect(function()
	if shared.__GlockID~=MYID then return end
	if DIRTY and tick()-DIRTYT>6 then DIRTY=false end
	pcall(hT)
end)

task.spawn(function()
	while true do
		task.wait(.15)
		if shared.__GlockID~=MYID then return end
		pcall(keep)
	end
end)

local WNT=0
task.spawn(function()
	while true do
		task.wait(.3)
		if shared.__GlockID~=MYID then return end
		if tick()-WNT>3 then WNT=tick() pcall(refreshWatch)end
		pcall(applyFire)
		if st.hitbox then
			hbLbl.Text=("ACTIVE x%s  |  %d targets"):format(tostring(st.hitboxsize),HBN)
			hbLbl.TextColor3=C.ac
		else
			hbLbl.Text=("inactive  |  %d targets visible"):format(HBN)
			hbLbl.TextColor3=C.mu
		end
		local ks={}
		for k in pairs(FFOUNDS)do ks[#ks+1]=k end
		table.sort(ks)
		local parts={}
		for i=1,math.min(#ks,10)do parts[#parts+1]=ks[i].."="..FFOUNDS[ks[i]]end
		if #parts>0 then
			frLbl.Text=("found %d mods: %s"):format(#WATCH,table.concat(parts,"  "))
			frLbl.TextColor3=C.gn
		else
			frLbl.Text=("no rate/delay fields | %d mods"):format(#WATCH)
			frLbl.TextColor3=C.mu
		end
		local dg={}
		if BASE then
			for k,v in pairs(BASE)do if type(v)=="number"then dg[#dg+1]=k.."="..tostring(v)end end
		end
		table.sort(dg)
		local dp={}
		for i=1,math.min(#dg,28)do dp[#dp+1]=dg[i]end
		dbgLbl.Text=("mods %d | fields: %s"):format(#WATCH,table.concat(dp,"  "))
	end
end)

-- ===== PLAYER LOGIC =====
local savedPos=nil
saveB.MouseButton1Click:Connect(function()
	local ch=lp.Character
	local hrp=ch and ch:FindFirstChild("HumanoidRootPart")
	if hrp then
		savedPos=hrp.CFrame
		ST("position saved",C.gn)
		toast("Position saved",C.gn)
	else
		ST("no character",C.dn)
	end
end)
loadB.MouseButton1Click:Connect(function()
	local ch=lp.Character
	local hrp=ch and ch:FindFirstChild("HumanoidRootPart")
	if hrp and savedPos then
		hrp.CFrame=savedPos+Vector3.new(0,3,0)
		ST("teleported",C.gn)
		toast("Teleported",C.gn)
	elseif not savedPos then
		ST("save a position first",C.dn)
	end
end)

U.JumpRequest:Connect(function()
	if not st.infjump or st.pause then return end
	local ch=lp.Character
	local hu=ch and ch:FindFirstChildOfClass("Humanoid")
	if hu then hu:ChangeState(Enum.HumanoidStateType.Jumping) end
end)

RS.Stepped:Connect(function()
	if st.pause then return end
	local ch=lp.Character
	if not ch then return end
	for _,d in ipairs(ch:GetChildren())do
		if d:IsA("BasePart")then
			if st.noclip then
				if d.CanCollide then d.CanCollide=false end
			elseif not d.CanCollide and d.Name~="HumanoidRootPart" then
				d.CanCollide=true
			end
		end
	end
end)

RS.RenderStepped:Connect(function(dt)
	if not st.cfspeed or st.pause then return end
	local ch=lp.Character
	local hrp=ch and ch:FindFirstChild("HumanoidRootPart")
	local hu=ch and ch:FindFirstChildOfClass("Humanoid")
	if not hrp or not hu then return end
	local d=hu.MoveDirection
	if d.Magnitude>.05 then
		hrp.CFrame=hrp.CFrame+d.Unit*st.cfspeedval*dt
	end
end)

local flyBV,flyBG,flyPS
local function flyStop()
	if flyBV then pcall(function()flyBV:Destroy()end) flyBV=nil end
	if flyBG then pcall(function()flyBG:Destroy()end) flyBG=nil end
	local ch=lp.Character
	local hu=ch and ch:FindFirstChildOfClass("Humanoid")
	if hu and flyPS~=nil then hu.PlatformStand=flyPS end
	flyPS=nil
end
RS.RenderStepped:Connect(function()
	if not st.fly or st.pause then
		if flyBV or flyBG then flyStop() end
		return
	end
	local ch=lp.Character
	local hrp=ch and ch:FindFirstChild("HumanoidRootPart")
	local hu=ch and ch:FindFirstChildOfClass("Humanoid")
	if not hrp or not hu then flyStop() return end
	if flyBV and flyBV.Parent~=hrp then flyStop() end
	if not flyBV then
		flyPS=hu.PlatformStand
		hu.PlatformStand=true
		flyBV=n("BodyVelocity",{MaxForce=Vector3.new(1e5,1e5,1e5),P=1250,Parent=hrp})
		flyBG=n("BodyGyro",{MaxTorque=Vector3.new(1e5,1e5,1e5),P=1250,Parent=hrp})
	end
	local cam=workspace.CurrentCamera
	local d=Vector3.new()
	if cam then
		local cf=cam.CFrame
		if U:IsKeyDown(Enum.KeyCode.W)then d=d+cf.LookVector end
		if U:IsKeyDown(Enum.KeyCode.S)then d=d-cf.LookVector end
		if U:IsKeyDown(Enum.KeyCode.D)then d=d+cf.RightVector end
		if U:IsKeyDown(Enum.KeyCode.A)then d=d-cf.RightVector end
	end
	if U:IsKeyDown(Enum.KeyCode.Space)then d=d+Vector3.new(0,1,0)end
	if U:IsKeyDown(Enum.KeyCode.LeftControl)then d=d-Vector3.new(0,1,0)end
	flyBV.Velocity=d.Magnitude>0 and d.Unit*st.flyspeed or Vector3.new()
	local look=cam and cam.CFrame.LookVector or Vector3.new(0,0,-1)
	flyBG.CFrame=CFrame.new(hrp.Position,hrp.Position+look)
end)

U.InputBegan:Connect(function(i,g)
	if g then return end
	if st.clicktp and not st.pause and i.UserInputType==Enum.UserInputType.MouseButton1 then
		local m=lp:GetMouse()
		local ch=lp.Character
		local hrp=ch and ch:FindFirstChild("HumanoidRootPart")
		if hrp and m and m.Target then
			hrp.CFrame=CFrame.new(m.Hit.X,m.Hit.Y+3,m.Hit.Z)
		end
	end
end)

lp.Idled:Connect(function()
	if not st.antiafk or st.pause then return end
	pcall(function()
		VU:CaptureController()
		VU:ClickButton2(Vector2.new())
	end)
end)

local fbSaved
local function fbApply(on)
	if on then
		if not fbSaved then
			fbSaved={Brightness=LIGHT.Brightness,Ambient=LIGHT.Ambient,OutdoorAmbient=LIGHT.OutdoorAmbient,Shadows=LIGHT.GlobalShadows,FogEnd=LIGHT.FogEnd,EnvD=LIGHT.EnvironmentDiffuseScale,EnvS=LIGHT.EnvironmentSpecularScale}
		end
		LIGHT.Brightness=3
		LIGHT.Ambient=Color3.new(1,1,1)
		LIGHT.OutdoorAmbient=Color3.new(1,1,1)
		LIGHT.GlobalShadows=false
		LIGHT.FogEnd=1e6
		LIGHT.EnvironmentDiffuseScale=1
		LIGHT.EnvironmentSpecularScale=1
	elseif fbSaved then
		LIGHT.Brightness=fbSaved.Brightness
		LIGHT.Ambient=fbSaved.Ambient
		LIGHT.OutdoorAmbient=fbSaved.OutdoorAmbient
		LIGHT.GlobalShadows=fbSaved.Shadows
		LIGHT.FogEnd=fbSaved.FogEnd
		LIGHT.EnvironmentDiffuseScale=fbSaved.EnvD
		LIGHT.EnvironmentSpecularScale=fbSaved.EnvS
		fbSaved=nil
	end
end
task.spawn(function()
	local last=false
	while true do
		task.wait(.5)
		if shared.__GlockID~=MYID then return end
		local want=st.fullbright and not st.pause
		if want~=last then
			last=want
			pcall(fbApply,want)
		elseif want then
			pcall(fbApply,true)
		end
	end
end)

-- ===== BUTTONS =====
local ALLK={"fullauto","norecoil","nospread","instantads","nofalloff","penetration","ignoreprot","breach","bigmag","ammuhelp","tracers","longtracer","steadyaim","hitbox","hitboxvis"}
local ALLP={"infjump","noclip","fullbright","antiafk","cfspeed","clicktp","fly"}
allB.MouseButton1Click:Connect(function()
	local on=false
	for _,k in ipairs(ALLK)do if not st[k]then on=true break end end
	for _,k in ipairs(ALLK)do st[k]=on end
	for _,k in ipairs(ALLP)do st[k]=on end
	for _,f in ipairs(RD)do pcall(f)end
	RF()
	ST(on and "everything on"or "everything off",C.ac)
end)

rB.MouseButton1Click:Connect(function()
	for k,v in pairs(DEFST)do st[k]=v end
	PAUSED=false
	for _,f in ipairs(RD)do pcall(f)end
	RF()
	ST("restored to defaults",C.ac)
end)
nB.MouseButton1Click:Connect(hardReset)
eB.MouseButton1Click:Connect(function()
	local ch=lp.Character
	local hu=ch and ch:FindFirstChildOfClass("Humanoid")
	local to=ch and ch:FindFirstChildOfClass("Tool")
	if hu and to then
		hu:UnequipTools()
		task.wait(.12)
		to.Parent=ch
		hu:EquipTool(to)
		ST("weapon swapped",C.ac)
		toast("Weapon swapped",C.ac)
	else
		ST("no weapon equipped",C.dn)
		toast("No weapon equipped",C.dn)
	end
end)

local mini=false
minB.MouseButton1Click:Connect(function()
	mini=not mini
	sc.Visible=not mini
	allB.Visible=not mini
	ft.Visible=not mini
	stL.Visible=not mini
	tw(main,TweenInfo.new(.16),{Size=mini and UDim2.fromOffset(WW,HD)or UDim2.fromOffset(WW,WH)})
	tw(sh,TweenInfo.new(.16),{Size=mini and UDim2.fromOffset(WW,HD)or UDim2.fromOffset(WW,WH)})
	minB.Text=mini and "+"or"-"
end)
clB.MouseButton1Click:Connect(function()
	main.Visible=false
	sh.Visible=false
	toast("Hidden - press G to bring it back",C.mu)
end)

local function cp(f,x,y)
	local v=vp()
	local s=f.AbsoluteSize
	return math.clamp(x,0,math.max(0,v.X-s.X)),math.clamp(y,0,math.max(0,v.Y-s.Y))
end
local function drag(f,om)
	local dr,si,so
	f.InputBegan:Connect(function(i)
		if i.UserInputType==Enum.UserInputType.MouseButton1 or i.UserInputType==Enum.UserInputType.Touch then
			dr=true
			si=i.Position
			so=Vector2.new(f.AbsolutePosition.X,f.AbsolutePosition.Y)
			if om then om(false)end
		end
	end)
	f.InputEnded:Connect(function(i)
		if i.UserInputType==Enum.UserInputType.MouseButton1 or i.UserInputType==Enum.UserInputType.Touch then dr=false end
	end)
	U.InputChanged:Connect(function(i)
		if not dr then return end
		if i.UserInputType~=Enum.UserInputType.MouseMovement and i.UserInputType~=Enum.UserInputType.Touch then return end
		local d=i.Position-si
		if math.abs(d.X)>7 or math.abs(d.Y)>7 then if om then om(true)end end
		local x,y=cp(f,so.X+d.X,so.Y+d.Y)
		f.Position=UDim2.new(0,x,0,y)
		if f==main then sh.Position=UDim2.new(0,x+S(3),0,y+S(4))end
	end)
end
drag(bar)

local FS=S(54)
local fab=n("TextButton",{Size=UDim2.fromOffset(FS,FS),Position=UDim2.new(1,-(FS+S(14)),.5,0),BackgroundColor3=C.ac,BackgroundTransparency=.12,Font=Enum.Font.GothamBold,TextSize=S(22),Text="G",TextColor3=C.wh,AutoButtonColor=false},gui)
crn(fab,27)
n("UIStroke",{Color=C.wh,Transparency=.55,Thickness=S(2)},fab)
local fm=false
drag(fab,function(m)fm=m end)
fab.MouseButton1Click:Connect(function()
	if fm then fm=false return end
	main.Visible=not main.Visible
	sh.Visible=main.Visible
end)

U.InputBegan:Connect(function(i,g)
	if g then return end
	if i.KeyCode==st.keybind then
		main.Visible=not main.Visible
		sh.Visible=main.Visible
	end
end)

-- ===== WEAPON WATCHER =====
task.spawn(function()
	while true do
		if shared.__GlockID~=MYID then return end
		local m
		local ch=lp.Character
		if ch then
			local t=ch:FindFirstChildOfClass("Tool")
			if t and t:FindFirstChild("GunSettings")then m=t.GunSettings end
			if not m then m=ch:FindFirstChild("GunSettings",true)end
		end
		if not m then
			local w=workspace:FindFirstChild(lp.Name)
			if w then
				for _,d in ipairs(w:GetDescendants())do
					if d:IsA("ModuleScript")and d.Name=="GunSettings"then m=d break end
				end
			end
		end
		if m~=MOD then
			MOD=m
			if m then
				local o2,t2=pcall(require,m)
				if o2 and type(t2)=="table"then
					GS=t2
					BASE={}
					for k,v in pairs(t2)do BASE[k]=dc(v)end
					RF()
					ST("locked on: "..modname(),C.ac)
				else
					GS=nil
					ST("require failed",C.dn)
				end
			else
				GS=nil
				ST("no weapon equipped",C.dn)
				pillLbl.Text="no weapon"
				pillLbl.TextColor3=C.mu
			end
		else
			ammo()
		end
		task.wait(.4)
	end
end)

for _,f in ipairs(RD)do pcall(f)end
RF()

end)

if not ok then
	print("[GC] ERROR: "..tostring(err))
	local g2=n("ScreenGui",{Name="GCErr",ResetOnSpawn=false,IgnoreGuiInset=true,DisplayOrder=2147483647},CG)
	local f=n("Frame",{Size=UDim2.new(1,-S(30),0,0),AutomaticSize=Enum.AutomaticSize.Y,Position=UDim2.new(0,S(15),0,S(140)),BackgroundColor3=Color3.fromRGB(190,40,40),BorderSizePixel=0},g2)
	n("UICorner",{CornerRadius=UDim.new(0,S(10))},f)
	n("TextLabel",{Size=UDim2.new(1,-S(24),0,0),AutomaticSize=Enum.AutomaticSize.Y,Position=UDim2.new(0,S(12),0,S(12)),BackgroundTransparency=1,TextWrapped=true,Font=Enum.Font.Code,TextSize=S(14),TextColor3=Color3.new(1,1,1),TextXAlignment=Enum.TextXAlignment.Left,Text="ERROR:\n"..tostring(err)},f)
	pcall(function()SG:SetCore("SendNotification",{Title="Glock Control",Text="Error",Duration=10})end)
else
	print("[GC] v4.0 ready OK")
	pcall(function()SG:SetCore("SendNotification",{Title="Glock Control",Text="v4.0 - Player section added",Duration=5})end)
end
Executor compatibility changes over time. Check current reports before testing.

Copy the code above into a compatible Roblox script executor if you choose to test it.

El Paso Roleplay Script Status

✓AvailabilityFree
$Price$0
◫CompatibilityDesktop & Mobile
★SafetyVerified

Roblox and game updates can affect compatibility, so the script’s status should be treated as temporary rather than guaranteed.

Frequently Asked Questions

What is a El Paso Roleplay script?

A El Paso Roleplay script is third-party Lua code intended to run alongside the Roblox game through a compatible script executor.

What features does this El Paso Roleplay script include?

Different scripts contain different code. This version includes: Gun mods(Poisonbablo).

How do you use the El Paso Roleplay script?

Pick a compatible executor such as Hydrogen, MacSploit, AWP.GG, Delta, Fluxus, Codex, launch Roblox and join the game, copy the complete Lua code from the script card above, paste it into the executor’s editor, and click Run or Execute. Compatibility changes over time, so a name here doesn’t guarantee current support.

Can a El Paso Roleplay script get your Roblox account banned?

Yes. Third-party scripts can violate Roblox rules and may put an account at risk. Only use code from a source you trust, never enter your Roblox password into a script or executor, and test on an alternate account first.

Does the El Paso Roleplay script work on mobile?

Check whether both the executor and the script support your device and the current Roblox version. Mobile executor support does not guarantee that every script will work.

Check out our Roblox Scripts hub and Roblox Games Directory for more.

Leave a Comment