Packet Profiler is a plugin which allows you to accurately read remote data sent by different contexts. Unlike the vague and uninformative Stats windows which only show the current KB/s receive and send rates, this plugin allows you to accurately see packet data each frame, along with precise byte size information.
Since Remote Functions only allow setting one write-only callback, you can manually tell the profiler to log packets by adding a BindableEvent anywhere in ReplicatedStorage called RemoteFunctionEvent.profiler
. You can then fire this BindableEvent with a RemoteFunction as the first argument, and any data as the rest of the arguments. The profiler will then log the packet data.
This BindableEvent may also be used to log RemoteEvents that have been created at run-time.
Some games may rename their RemoteEvents for network & encoding purposes (such as those that only use 1 RemoteEvent for everything). You can rename RemoteEvents by adding a RemoteName.profiler
ModuleScript anywhere in ReplicatedStorage, whose return must be a function. This function will be called with two arguments: the invoked RemoteEvent, and the RemoteEvent's first argument. The function must return a string, which will be used as the RemoteEvent's name in the profiler.
NOTE: adding this will cause the profiler to use the module to rename all remote events, so make sure to return the original name if you don't want to rename a specific RemoteEvent.
Sometimes, simply profiling in studio may not be enough. As such, you can use this plugin in-game! Simply grab the latest release .rbxm
file and place it inside StarterPlayerScripts
. You can then open the UI through Ctrl + F5
, and pause/unpause through Ctrl + P
.
https://github.com/PysephWasntAvailable/PacketProfiler/releases/
Alternatively, you can install the in-game profiler through Wally: https://wally.run/package/pysephwasntavailable/packetprofiler
- Install the PacketProfiler Roblox Studio plugin from the Roblox Studio Plugin page.
- Download the
rbxm
model file attached to the latest release from the Releases page.
- Add
pysephwasntavailable/packetprofiler@version
to yourwally.toml
file, or grab the command from the wally.run page.