I would certainly enjoy better debug tools – you should absolutely finish it. Some feedback:
- A “Hide Copies” option is bloat. They should be automatically combined like the output with the timestamp showing the most recent occurence
- UI appearance could use a facelift
I worked on something similar that tackles the developer’s consoles biggest flaws. Implementing its features into your rewrite would make for a really powerful tool:
- Logs from before you joined are showed (the developer console doesn’t replicate existing server errors on join)
- You can view other clients’ logs
- Logs involving clients are generalized so they display as
<Player>.Character.Tool.Script : ErrorMsg- This makes it easier to combine duplicate errors
- I also log “AffectedPlayers” when I parse their names out. Currently I only increment a counter, but you could show the actual affected players as well
- Stack traces of errors are hidden until the error is selected, which clears up clutter
- Duplicate logs are automatically combined
- Duplicate stack traces are ignored. Different stack traces for the same error are logged.
- Model itself automatically filters out garbage logs like “Replication: Can’t create default object of type x”
- Developers can set custom permission (who gets to use console) callback
- Server age and cumulative player counter
Here are some features I wanted to implement but never got around to as well:
- Log errors to the DataStore + a plugin interface to view/search them
- Advanced filters (not what’s pictured in this post, but Google-like searching where we can control exactly what we search with quotations, etc)
- Ability to save filters to DataStore so they can be reused later (important for longer advanced filter strings)
- Ability to set up alerts for logs with filters
- Log to special DataStore key which the plugin will auto-notify for when the place is opened up
- Popup to developers in-game
- Log to some 3rd-party service which can ping developers