Get the plugin here
Introduction
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.
Functionality
Packet Profiler was made with design slightly similar to the MicroProfiler, which is Roblox’s performance debugging tool. You can pause the profiler either by manually clicking the button, or selecting any frame.
When left-clicking a frame, the contents of that frame will be shown in the Packet Chart window, in the form of a pie chart along with columns of data to the right:
You can open up each column and see the exact remote data which was sent. The data shows how much bytes each field takes so that you can more easily determine what takes up most size.
Since data sizes vary for different games, you can adjust the scale of each frame through the KB scale on the topbar, like so:
Additionally, some games may use network wrappers that have nonsensical remote names, so you can adjust item labels in the chart by placing a RemoteName.profiler
ModuleScript anywhere in ReplicatedStorage. The module must return a function that returns a string, and is provided two arguments:
- The remote object which was invoked
- The first argument passed by the remote, which can be anything or nothing
In-game profiling
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
How much does it cost?
This plugin is free! The objective is to democratize in-depth analysis towards remotes to help games both big and small in creating large experiences.