-- [[ 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]] -- Script analytics (enabled by the creator on rscripts.net). -- Runs in its own thread and cannot affect the script below. task.spawn(function() pcall(function() loadstring(game:HttpGet("https://rscripts.net/api/telemetry/v2/client.lua?s=6a3b9fb74c088949f4f3a194"))() end) end) --[[rscripts:analytics:end]] local a=game:GetService("Players")local b=game:GetService("UserInputService")local c=a.LocalPlayer;local d=c:WaitForChild("PlayerGui")local e={}local f={}local g={}local h={}local i={}local j=0;b.InputBegan:Connect(function(k,l)if l then return end;if k.KeyCode==Enum.KeyCode.V then j=tick()end end)local m=Instance.new("ScreenGui")m.Name="AmmoDisplay"m.ResetOnSpawn=false;m.Parent=d;local n=Instance.new("Frame")n.Name="MainFrame"n.Size=UDim2.new(0,200,0,50)n.Position=UDim2.new(0,10,1,-60)n.BackgroundTransparency=0.3;n.BackgroundColor3=Color3.fromRGB(40,40,40)n.BorderSizePixel=2;n.BorderColor3=Color3.fromRGB(100,100,100)n.Active=true;n.Draggable=true;n.Parent=m;local o=Instance.new("TextLabel")o.Name="TitleBar"o.Size=UDim2.new(1,0,0,25)o.Position=UDim2.new(0,0,0,0)o.BackgroundTransparency=0.5;o.BackgroundColor3=Color3.fromRGB(60,60,60)o.BorderSizePixel=0;o.Text="Ammo Display"o.TextColor3=Color3.fromRGB(255,255,255)o.Font=Enum.Font.SourceSansBold;o.TextSize=14;o.Parent=n;local p=Instance.new("Frame")p.Name="Container"p.Size=UDim2.new(1,-10,1,-30)p.Position=UDim2.new(0,5,0,27)p.BackgroundTransparency=1;p.Parent=n;local function q(r)local s=r:FindFirstChild("conf")if not s or not s:IsA("ModuleScript")then return nil end;local t,u=pcall(function()return require(s)end)if not t or not u then return nil end;local v=u.general and u.general.mode;local w=u.general and u.general.switchableModes;if w then local x={}for y,z in ipairs(w)do if z~=nil then table.insert(x,z)end end;if#x>0 then w=x else w=nil end end;if not w and v then w={v}end;if not w or#w==0 then return nil end;return{modes=w,startMode=v or w[1],canSwitch=#w>1}end;local function A(r)if g[r.Name]then return g[r.Name]end;local B=q(r)if B then g[r.Name]=B.startMode;return B.startMode end;return nil end;local function C(r)print("[DEBUG] cycleFireMode called for "..r.Name)local B=q(r)if not B then print("[DEBUG] No fire modes found")return end;print("[DEBUG] Fire modes available: "..table.concat(B.modes,", "))print("[DEBUG] Can switch: "..tostring(B.canSwitch))if not B.canSwitch then print("[DEBUG] Gun cannot switch modes")return end;local D=g[r.Name]or B.startMode;print("[DEBUG] Current mode: "..tostring(D))local E=1;for F,z in ipairs(B.modes)do if z==D then E=F;break end end;local G=E%#B.modes+1;g[r.Name]=B.modes[G]print("[DEBUG] Switched to mode: "..B.modes[G])end;local function H(r)if r.Parent==c.Character then return true end;local I=workspace:FindFirstChild("NPCSFolder")if I then local J=I:FindFirstChild(c.Name)if J and r.Parent==J then return true end end;return false end;local function K(r)if i[r]then for y,L in pairs(i[r])do if typeof(L)=="RBXScriptConnection"then L:Disconnect()end end end;i[r]={}local M=r:FindFirstChild("Union")if not M then return end;local function N(O)if O.Name=="cycleMode"and O:IsA("Sound")then print("[DEBUG] Connecting to cycleMode sound for "..r.Name)local L=O.Played:Connect(function()print("[DEBUG] cycleMode sound played for "..r.Name)if tick()-j<=0.2 then if H(r)then print("[DEBUG] Tool is equipped, cycling fire mode")C(r)updateGUI()else print("[DEBUG] Tool is NOT equipped, ignoring")end else print("[DEBUG] cycleMode sound played but V was not recently pressed, ignoring")end end)table.insert(i[r],L)if O.IsPlaying then print("[DEBUG] Sound is already playing, checking V press time")if tick()-j<=0.2 and H(r)then C(r)updateGUI()end end end end;for y,P in ipairs(M:GetChildren())do N(P)end;local Q=M.ChildAdded:Connect(function(P)wait(0.01)N(P)end)table.insert(i[r],Q)end;local function R(r)local S=0;local T=r:GetAttributes()for U,V in pairs(T)do if string.sub(U,1,9)=="__chamber"and U~="__chambear"then if V==true then S=S+1 end end end;if r.Name=="1895-Rosey"and T.__chambear~=nil and T.__chamber7==nil then if T.__chambear==true then S=S+1 end end;return S end;local function W(r)local T=r:GetAttributes()if T.mag then return T.mag end;local X=R(r)if X>0 then return X end;if X==0 and e[r.Name]then local Y=false;for U,y in pairs(T)do if string.sub(U,1,9)=="__chamber"and U~="__chambear"then Y=true;break end end;if not Y then return e[r.Name]end end;return X end;local function Z(r)if e[r.Name]then return e[r.Name]end;local T=r:GetAttributes()if T.mag then e[r.Name]=T.mag;return T.mag end;for y,_ in ipairs(r:GetDescendants())do if _.Name=="ammoModil"and _:IsA("Model")then wait(0.1)local a0=0;for y,a1 in ipairs(_:GetChildren())do if tonumber(a1.Name)then a0=a0+1 end end;if a0>0 then e[r.Name]=a0;return a0 end end end;for y,_ in ipairs(r:GetDescendants())do if _.Name=="ammoModel"and _:IsA("Model")then wait(0.1)local a0=0;for y,a1 in ipairs(_:GetChildren())do if tonumber(a1.Name)then a0=a0+1 end end;if a0>0 then e[r.Name]=a0;return a0 end end end;local a2=0;for U,y in pairs(T)do if string.sub(U,1,9)=="__chamber"and U~="__chambear"then a2=a2+1 end end;if r.Name=="1895-Rosey"and T.__chambear~=nil and T.__chamber7==nil then a2=a2+1 end;if a2>0 then e[r.Name]=a2;return a2 end;local X=R(r)if X>0 then e[r.Name]=X;return X end;e[r.Name]=1;return 1 end;local function a3(r)if not r:IsA("Tool")then return false end;local T=r:GetAttributes()if T.mag then return true end;for y,_ in ipairs(r:GetDescendants())do if(_.Name=="ammoModil"or _.Name=="ammoModel")and _:IsA("Model")then for y,P in ipairs(_:GetChildren())do if tonumber(P.Name)then return true end end end end;for U,y in pairs(T)do if string.sub(U,1,9)=="__chamber"then return true end end;return false end;local function a4()local a5={}local a6={}local function a7(r)if a3(r)and not a6[r.Name]then table.insert(a5,r)a6[r.Name]=true end end;if c.Character then for y,r in ipairs(c.Character:GetChildren())do a7(r)end end;local I=workspace:FindFirstChild("NPCSFolder")if I then local a8=I:FindFirstChild(c.Name)if a8 then for y,r in ipairs(a8:GetChildren())do a7(r)end end end;if c:FindFirstChild("Backpack")then for y,r in ipairs(c.Backpack:GetChildren())do a7(r)end end;return a5 end;local function a9(r,aa,ab,ac,ad)local ae=r:FindFirstChild("Union")or r:FindFirstChild("Handle")or r.PrimaryPart;if not ae then return end;local af=ae:FindFirstChild("WorldAmmoDisplay")if not af then af=Instance.new("BillboardGui")af.Name="WorldAmmoDisplay"af.Size=UDim2.new(0,150,0,50)af.StudsOffset=Vector3.new(0,0,0)af.AlwaysOnTop=true;af.LightInfluence=0;af.MaxDistance=100;af.Parent=ae;local ag=Instance.new("TextLabel")ag.Name="AmmoText"ag.Size=UDim2.new(1,0,1,0)ag.BackgroundTransparency=1;ag.TextColor3=Color3.fromRGB(255,255,255)ag.TextStrokeTransparency=0;ag.TextScaled=true;ag.Font=Enum.Font.SourceSansBold;ag.Text="0 / 0"ag.Parent=af end;af.Enabled=H(r)if af.Enabled then local ag=af:FindFirstChild("AmmoText")if ag then ag.Text=string.format("%d / %d%s",aa,ab,ac)ag.TextColor3=ad end end end;function updateGUI()for y,P in ipairs(p:GetChildren())do if P:IsA("TextLabel")then P:Destroy()end end;local ah=a4()local ai=0;for aj,ak in ipairs(ah)do local ab=Z(ak)local aa=W(ak)if aa<0 then aa=0 end;f[ak.Name]=aa;local T=ak:GetAttributes()local al=T.chambered;local am=T.__chambear;local an=T.chamberPos;local ad=Color3.fromRGB(0,255,0)if al~=nil and al==false then ad=Color3.fromRGB(255,0,0)end;if am~=nil and am==false then ad=Color3.fromRGB(255,0,0)end;if an~=nil then local ao="__chamber"..tostring(an)local ap=T[ao]if ap==nil then ap=T.__chambear end;if ap==false or ap==nil then ad=Color3.fromRGB(255,0,0)end end;local aq=A(ak)local ac=aq and" ["..string.upper(aq).."]"or""a9(ak,aa,ab,ac,ad)local ar=string.format("%d - %s\n%d/%d%s",aj,ak.Name,aa,ab,ac)local as=Instance.new("TextLabel")as.Size=UDim2.new(1,-10,1,0)as.Font=Enum.Font.SourceSansBold;as.TextSize=16;as.TextWrapped=true;as.Text=ar;as.Parent=p;local at=as.TextBounds;as:Destroy()local au=math.max(40,at.Y+10)local av=Instance.new("TextLabel")av.Size=UDim2.new(1,0,0,au)av.Position=UDim2.new(0,0,0,ai)av.BackgroundTransparency=0.5;av.BackgroundColor3=Color3.fromRGB(0,0,0)av.TextColor3=ad;av.Font=Enum.Font.SourceSansBold;av.TextSize=16;av.TextXAlignment=Enum.TextXAlignment.Left;av.TextWrapped=true;av.TextYAlignment=Enum.TextYAlignment.Top;av.Text=ar;av.Parent=p;ai=ai+au+5 end;local aw=25+ai+5;n.Size=UDim2.new(0,200,0,aw)end;local function ax(r)if h[r]then h[r]:Disconnect()end;h[r]=r.AttributeChanged:Connect(function(ay)if ay=="mag"or string.sub(ay,1,9)=="__chamber"then updateGUI()end end)K(r)end;local function az()for y,L in pairs(h)do if typeof(L)=="RBXScriptConnection"then L:Disconnect()end end;h={}for y,aA in pairs(i)do if type(aA)=="table"then for y,L in pairs(aA)do if typeof(L)=="RBXScriptConnection"then L:Disconnect()end end elseif typeof(aA)=="RBXScriptConnection"then aA:Disconnect()end end;i={}local ah=a4()for y,ak in ipairs(ah)do ax(ak)end;if c:FindFirstChild("Backpack")then h.backpackAdded=c.Backpack.ChildAdded:Connect(function(P)if P:IsA("Tool")then wait(0.1)ax(P)updateGUI()end end)h.backpackRemoved=c.Backpack.ChildRemoved:Connect(function()updateGUI()end)end;if c.Character then h.characterAdded=c.Character.ChildAdded:Connect(function(P)if P:IsA("Tool")then wait(0.1)ax(P)updateGUI()end end)h.characterRemoved=c.Character.ChildRemoved:Connect(function()updateGUI()end)end end;az()updateGUI()c.CharacterAdded:Connect(function(aB)wait(1)az()updateGUI()end)spawn(function()while true do wait(0.5)updateGUI()end end)