Hi everyone! I’ve released Ember Diagnostics, a client-side performance recording tool for Vintage Story.
It combines frame timings, runtime metrics, sampled managed stacks and mod context in a self-contained offline report.
AI DEVELOPMENT DISCLOSURE
The entire implementation, viewer, tests and documentation were written with AI assistance using OpenAI GPT-6 Astra. I direct and maintain the project. Source code, test harnesses and validation records are public.
AI is not required to use the mod, and recordings are not automatically uploaded.
GETTING STARTED
1. Install the mod ZIP in your client’s Mods directory.
2. Join a world and run .ember start
3. Play normally, then run .ember stop or leave the world.
4. Extract the report ZIP and open report.html
Use .ember folder to find your exports and .ember help for commands.
REQUIREMENTS AND SCOPE
• Vintage Story 1.22.7
• .NET 10 runtime
• Windows validated; Linux/macOS recording workflows are untested
• Client-only; no installation on the remote server
The viewer includes incident selection, timeline ranges, flame graphs, method inspection and baseline comparison.
Profiling has overhead. Sampled observations are not exact CPU attribution or proof that a particular mod caused a stall. Remote-server internals are unavailable.
MOTIVATION AND CREDITS
spark, by lucko and contributors, and Lithos Probe, by imtsubaki, were the principal motivations for Ember. This is an independent implementation focused on the Vintage Story client.
spark: https://spark.lucko.me/
Lithos Probe: https://mods.vintagestory.at/probe
DOWNLOAD AND FEEDBACK
Download:
https://mods.vintagestory.at/emberdiagnostics
Source and documentation:
https://github.com/bbauti/ember
Bug reports:
https://github.com/bbauti/ember/issues
Reddit discussion:
https://www.reddit.com/r/VintageStory/comments/1wl5bt1/i_released_ember_diagnostics_record_client/
Questions and feedback are welcome here too. For reproducible bugs, GitHub Issues is the best place to track a fix. Please review diagnostic files for private information before sharing them.