I have been running a small server and its been awfully annoying to monitor the servers performance in detail, because the debugging tool build in shows you only data from your local machine. I have decided I want to try to make a mod that gives more insight on the status of the server side of things while using the debug tool. Now I'm kinda new to the modding community of this game and don't 100% know what I'm doing, but while looking through the API I could not even find a single mention of the word debug. Is there a way I can add fields to the in game debugging tool with mods?
(Yea I know I will have many more hurdles to clear to get info about the server to the local machine, but first things first)
server debugging mod
-
- Burner Inserter
- Posts: 13
- Joined: Thu Mar 21, 2019 8:06 pm
- Contact:
Re: server debugging mod
No, you cannot access any info that is not in the API.
What info are you interested in specifically? It may be in the API under a different name.
What info are you interested in specifically? It may be in the API under a different name.
-
- Burner Inserter
- Posts: 13
- Joined: Thu Mar 21, 2019 8:06 pm
- Contact:
Re: server debugging mod
Currently I'm mainly looking to add things to the debug screen, not read from it. I want to calculate my own things based on different API's and output the results in the debug screen.
One of the things I would like to add there is a (approximated) server UPS, since there is currently no real way to find that value. (Except from a very manual workaround I found)
One of the things I would like to add there is a (approximated) server UPS, since there is currently no real way to find that value. (Except from a very manual workaround I found)
Re: server debugging mod
Your client runs at the server's approximate UPS.
If your client is too fast, it is forced to slow down.
If you client is too slow, it is disconnected.
If your client is too fast, it is forced to slow down.
If you client is too slow, it is disconnected.
-
- Burner Inserter
- Posts: 13
- Joined: Thu Mar 21, 2019 8:06 pm
- Contact:
Re: server debugging mod
that is true. however the UPS shown in the debug mode is not the UPS the game is actually running when you are playing a multiplayer game. Its the UPS your local machine is capable to keep up with. I noticed this when i had to move to a temporary server with kinda horrible CPU performance, the game was very noticeably slowed down because UPS was running low, however in debug mode it still showed 60 UPS and FPS. that's because my local machine was significantly more powerful than the server I ran on then.
I also estimated the UPS of the server with the manual workaround I discussed earlier. Basically you kill someone and watch the timer on his body and compare that to a stopwatch, if the times go the same speed you are at 60 UPS and if the bodies time decays slower you can calculate the UPS by using a ratio in comparison to the stopwatch. In that case found that the server was running at about 1/4th the speed of my stopwatch so it was around 15 UPS while debug was still saying 60 UPS.
I also estimated the UPS of the server with the manual workaround I discussed earlier. Basically you kill someone and watch the timer on his body and compare that to a stopwatch, if the times go the same speed you are at 60 UPS and if the bodies time decays slower you can calculate the UPS by using a ratio in comparison to the stopwatch. In that case found that the server was running at about 1/4th the speed of my stopwatch so it was around 15 UPS while debug was still saying 60 UPS.
Re: server debugging mod
Code: Select all
script.on_nth_tick(60, function()
if not global.profiler then global.profiler = game.create_profiler() end
game.print(global.profiler)
global.profiler.reset()
end)
-
- Burner Inserter
- Posts: 13
- Joined: Thu Mar 21, 2019 8:06 pm
- Contact:
Re: server debugging mod
so outputting it in debug screen is out of the question? Im guessing just writing it directly onto the screen based on a mod setting (default off) is the next best thing i can do? or is there a better way to hide it for everyone except people actively enabling it?
Re: server debugging mod
Adding to the debug screen is not possible. You can, however, create your own UI elements (in this case probably just a label displaying text) and show/hide that on a per-player basis. How you want to toggle it is up to you. A hotkey, per-player mod setting or console command can be coded.
Getting information on server UPS is going to be more tricky. Lua scripts have to run in synchronized lockstep. That means their output is identical on all machines, otherwise you would run into a desync. The closest you can come to this is reading a LuaProfiler every X seconds. It will display Y>=X seconds and you can calculate average UPS. The latter you will have to do manually, as lua has no access to the timing information.
Getting information on server UPS is going to be more tricky. Lua scripts have to run in synchronized lockstep. That means their output is identical on all machines, otherwise you would run into a desync. The closest you can come to this is reading a LuaProfiler every X seconds. It will display Y>=X seconds and you can calculate average UPS. The latter you will have to do manually, as lua has no access to the timing information.