Introducing the Event Log plugin for Roblox Studio

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.

You can install the plugin by clicking here and contribute pull requests or view the source code here.

Screenshots

image

39 Likes

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!

2 Likes

This looks super useful! Great work.

12 Likes

The main objective is to aid in debugging communication between scripts :slight_smile: 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.

2 Likes

This is absolutely fantastic. Network debugging just got so much cleaner.

Thank you for creating this!

10 Likes

Wow, I :heart: this, i am really asking me how this works. I can code stuff, but this is at another level. Really good, keep this up!

2 Likes

Very helpful plugin!
I’ll make sure to install it:

2 Likes

Very cool! I will definitely try it out :slight_smile:

1 Like

Check out the source code, it’s pretty simple actually :slight_smile:

1 Like

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.

image

1 Like

Wow why did it take so long to turn a remotespy into a legitimate development tool! :joy: 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.

1 Like