local RS=game:GetService("ReplicatedStorage") local PC=require(RS.ReservesCommon.Client.Controllers.ProjectileController) local old=PC.Fire local function desc(...) local n=select("#",...) local t={} for i=1,n do t[i]=typeof((select(i,...))) end return n,table.concat(t,",") end local function spy(self,...) local n,ts=desc(...) print("[spy] enter self="..typeof(self).." n="..n.." types="..ts) local ok,a,b,c,d,e=pcall(old,self,...) local on,ot=desc(a,b,c,d,e) print("[spy] exit ok="..tostring(ok).." n="..on.." types="..ot.." a="..tostring(a)) return a,b,c,d,e end PC.Fire=spy print("spy installed",tostring(PC.Fire),tostring(old)) local o=getgenv().BoulderOverlay local w=o and o.weapon and o.weapon() print("weapon",type(w),w and tostring(w.DisplayName),w and tostring(w.Aiming),w and tostring(w.Loaded)) if w then w.Aiming=true w.Loaded=true local ok,err=pcall(function() w:Fire() end) print("fired",ok,tostring(err)) end