El Paso Roleplay Script – Gun mods(Poisonbablo) - Verified script for El Paso Roleplay
Key Required

El Paso Roleplay Script – Gun mods(Poisonbablo)

El Paso RoleplayPoisonpabloPoisonpablo 439 views 325 executesUpdated Oct 23, 2026
Unrated
00
Lua Script•1113 lines (44772 chars)
-- [[ 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

How to Execute El Paso Roleplay Script – Gun mods(Poisonbablo)

Step 1: Copy Code: Click the Copy Code button in the viewer above to grab the clean Lua loadstring.

Step 2: Launch Executor: Open a compatible, unpatched executor. If you need one, check our Roblox Executors Directory.

Step 3: Join Experience: Launch Roblox and join El Paso Roleplay.

Step 4: Attach & Run: Attach/inject your executor into the Roblox process, paste the code into the script tab, and press Execute.

Created By

Poisonpablo
Poisonpablo
Script User
View Author Profile

Roblox Experience

[🔥UPD] El Paso Roleplay
El Paso Roleplay
By El Paso.
Active Players:668
Play on Roblox

Features & Information

Execute El Paso Roleplay Script – Gun mods(Poisonbablo). Key system required, created by Poisonpablo, updated Oct 23, 2026. Tested and working on supported executors.
#el paso#guns

Script Changelog (1)

@PoisonpabloOct 23, 2026

Create script

Community Comments (0)

No comments yet for this script.

Frequently Asked Questions

How do I execute El Paso Roleplay Script – Gun mods(Poisonbablo) in Roblox?

To run El Paso Roleplay Script – Gun mods(Poisonbablo), copy the Lua loadstring from the code viewer above, launch Roblox and join El Paso Roleplay, attach a working executor (such as Potassium, Solara, or Delta from our Executors directory), paste the code into your executor console, and click Execute.

Is El Paso Roleplay Script – Gun mods(Poisonbablo) keyless or does it require an access key?

El Paso Roleplay Script – Gun mods(Poisonbablo) requires an access key. You can retrieve the official key directly using the Get Script Key link provided above.

Is El Paso Roleplay Script – Gun mods(Poisonbablo) currently safe and working?

This script is active and operational. Always test scripts using a secondary (alt) Roblox account to safeguard your main profile against anti-cheat bans.