SimpleSpy Remote Spy v2.2

SimpleSpy v2.2 What’s New?

  • Window resizing! Make SimpleSpy as big or as small as you need it to be, and dynamic scaling prioritizes the preview window
  • Added support for KRNL’s ‘gethui’, so SimpleSpy is just as undetectable on KRNL as it is on Synapse X
  • Retrofitted internal button handling to support more dynamic tooltips. This means that tooltips can now display dynamic status indicators for toggleable SimpleSpy functions
  • SimpleSpy now uses a custom cursor system that will override any existing implementations
  • SimpleSpy can now be interacted with from the ESC menu
  • Minor tweaks and fixes to both the syntax highlighter and other UI elements to ensure consistency and style ?
  • Detection method fixes in the serializer
  • Certain parts of the source code have been cleaned up
[Image: VxnesTi.gif]

Guide to the new SimpleSpy API

SimpleSpy:ValueToVar(<any> value[, <string> name]) <string>
This is designed to convert any value into a variable, with the 2nd argument being the (optional) name of the variable.

SimpleSpy:TableToVars(<table> t) <string>
This is designed to convert each individual index of a table of values into variables, with the (optional) index being the variable name.

SimpleSpy:ValueToString(<any> value) <string>
This method can be used to quickly generate a string from a given value. This isn’t recommended to be used with tables (though it does support them), since this will not generate the value as a variable.

SimpleSpy:ArgsToString(<string> method, <table> args) <string>
This method is designed largely for internal use, but it can be used to generate SimpleSpy’s iconic R2S scripts.

SimpleSpy:GetFunctionInfo(<function> f) <string>
This is used internally to generate a table of function info (basically debug.getinfo and debug.getconstants). Might be handy to use w/ getgc().

SimpleSpy:HookRemote(<Instance> remote, <function> f)
This will directly hook any remote calls, you must return arguments as a table.
DEMO (youtube video)

SimpleSpy:GetRemoteFiredSignal(<Instance> remote) <ScriptSignal>
This will return a (functionally equivalent) ScriptSignal you can connect to remote calls with. See Roblox documentation for more info.
DEMO (youtube video)

SimpleSpy:BlockRemote(<Instance, string> remote)
Prevents the specified remote from firing.SimpleSpy:ExcludeRemote(<Instance, string> remote)Excludes the specified remote from logs


Q: Who made SimpleSpy?
A: Hi, me, exx. Just me, I wrote the entire remote spy completely from scratch.
Q: Can I modify the source?
A: Absolutely, SimpleSpy is open source, the GitHub is right here:, I just ask that you give credit where credit is due.

Q: Are you OK with me using generated scripts?
A: Absolutely. I wouldn’t recommend directly copy-pasting generated scripts into your own, as they’re more to provide a visual, but I spent a lot of time on that serializer for a reason. You certainly don’t have to give credit if you used SimpleSpy to make a script, but I always appreciate a tip of the ol’ hat.

Q: What’s the deal with version 1 still receiving some support?
A: Lotta people liked that UI and don’t want to switch. The back-end is very similar since I had already ported all the major improvements to the V1 UI a while back, so I’m able to easily adapt updates to V2 to V1. To be clear though: two different sources.

Q: Why is your UI so trash?
A: Honestly idk, you just can’t make a UI that pleases everyone. I just tried to go for something unique since I wanted the remote spy to have an original feel (because it is 100% from scratch).

Q: Where can I contact you directly?
A: The discord, it may look a little on the dead side, but I promise, I do actively check it.

RemoteSpy Script: