Repository navigation
Releases: TwilightCup/HSRTimer
Releases · TwilightCup/HSRTimer
Release list
HSRTimer v1.10.0
- Release Date: 30 Sep 2026
- Highlights:
- Added a Prev RT HUD row showing the Real Time at the previous level's completion.
- Reworked the settings panel's Interface page into sub-pages: Timer HUD now holds the HUD settings and a per-column editor for the new multi-column timer HUD.
- Added Interface → Leaderboard (moved out of its own top-level tab) and Interface → Custom Text sub-pages.
- Deleting a preset now asks for confirmation.
- Details:
- Added a Prev RT HUD row (Chinese:
上关RT) showing the Real Time value frozen at the moment the previous level completed — the real-time counterpart of the "Total at Last Segment" row. It defaults directly below Real Time in the second column. - The timer HUD now supports multiple columns:
layout.iniuses[column.N]sections (drawn left-to-right by number, an empty column is hidden) where each key is the row's 1-based position, andRealTimedefaults into[column.2]. Every row type — including Real Time, Last Run and Wake Up Time — is a regular row you can place in any column; the oldshow_real_time/show_wake_up_timetoggles are gone. The settings panel's Interface tab now opens a Timer HUD sub-page (Chinese:计时器HUD, with a Back button) holding the HUD general settings and a per-column editor: each Column N dropdown lists every row type with an integer position field (0hides the row,N > 0places it at the N-th line, so the same field enables and orders), with a per-column Delete button and a New column button at the bottom. Old[rows]configs still load but are no longer migrated or auto-repaired at boot; the default layout (now including a third column withLastRun/WakeUpTime) is written once on a fresh install. - Deleting a preset now asks for confirmation: the Delete preset button expands into a Confirm delete / Cancel pair, and the confirmation is dismissed when you switch tabs or close/reopen the settings panel.
- The settings panel's Leaderboard tab is now the Interface → Leaderboard sub-page (Chinese:
界面 → 排行榜), opened by a Leaderboard button next to Timer HUD and closed with a Back button. Every leaderboard option — content mode, HUD size/offset, entry colors, marker time display, and the subsegment source toggles — is unchanged and still applies live; the separate top-level tab is gone. - Added an Interface → Custom Text sub-page (Chinese:
界面 → 自定义文本) for editing the on-screen custom texts (layout.ini[custom.<n>]). Each text is a collapsible dropdown holding its Content box (template variables such as{gametime}/{date}/{version}substitute live), a Font size slider, Offset X / Offset Y, and its two-color gradient, plus a Delete button with confirmation. The page ends with a New text button that appends an empty text and opens it. Thehsr layout textconsole command gainedset <index> <x|y|text|font_size|color_a|color_b> <value>for the same edits.
- Added a Prev RT HUD row (Chinese:
HSRTimer v1.9.0
- Release Date: 29 Sep 2026
- Highlights:
- Added a "Use plcc timing standard" option in General → Timing that ends each segment when the game leaves the level, matching the plcc Timer standard.
- Glitchless glitches (SSG / Prop Fly / Footsie) are now soft flags with a per-trigger count instead of turning the run's red "invalid" banner on.
- The subsegment Plane radius setting now applies to loaded reference data, so changing it also affects your existing PB and manually-loaded reference samples.
- Details:
- Added a "Use plcc timing standard" option at the top of General → Timing (default off). Off (the default) keeps the previous timing: a segment ends when the game detects the pass. On switches to the plcc Timer standard: a segment ends when the game leaves the level (
Game.stateleavesPlayingLevel). Both modes record the end tick from the game's authoritative code path, so segment and total times stay jitter-free; your recorded times change only when you enable the option. While the option is on, the timer HUD shows aplcc timing modeline (Chinese:plcc计时模式) under the time rows so the active timing mode is always visible. - The "Use plcc timing standard" option is now locked for the whole run in progress: the settings panel disables the toggle (its note explains why) and the
hsr set use_plcc_timing_standardconsole command refuses the change, so a run can never straddle two timing standards. Complete the run, return to the menu, or reset the run to switch it. - Glitchless glitches (SSG / Prop Fly / Footsie) are now soft flags just like the NoEC
ECviolation: they no longer turn the run's red "invalid" banner on. Instead all active soft flags share a single HUD line in normal text color, each with its own trigger count (e.g.SSG x2), and every occurrence in a level is counted — not just the first per level. When one flag triggers again, only that flag's own segment on the line flashes red, so several co-occurring flags flash independently; the flags are cleared by a one-key retry and a full timer reset, but not by a pause-menu restart. - The subsegment Plane radius setting now applies when reference data is loaded instead of being frozen into each recorded sample, so changing it also affects your existing PB and manually-loaded reference samples (no need to re-record them). Sample files written from now on no longer contain a per-sample radius; existing files keep loading as before and are replaced the next time a PB is written.
- Added a "Use plcc timing standard" option at the top of General → Timing (default off). Off (the default) keeps the previous timing: a segment ends when the game detects the pass. On switches to the plcc Timer standard: a segment ends when the game leaves the level (
HSRTimer v1.8.0
- Release Date: 26 Sep 2026
- Highlights:
- Added a Co-op category tag that is active only during multiplayer and cannot be toggled manually: as a co-op client Subsegment is disabled automatically, markers can be triggered by any player, and only the host writes marker PBs.
- Improved the leaderboard switching mechanism: the mode-cycle key now skips disabled modes.
- Details:
- The leaderboard mode-cycle key now skips modes whose module is disabled: when Subsegment or Markers is off (your setting, or auto-disabled — e.g. as a co-op client Subsegment is off), the cycle only rotates between hidden and the remaining available modes instead of always walking hidden → Subsegment → Markers → hidden.
- Subsegment and Markers now report "disabled by your setting" separately from "auto-disabled by another mechanism" (e.g. the co-op client gate for Subsegment);
hsr status,hsr sub status,hsr marker status, andhsr leaderboard statusexpose both axes and the active reasons. - Added a "Co-op" category label (shown as "多人" in the Chinese UI) that is active automatically during multiplayer sessions: it has no rule or validity impact, is not listed on the Category page, and turns off again when you return to single-player.
- Subsegment now respects co-op roles: as a multiplayer client the module is disabled entirely (no sampling, leaderboard, or PB writes); as the host it runs normally and only uses your own (host) character for detection.
- Markers now respect co-op roles: any player can trigger a marker during a multiplayer session, but only the host writes marker PBs — a co-op client never does.
HSRTimer v1.7.1
- Release Date: 26 Sep 2026
- Highlights:
- Fixed the markers leaderboard not resetting when the next level is the same level again (a repeated campaign level).
- Details:
- Fixed the markers leaderboard keeping the previous attempt's rows when the next level is the same level again: the feed is now reset per attempt, so the first marker trigger of a new attempt replaces the stale rows instead of appending to them.
HSRTimer v1.7.0
- Release Date: 25 Sep 2026
- Highlights:
- Fixed the timer gaining a random physics frame (≈16.7 ms) at level completion, times are now exact and repeatable.
- Details:
- Stopped writing a "level restarted" message to the BepInEx log on every one-key retry; successful retries are now silent in the log, and only refused (blocked) retries report their reason.
- Stopped writing a "level loaded with N marker(s)" message to the BepInEx log on every level load; marker level-start info now appears only when markers debug logging is enabled.
- Fixed a random one-physics-frame (±1 tick) offset at level load and level completion: the game clock is now a pure integer physics-tick clock and the start/end boundaries are recorded from the game's authoritative load and pass code paths, so the same inputs always produce the same segment and total times. Pause time, retry, reset, subsegment/marker timestamps, and PB comparisons keep their previous behavior.
- Added the
hsr clockconsole command (status/history [n]/clear) so the integer tick clock and the exact segment start/end ticks can be inspected in-game;hsr clock historyis the quickest way to verify that repeated runs no longer jitter.
HSRTimer v1.6.1
- Release Date: 23 Sep 2026
- Highlights:
- Fixed the "you are up to date" message on the About tab showing the version as
vv1.6.0instead ofv1.6.0.
- Fixed the "you are up to date" message on the About tab showing the version as
- Details:
- Fixed the "you are up to date" message on the About tab showing the version as
vv1.6.0instead ofv1.6.0.
- Fixed the "you are up to date" message on the About tab showing the version as
HSRTimer v1.6.0
- Release Date: 23 Sep 2026
- Highlights:
- Added an About page and a Check Update feature to the settings panel.
- Details:
- Added an in-game dev console command set (
hsr ..., opened with~/F1) so every feature — timer, reset/retry, settings, tags, HUD/layout, localization, presets, subsegments, markers, validity flags, and LevelCollections integration — can be inspected and tested from inside the game. SeeTESTS.md. - Fixed the manual reset and one-key retry hotkeys still firing while a text input was open (for example the in-game chat), which could silently reset or restart a run while typing.
- Fixed the settings panel showing a horizontal scrollbar when the "Specify retry level" option is enabled — the input row was wider than the panel's scroll area.
- Removed the Save and Close buttons and the hint line from the bottom of the settings panel. Edits still apply live and are written to disk when the panel is closed (settings key) or the game exits.
- Added an About tab as the first entry in the settings panel navigation, showing the plugin name, version, the first two lines of the MIT license, and a GitHub Repository button that opens the project page. The
hsr aboutconsole command prints the same information. - Added a Check Update button on the About tab that checks GitHub Releases (via the project's releases feed, so it works without GitHub API rate limits): it shows the latest release's title and a short summary (release date + Highlights), an Open Release Page button for the full notes, and can download and install the new plugin DLL (replacing older copies), prompting you to restart the game after a successful update. The
hsr update ...console commands expose the same flow for testing.
- Added an in-game dev console command set (
HSRTimer v1.5.0
- Release Date: 21 Sep 2026
- Highlights:
- Added Presets for HUD layout and marker snapshots.
- Added the
NoECtag with extended climbing detection. Note that EC issoft invalid flag, which means that it wont mark the run as invalid since it might misjudge, final judgement should be made by human.
- Details:
- Moved the shared leaderboard HUD appearance and display-mode settings from
settings.iniintolayout.iniunder a new[leaderboard]section; existing settings are migrated automatically. - Added Presets: save and switch whole HUD layout + marker snapshots from the General tab. The built-in
defaultpreset is created automatically on first load or when upgrading from an older version; a preset can be created, selected, loaded, saved, and (exceptdefault) deleted. The current selection is stored insettings.iniunder[Presets] Current. - Added soft invalid flags: soft flags render on their own HUD line in normal text color with a trigger count (e.g.
EC x3), flash red on each new trigger, are cleared by one-key retry and a full timer reset, and are not cleared by pause-menu restart. - Added the
NoECtag to the Category page with extended climbing detection: when the player leaves the ground, the first grab height of that airborne period is the baseline; any new grab more than 0.2 m above it is EC (debounced to at most once per 0.2 s). TheEcviolation is a soft flag.
- Moved the shared leaderboard HUD appearance and display-mode settings from
HSRTimer v1.4.0
- Release Date: 19 Sep 2026
- Highlights:
- Added the
Glitchlesscategory tag, including SSG, Prop Fly, and Footsie detection.
- Added the
- Details:
- Pressing the manual reset key while a level is already playing now clears and stops the timer instead of immediately starting a new segment; the Wake Up Time display is also cleared, forgivable invalid flags stay cleared, and leaving the level no longer re-triggers those invalid checks.
- Added a configurable cap (
MaxSamplesPerLevel, default 480) on the number of subsegment samples recorded in one level; once a level exceeds the cap, sampling stops for that level and its buffered samples are discarded so the level does not count toward a PB. - Added the
Glitchlesstag to the Category page, with SSG, Prop Fly, and Footsie detection.
HSRTimer v1.3.1
- Release Date: 12 Sep 2026
- Highlights:
- Fixed subsegment and marker persistence.
- Fixed the Voiceline tag.
- Details:
- Subsegment and marker PBs are no longer recorded when a run has any invalid flag (e.g. cheat codes, skipped checkpoints, missed voicelines), including invalid flags that are only detected at level exit.
- The Voiceline tag now shows a live
Voice: triggered/totalprogress line in the HUD, similar to the Checkpoint tag display. - The Voiceline tag's old "all voicelines triggered" green hint was removed; the progress line is now the only Voiceline display.
- Fixed hidden easter-egg voicelines being included in the Voiceline total but not incrementing the triggered count when played.