Introducing the Event Log plugin for Roblox Studio, brought to you by Bytebit and developed using roblox-ts.
The premise of this plugin is simple: monitor your BindableEvent and RemoteEvent instances and view what’s happening with them for more information while debugging or just simply testing your game.
The plugin is built for localization, complete with a csv in the source code for easy localization into more languages. If anyone is willing and able to contribute PRs adding to this csv file in the source code, your time and effort would be very much so appreciated!
The main objective is to aid in debugging communication between scripts For instance, if you have a RemoteEvent-based communication system for your game, this will hopefully make figuring out how the server and clients are sharing information much easier to understand.
Update: Now added a settings menu, with one setting that allows you to turn on auto-running when the window opens, which can be useful for listening to events immediately as your play solo begins.
Wow why did it take so long to turn a remotespy into a legitimate development tool! I’m surprised I never thought of this, but this is truly an amazing contribution and actually exactly what I was looking for when I came to the forum today.
I think a great direction you can take this in if you so choose is making a full dependency graph. It would be INCREDIBLY helpful to see what bits of old code still rely on old remotes scattered throughout the game! I know this is a tough thing to add and it may not be practical but I know myself and many others could benefit from something of the sort.
Another more practical idea is possibly listening in on RemoteFunctions and BindableFunctions as well. RemoteEvents are great but much of my code runs with RemoteFunctions. Something like this would be amazing to have and could be done by listening for the OnServerInvoked property being changed, then adding in a wrapper function that calls the function it was set as (if that makes any sense). To rephrase that, if you’re familiar with other coding languages, you’re effectively storing the function that was set by another script as a lambda and then setting the function to your own function that does all your tracking code and return the result of that lambda. Hopefully that makes sense, good luck and thanks for making this!
finally remotespy but for development, quick question, how does the plugin detect the remoteevents and bindableevents being fired?
I just sweeped through the code real quick, and I thought it would be like the remotespies that come shipped with exploits, such as R2S, just taking advantage of __index and __namecall metamethods, great work!
This idea of also listening to BindableFunction and RemoteFunction invocations has been mentioned a lot. The problem is that On*Invoke is not readable, so there’s no way to insert middleware without the developer specifically writing code to support it. Unfortunately, that makes this idea a non-starter.
Hi there, thanks for letting me know! I’ve updated the OP with a new link. Looks like the old plugin page links don’t redirect properly to the Creator Dashboard