{"id":"pyseph/packetprofiler","name":"packetprofiler","scope":"pyseph","platform":"roblox","description":"Remote packet profiler","version":"2.3.0","latest":"2.3.0","versions":["2.2.0","2.2.1","2.2.2","2.2.3","2.2.4","2.3.0"],"license":"MIT","licenseRating":"safe","licenseCaveats":[],"licenseVerified":true,"dependencies":{"pysephwasntavailable/remotepacketsizecounter":{"version":"^2.4.1","alias":"PacketSizeCounter"},"pysephwasntavailable/roact-constant-fork":{"version":"^1.5.0","alias":"Roact"},"stravant/goodsignal":{"version":"^0.2.1","alias":"Signal"}},"integrity":"8b46a4601f25af564668b58b67b7bf53286dd133bd2d26385471d29616e25f4f","likes":0,"downloads":0,"install":"forest install pyseph/packetprofiler","url":"https://forest.dev/p/roblox/pyseph/packetprofiler","files":"https://api.forest.dev/ai/package/roblox/pyseph/packetprofiler/files","readme":"\r\n<h1 align=\"center\">\r\nPacketProfiler\r\n\r\n<img src=\"https://user-images.githubusercontent.com/45090858/181864347-96269b03-25d7-475a-a7ad-352e1955fd4f.png\" width=\"100\" height=\"100\" /></h1>\r\n\r\n<div align=\"center\">Remote packet analyzer tool for Roblox</div>\r\n\r\n<div>&nbsp;</div>\r\n\r\n## Introduction\r\n\r\nPacket 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.\r\n\r\n![image](https://github.com/Pyseph/PacketProfiler/assets/45090858/9a68dc84-0ad5-4358-9e79-8750d9e40b2e)\r\n![image](https://user-images.githubusercontent.com/45090858/181864397-9b9d5e82-72fe-4bee-b29f-9b8e5a16aa4d.png)\r\n\r\n## Adding Remote Functions\r\nSince 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.\r\n\r\nThis BindableEvent may also be used to log RemoteEvents that have been created at run-time.\r\n\r\n## Renaming RemoteEvents\r\nSome 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.\r\n**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.\r\n\r\n## In-game profiling\r\nSometimes, 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`.\r\n<https://github.com/PysephWasntAvailable/PacketProfiler/releases/>\r\n\r\nAlternatively, you can install the in-game profiler through **Wally**:\r\n<https://wally.run/package/pysephwasntavailable/packetprofiler>\r\n\r\n# Installation\r\n\r\n### Method 1: Studio Plugin (Roblox Studio)\r\n- Install the PacketProfiler Roblox Studio plugin from the [Roblox Studio Plugin page](https://www.roblox.com/library/10332340067/PacketProfiler).\r\n### Method 2: Model file (In-game profiler)\r\n- Download the `rbxm` model file attached to the latest release from the [Releases page](https://github.com/PysephWasntAvailable/PacketProfiler/releases).\r\n### Method 3: Wally (In-game profiler)\r\n- Add `pysephwasntavailable/packetprofiler@version` to your `wally.toml` file, or grab the command from the [wally.run page](https://wally.run/package/pysephwasntavailable/packetprofiler).\r\n","readmeTruncated":false}