When I join my game, the server log’s times from the past all have the same time as my join time, instead of when the error happened.
The server log cuts off errors eventually, so I can’t see old errors that happened at runtime or after x minutes before it cuts off.
In the top image, the earliest logged entry is someone joining at a [bugged] time. In the next image, this is what the new server outputs (but gets cut out later so I can’t see stuff like this when I get reports of an error halfway through the server’s life)
The second issue isn’t actually a bug, the server history for LogService is only 512 messages long. We can’t use an infinite amount of memory and we can’t send an infinite amount of messages over the network to when the creator of a game joins so we need to have a cutoff point for the history. 512 does seem pretty low though so I will ask about getting it increased, this won’t fix the issue but it might help somewhat.
I suggest you take a different approach to dealing with infinite memory. Most of the errors/warnings in a game are duplicates of each other, so even in a server that’s been up for 24 hours, you may only have 10 unique errors which is hardly too much to store in memory. For instance, in a Zombie Rush server that’s been up for four hours, we have only 44 unique client errors. The total amount is in the hundreds of thousands. By client errors I mean every single local error that’s happened for every single client that’s joined the game.
With this approach, 512 messages would be plenty. Just keep track of how many times each error/warning has occurred and if they’re the same error workspace.EchoReaper.Script -> Error & workspace.TheGamer101.Script -> Error, combine them.
This looks great! I’m not sure if we should redesign the developer console to do something like this or add this as an additional feature/tab. Maybe there are some situations where viewing chronological logs is useful so we shouldn’t remove them.
I think the server error log handling should probably be moved to a server CoreScript and we could add some nice features like this.
You’re right – I agree. The chronological view is necessary for trying to discover the nature of bugs that occur while you’re playing. For instance, PlayerA loses his arms right in front of you. Combined history doesn’t help in this case – you’d have to look at what error just happened. This should just be another tab.
Proposed layout:
Info
- Server Age
- Cumulative Players
- # Server Errors
- # Client Errors
- # Server Warnings
- # Client Warnings
Timelog (current logs)
- Server Logs
- Client Logs
Combined log
- Server Logs
- Client Logs
Script Performance
- Server (currently "Server Scripts")
- Client (we dont have this yet?)
Stats
- Server (currently "Server Stats")
- Client (currently only accessible through Shift+F2/3)
Jobs
- Server (currently "Jobs")
- Client (not accessible anywhere)
Another option is to have a global server/client tab and then split each into the tabs mentioned.