Skip to content

Pulse v0.2.0-indev.4

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 Sep 11:43
· 339 commits to main since this release
24d4896

Per-mod tick attribution no longer needs a restart. That mattered: the moment you want a profiler is while the server is struggling, and a restart throws away exactly what you wanted to look at.

A new server command, /pulse, drives it live (privilege controlserver, so a panel console can use it too):

  • /pulse attribution on starts the duty cycle now, /pulse attribution off stops it and leaves the engine profiler switched off. Both act on the running server only and never write pulse.json, so a ten-minute look does not become permanent by accident.
  • /pulse attribution status tells you what is running: on or off, burst and interval in use, ticks profiled so far.
  • /pulse reload re-reads pulse.json and applies the whole Attribution block live. Keys that cannot change at runtime (Port, Bind, RuntimeMetrics, ChunksRefreshSeconds) are named in the reply when their value differs, so you know a restart is still owed.

To make the live switch safe, the attribution families are now always registered and the engine's frame profiler is always primed at startup, whether or not Attribution.Enabled is set. An idle server exposes no extra series: the families only emit once a burst has completed.

Everything else is unchanged from v0.2.0-indev.3: same metric families, same names, same labels. Both zips are published as usual; the base mod is still one dll with no dependencies.

Same game support: Vintage Story 1.22.x, dedicated server, .NET 10. Test bar for this tag: 217 tests including 30 embedded-server scenarios (two of them run the /pulse commands on a live server and check the profiler is left switched off), 44 mutations killed, quality gate green.