[VERSION 2.0.0] Packet Profiler - easily measure all of your remotes!

Say I have a script setup like so, what would the code to properly set this up look like be. Would it just be a single fire or do I need to make connections to each of these remotes?

-- Script Located Within ServerScriptService
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local profilerEvent: BindableEvent = ReplicatedStorage["RemoteFunctionEvent.profiler"] 

local function RegisterRemoteFunction(rf: RemoteFunction)
	
end

local function RegisterRemoteEvent(re: RemoteEvent)
	
end

local function Register(object)
	if object:IsA("RemoteEvent") then
		RegisterRemoteEvent(object)
	elseif object:IsA("RemoteFunction") then
		RegisterRemoteFunction(object)
	end
end

local function CheckForRemotes(parent: Instance)
	for _, child in pairs(parent:GetDescendants()) do
		Register(child)
	end
	parent.DescendantAdded:Connect(Register)
end

CheckForRemotes(game.ReplicatedStorage)
CheckForRemotes(workspace)

You’ll have to connect to the remote event and fire the bindable event each time, like so:

re.OnClientEvent:Connect(function(...)
    profilerEvent:Fire(re, ...)
end)

Note: for remote functions you’ll have to fire the profiler event right next to where the remote function callback is received, because remotefunctions only accept one callback.

I have it now connected but the plugin still isnt showing anything
image
(You can see its detecting the receive)
image
(Nothing in chart)
image

It works for me - are you making sure to switch to the server view to check the packet chart? when using the packet chart while playing on the client, it only shows incoming packets from the server, and vice versa if in server view.

I have a question.
What could this be used for?

Sorry for the late response - is there anything which the introduction doesn’t answer?
The TLDR is that this plugin allows you to measure incoming packet data - it’s size, contents, and information. This is especially helpful for games with high ping caused by congested remote traffic.

If I had to guess this would be due to the developer console-on idle, my game averages around 0.5 KB/s but with the developer console open (with server log access), it is at minimum 30 KB/s.

im sad because its a very good plugin but it doesn’t works for me…

What’s not working specifically? It’s hard to provide help without any information.

the packet chart doesn’t works but the things looks like micro profiler work well

I’ve confirmed that the plugin is working as expected - nothing has changed since the last update 4 months ago. Please verify that you’re using it correctly.

Small update: I’ve added additional images & updated the plugin’s destriction, as per Roblox’s new asset description features: Improved Asset Description Features [Creator Marketplace]

1 Like

The chart also does not show anything for me. Tried everything but nothing seems to fix it :sad:

image

Have you selected a frame in the profiler?

Plugin stopped working for me too after the latest update


its working fine for me with the latest version. Are you sure there are remotes being sent from server → client? The packet profiler only logs incoming remotes, not the remotes being sent from the current run context.

The packet size counter used in this plugin has now been separated into a separate resource:

This plugin has additionally also been updated with more cleanup:

  • Remove foreman, switch tools to aftman
  • Separate PacketSizeCounter into separate package, use it as Wally dependency instead
  • Update README.md with more descriptions of the plugin’s behavior
  • Add CONTRIBUTING.md
  • Describe the project’s contribution & development process
incorrect information, read below.

this is essentially conjecture, but ever since adding this to my game i have had a noticeable increase in reports of server crashes. not sure how this would be triggered, and its definitely possible it has nothing to do with this resource. but use with discretion.

yeah, this module is fine. I was getting ddosed.

1 Like

The plugin does not activate, i.e. run, until you first open it for the first time - meaning it should have no impact on the game until it’s opened for the first time:
image