What is NetBridge

A debugger for live Roblox games. See every remote call, every HTTP request, and the instance tree — from your browser.

NetBridge attaches to a running Roblox game and shows you what it is actually doing:

  • Every FireServer and InvokeServer, with its arguments decoded
  • Every HTTP request the game makes, separately from remote traffic
  • The live instance tree
  • Decompiled scripts
  • A console you can execute in

The interface is a web page. The capture happens on your machine.

How it fits together#

Three pieces, and only one of them is yours to run:

The interface — hosted here

The page at rbx.lol/netbridge is the whole UI. Nothing to install, nothing to update, and it works on any machine you open it on.

The client — runs in your executor

A single loadstring you paste into your executor. It does all the real work: hooking __namecall, capturing HTTP, walking the instance tree, serialising arguments. It runs on your machine, inside your game session.

The relay — introduces the two

A browser tab cannot accept an inbound connection, so the two need somewhere to meet. The relay pairs them by room code and forwards frames between them.

What the relay does and does not do#

Your game data is not stored on our server

The relay forwards frames byte for byte. It does not parse them, and it writes nothing to disk — many frames are LZ4-compressed and the relay could not read them without decompressing them first, which it does not do.

Captured traffic lives in your browser, in IndexedDB, and nowhere else. Close the tab and it is still on your machine; clear your browser data and it is gone everywhere.

What the relay does keep, for as long as you are connected: a room code, and which two sockets belong to it. That is the entire state. An empty room is swept a minute after both sides disconnect.

Why not run it locally?#

You can — that is how NetBridge started, and the local bridge still exists. But it meant installing Node, running a server, and keeping it updated before you could look at a single remote call.

Hosting the interface removes that: the page is already open, and the executor connects outward to reach it. Your machine still does every expensive thing.

Requirements#

RequirementWhy
An executor with WebSocket.connectHow the client talks to the relay
hookmetamethod or equivalentCapturing __namecall for remote traffic
request / http_requestCapturing and replaying HTTP

Most modern executors have all three. Missing pieces degrade gracefully — without request, HTTP capture is unavailable but remote spying still works.

Next#