Run it
Copy the script and paste it into your executor.
settings = {
copytoclipboard = ,
copyasscript = ,
logfireserver = ,
loginvokeserver = ,
logonclientevent = ,
logonclientinvoke = ,
logindexing = ,
}
()
safetostring = (v)
t = (v)
t ==
.. v:(, ) ..
t == t == t ==
(v)
t ==
v:()
t ==
(v)
t ==
parts = {}
k, val (v)
kt = (k) == .. k:(, ) .. (k)
vt = (val)
.(parts, .. kt .. .. vt)
.. .(parts, ) ..
t ==
.(, v.X, v.Y, v.Z)
.. t ..
(remote, method, args)
goodcurry = remote:() .. .. method
#args ==
goodcurry ..
arguwu = {}
_, v (args)
.(arguwu, (v))
goodcurry .. .. .(arguwu, ) ..
(tbl)
str =
i, v (tbl)
str = str .. .. i .. .. (v) ..
str
(self)
(self) == (self:() self:())
(where, remote, method, ...)
args = {...}
out = .. where .. .. remote:() .. .. method .. .. (args)
(out)
settings.copytoclipboard setclipboard (out)
settings.copyasscript setclipboard
= (remote, method, args)
()
namecallorg
namecallorg = (, , ((self, ...)
oth oth.is_hook_thread oth.()
(self, ...)
(self)
(self, ...)
method = ()
method == settings.logfireserver
(, self, method, ...)
method == settings.loginvokeserver
(, self, method, ...)
(self, ...)
))
indexorg
indexorg = (, , ((self, key)
oth oth.is_hook_thread oth.()
(self, key)
(self)
(self, key)
settings.logindexing (key == key == )
( .. self:() .. .. key)
key == settings.logonclientinvoke self:()
(...)
(, self, , ...)
(self, key)
))
settings.logonclientevent
_, r (:())
r:()
(()
r.OnClientEvent:((...)
(, r, , ...)
)
)
.DescendantAdded:((obj)
obj:()
.()
(()
obj.OnClientEvent:((...)
(, obj, , ...)
)
)
)
signalspy is a cool clientside logger by me ofc that hooks into metamethods to log remote calls and whatever blah blah changelogs - did what the admin guy told me to do 09/06/2026 this thing is unstable, so wouldnt be surprised if bugs.