AtomSmasher-ULTRASTATS icon

ULTRASTATS

Stat tracking, stat viewing, performance analysis, and run logging for ULTRAKILL. (Mod of the Month!)

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 .jsonl file 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.