ULTRASTATS
Stat tracking, stat viewing, performance analysis, and run logging for ULTRAKILL. (Mod of the Month!)
By AtomSmasher
CHANGELOG
Changelog
v0.0.15
- Further improved the queue-save system to ensure no runs slip through the cracks.
- Added compatability with custom difficulties, including BananasDifficulty, BillionDifficulty, SavageDifficulty, and ULTRAPAIN.
- Added an analysis window to the stats tab, allowing users to view stat averages, standard deviations, and best values, among other things.
- Won Mod of the Month for March 2026! Changed the mod's icon to incorporate MotM purple and improve the icon's background.
- Fixed the "X" button's font so now it uses VCR OCD Mono.
- Contained "rogue" AI... I hope...
v0.0.14
- Added flagging for Cybergrind runs.
- Returns filepath display back into the status section of the stats tab, this time called "Source" and only displays the filepath starting from the ULTRASTATS data folder.
- Added ID coloring in the stats tab based on whether or not the level challenge was completed that run. Runs with completed challenges will display ID as a gold color. (non-Cybergrind only)
- Added Rank coloring for run flags, so when a run used cheats the rank will display as a white underscore on a green background. With major assists the rank will display as blue on white. (non-Cybergrind only)
- Added ID coloring for run flags for cybergrind stats.
v0.0.13
- No longer the name of player's user folder in the stats tab.
- Image folder be compatable using r2modman, so now the icon and the easter egg should work properly.
v0.0.12
- Added rank based font coloring in the stats viewer. So values will be colored according to the rank of that value.
v0.0.11
- Added PluginConfigurator preferences for the main menu button corner, default ULTRASTATS tab, default STATS difficulty, and STATS ID sort order.
- Added tabs to the ULTRASTATS main menu UI, currently there are tabs for INFO, STATS, and PLOTS.
- Added new ways to close the ULTRASTATS main menu UI, including a top-right “X” button and the ESC key.
- Added an in-game stats viewer in the STATS tab that reads saved ULTRASTATS files and converts stored values like Unix timestamps and run times into human-readable formats.
- Added more readable STATS tab labels for difficulties, campaign layers, and custom bundle/level names.
- Changed queued runs to save immediately after queueing when endscreen discards are disabled, reducing the chance of bad pending-state behavior if the player spam clicks through the endscreen.
- Changed campaign and custom run capture to wait for complete endscreen data before queueing or saving, preventing incomplete run data from being logged when the endscreen is spam clicked.
- Changed the main menu button icon to a less obnoxious version.
- Changed the main menu button and all other buttons to ones that look identical or near identical to ULTRAKILL's official UI buttons.
- Added an easter egg...
v0.0.10
- Added a button in the main menu that gives info about ULTRASTATS as a project.
- Fixed an issue where if Angry Level loader wasn't installed the other two loggers wouldn't work properly
v0.0.9
- Improved long-term performance by moving everything possible off the main thread.
- Reduced the chance of logging systems hurting game performance.
v0.0.8
- Added async file saving.
- Added support for custom level data saving through Angry Level Loader.
v0.0.7
- Added a queue system for run logging.
- Run data is now collected on the end screen, queued, printed to the BepInEx terminal, and appended to the
.jsonlfile when the scene changes. - Added an option to use the Delete key to discard a queued run instead of appending it to the
.jsonl.
v0.0.6
- Removed the difficulty clamp to improve compatibility with custom difficulties.
- Added a configurable filepath for the ULTRASTATS data folder.
- Added PluginConfigurator options to disable Cybergrind logging or Campaign logging entirely.