-- [[ 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 ]] 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)local I=r.Parent;if not I then return false end;local J=workspace:FindFirstChild("NPCSFolder")if J then local K=J:FindFirstChild(c.Name)if K and I==K then return true end end;return false end;local function L(r)if i[r]then for y,M in pairs(i[r])do if typeof(M)=="RBXScriptConnection"then M:Disconnect()end end end;i[r]={}local N=r:FindFirstChild("Union")if not N then return end;local function O(P)if P.Name=="cycleMode"and P:IsA("Sound")then print("[DEBUG] Connecting to cycleMode sound for "..r.Name)local M=P.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],M)if P.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,Q in ipairs(N:GetChildren())do O(Q)end;local R=N.ChildAdded:Connect(function(Q)wait(0.01)O(Q)end)table.insert(i[r],R)end;local function S(r)local T=0;local U=r:GetAttributes()for V,W in pairs(U)do if string.sub(V,1,9)=="__chamber"and V~="__chambear"then if W==true then T=T+1 end end end;if r.Name=="1895-Rosey"and U.__chambear~=nil and U.__chamber7==nil then if U.__chambear==true then T=T+1 end end;return T end;local function X(r)local U=r:GetAttributes()if U.mag then return U.mag end;local Y=S(r)if Y>0 then return Y end;if Y==0 and e[r.Name]then local Z=false;for V,y in pairs(U)do if string.sub(V,1,9)=="__chamber"and V~="__chambear"then Z=true;break end end;if not Z then return e[r.Name]end end;return Y end;local function _(r)if e[r.Name]then return e[r.Name]end;local U=r:GetAttributes()if U.mag then e[r.Name]=U.mag;return U.mag end;for y,a0 in ipairs(r:GetDescendants())do if a0.Name=="ammoModil"and a0:IsA("Model")then wait(0.1)local a1=0;for y,a2 in ipairs(a0:GetChildren())do if tonumber(a2.Name)then a1=a1+1 end end;if a1>0 then e[r.Name]=a1;return a1 end end end;for y,a0 in ipairs(r:GetDescendants())do if a0.Name=="ammoModel"and a0:IsA("Model")then wait(0.1)local a1=0;for y,a2 in ipairs(a0:GetChildren())do if tonumber(a2.Name)then a1=a1+1 end end;if a1>0 then e[r.Name]=a1;return a1 end end end;local a3=0;for V,y in pairs(U)do if string.sub(V,1,9)=="__chamber"and V~="__chambear"then a3=a3+1 end end;if r.Name=="1895-Rosey"and U.__chambear~=nil and U.__chamber7==nil then a3=a3+1 end;if a3>0 then e[r.Name]=a3;return a3 end;local Y=S(r)if Y>0 then e[r.Name]=Y;return Y end;e[r.Name]=1;return 1 end;local function a4(r)if not r:IsA("Tool")then return false end;local U=r:GetAttributes()if U.mag then return true end;for y,a0 in ipairs(r:GetDescendants())do if(a0.Name=="ammoModil"or a0.Name=="ammoModel")and a0:IsA("Model")then for y,Q in ipairs(a0:GetChildren())do if tonumber(Q.Name)then return true end end end end;for V,y in pairs(U)do if string.sub(V,1,9)=="__chamber"then return true end end;return false end;local function a5()local a6={}local a7={}local function a8(r)if a4(r)and not a7[r.Name]then table.insert(a6,r)a7[r.Name]=true end end;if c.Character then for y,r in ipairs(c.Character:GetChildren())do a8(r)end end;local J=workspace:FindFirstChild("NPCSFolder")if J then local a9=J:FindFirstChild(c.Name)if a9 then for y,r in ipairs(a9:GetChildren())do a8(r)end end end;if c:FindFirstChild("Backpack")then for y,r in ipairs(c.Backpack:GetChildren())do a8(r)end end;return a6 end;local function aa(r,ab,ac,ad,ae)local af=r:FindFirstChild("Union")or r:FindFirstChild("Handle")or r.PrimaryPart;if not af then return end;local ag=af:FindFirstChild("WorldAmmoDisplay")if not ag then ag=Instance.new("BillboardGui")ag.Name="WorldAmmoDisplay"ag.Size=UDim2.new(0,150,0,50)ag.StudsOffset=Vector3.new(0,0,0)ag.AlwaysOnTop=true;ag.LightInfluence=0;ag.MaxDistance=100;ag.Parent=af;local ah=Instance.new("TextLabel")ah.Name="AmmoText"ah.Size=UDim2.new(1,0,1,0)ah.BackgroundTransparency=1;ah.TextColor3=Color3.fromRGB(255,255,255)ah.TextStrokeTransparency=0;ah.TextScaled=true;ah.Font=Enum.Font.SourceSansBold;ah.Text="0 / 0"ah.Parent=ag end;ag.Enabled=H(r)if ag.Enabled then local ah=ag:FindFirstChild("AmmoText")if ah then ah.Text=string.format("%d / %d%s",ab,ac,ad)ah.TextColor3=ae end end end;function updateGUI()for y,Q in ipairs(p:GetChildren())do if Q:IsA("TextLabel")then Q:Destroy()end end;local ai=a5()local aj=0;for ak,al in ipairs(ai)do local ac=_(al)local ab=X(al)if ab<0 then ab=0 end;f[al.Name]=ab;local U=al:GetAttributes()local am=U.chambered;local an=U.__chambear;local ao=U.chamberPos;local ae=Color3.fromRGB(0,255,0)if am~=nil and am==false then ae=Color3.fromRGB(255,0,0)end;if an~=nil and an==false then ae=Color3.fromRGB(255,0,0)end;if ao~=nil then local ap="__chamber"..tostring(ao)local aq=U[ap]if aq==nil then aq=U.__chambear end;if aq==false or aq==nil then ae=Color3.fromRGB(255,0,0)end end;local ar=A(al)local ad=ar and" ["..string.upper(ar).."]"or""aa(al,ab,ac,ad,ae)local as=string.format("%d - %s\n%d/%d%s",ak,al.Name,ab,ac,ad)local at=Instance.new("TextLabel")at.Size=UDim2.new(1,-10,1,0)at.Font=Enum.Font.SourceSansBold;at.TextSize=16;at.TextWrapped=true;at.Text=as;at.Parent=p;local au=at.TextBounds;at:Destroy()local av=math.max(40,au.Y+10)local aw=Instance.new("TextLabel")aw.Size=UDim2.new(1,0,0,av)aw.Position=UDim2.new(0,0,0,aj)aw.BackgroundTransparency=0.5;aw.BackgroundColor3=Color3.fromRGB(0,0,0)aw.TextColor3=ae;aw.Font=Enum.Font.SourceSansBold;aw.TextSize=16;aw.TextXAlignment=Enum.TextXAlignment.Left;aw.TextWrapped=true;aw.TextYAlignment=Enum.TextYAlignment.Top;aw.Text=as;aw.Parent=p;aj=aj+av+5 end;local ax=25+aj+5;n.Size=UDim2.new(0,200,0,ax)end;local function ay(r)if h[r]then h[r]:Disconnect()end;h[r]=r.AttributeChanged:Connect(function(az)if az=="mag"or string.sub(az,1,9)=="__chamber"then updateGUI()end end)L(r)end;local function aA()for y,M in pairs(h)do if typeof(M)=="RBXScriptConnection"then M:Disconnect()end end;h={}for y,aB in pairs(i)do if type(aB)=="table"then for y,M in pairs(aB)do if typeof(M)=="RBXScriptConnection"then M:Disconnect()end end elseif typeof(aB)=="RBXScriptConnection"then aB:Disconnect()end end;i={}local ai=a5()for y,al in ipairs(ai)do ay(al)end;if c:FindFirstChild("Backpack")then h.backpackAdded=c.Backpack.ChildAdded:Connect(function(Q)if Q:IsA("Tool")then wait(0.1)ay(Q)updateGUI()end end)h.backpackRemoved=c.Backpack.ChildRemoved:Connect(function()updateGUI()end)end;if c.Character then h.characterAdded=c.Character.ChildAdded:Connect(function(Q)if Q:IsA("Tool")then wait(0.1)ay(Q)updateGUI()end end)h.characterRemoved=c.Character.ChildRemoved:Connect(function()updateGUI()end)end end;aA()updateGUI()c.CharacterAdded:Connect(function(aC)wait(1)aA()updateGUI()end)spawn(function()while true do wait(0.5)updateGUI()end end)