Remotes and modules

Every RemoteEvent, RemoteFunction and loaded ModuleScript a scan found, with fire and require helpers.

The Remotes and Modules tabs both read the result of a scan. Nothing scans automatically, so press Scan in the sidebar first. Until then both tabs are empty.

The Spy tab lists calls that happened. These two list what exists in the game.

Remotes#

Every RemoteEvent and RemoteFunction the scan found, with its path, its class and how many listeners it has. Names that appear more than once collapse into one group; names that are unique sit in Ungrouped.

Each row copies its path or reveals itself in the Explorer. Click one to open it:

  • Type arguments as Lua ("Walk", 42, true) and press Fire, or press Enter.
  • A RemoteFunction reply is shown underneath.
  • Copy gives you the whole call as Lua.
  • Every fire is logged to the Spy stream, marked as yours.

Inspect handlers dumps every listener connected on the client: where it was defined, its upvalues, its constants and its nested functions.

No connections is a normal answer

For a RemoteEvent, an empty handler list usually means the game only listens on the server, which the client cannot see.

Modules#

Every loaded ModuleScript, with the functions it returns and the ones it keeps as upvalues. The filter matches both the path and the function names, so you can search for a function and find the module it lives in.

The copy button gives you local M = require(path). Click a row for three views:

ViewWhat it shows
APIEvery function with its argument names. Upvalue functions are marked
StateUpvalues and constants, per function. Numbers, booleans and strings are editable and the edit hits the live closure
BytecodeThe module's bytecode, if the executor exposes getscriptbytecode

Empty State means the module is not loaded

Upvalues and constants only exist once something has required the module. Require it in-game and read it again. Some executors also lack getupvalues and getconstants, in which case the view stays empty.