Dostlar STUDIO / Mods / Server Tuner

Server Tuner

Thins out expensive mod listeners · Server management

Early developmentFS25_ServerTuner

Server Diagnostics finds the source of a stutter; Server Tuner eases the load. Over a short measurement window (20 seconds by default) it measures each mod listener's cost per frame, then switches the measurement off and calls the ones above the threshold less often. Skipped frames are not lost: the thinned mod receives the summed time of the frames it skipped, so timer-driven work such as wages, production or dirt keeps the same rhythm and is just polled less often. It does not touch vehicles, physics or network sync, and it throttles nobody when the server is already fast. Early development: it passes its tests but has not been tried in game yet.

Status: Early development. The mod is being tested on our own server; the feature list describes the goal and the released version may differ.

Features

What it does

  • Measures on its own: over a short window (20 seconds by default) it measures each mod listener's cost per frame, then switches the measurement off.
  • Keeps no mod list and does not need to know which mods are installed.
  • Listeners above the threshold are called less often.
  • Skipped frames are not lost: the thinned mod receives the summed time of the frames it skipped, so the total time it sees matches real time exactly.
  • It does not touch vehicles, physics or network sync, and throttles nobody when the server is under its target.
  • Protect list: you can keep your own mods out of the thinning in the settings file.
  • Settings in modSettings/FS25_ServerTuner.xml: target frame time, mod threshold, maximum skip, measurement window, protect list. The state is shown in the console with stStatus.
  • Its effect is measured with Server Diagnostics.

Setup

How to use it

  1. Not released yet. It passes its tests but has not been tried in game.
  2. On release the zip goes into the server's mods folder only.
  3. Settings are made in the file and the state is shown in the console with stStatus. No key binding needed.