ClimbInfoTracker
Track your every climbing record.
| Date uploaded | a week ago |
| Version | 0.4.0 |
| Download link | LengSword-ClimbInfoTracker-0.4.0.zip |
| Downloads | 621 |
| Dependency string | LengSword-ClimbInfoTracker-0.4.0 |
This mod requires the following mods to function
BepInEx-BepInExPack_PEAK
BepInEx pack for PEAK. Preconfigured and ready to use.
Preferred version: 5.4.75301README
ClimbInfoTracker
Track the local player's PEAK climb history.

Features
- Records climbs as in progress, summited, failed, or abandoned.
- Persists in-progress climbs periodically, so an interrupted session is kept as an abandoned record instead of being lost.
- Stores the start date and time, duration, current height, ascent, player count, level, current biome, run mode, network mode, and Photon room name.
- Displays the game's confirmed run ID for multiplayer climbs. A Photon room can host multiple climbs, so the run ID distinguishes each climb within the same room.
- Records other instantiated players seen during a multiplayer climb, including their game platform family, platform account ID, and latest observed display name. The recorded player count represents the peak number of instantiated players present at the same time.
- Supports normal runs, custom runs, and custom mini runs. Each record shows its ascent level, including custom runs.
- Stores the generated map's complete biome sequence, including biome variants and the Mesa tomb state when available. Long routes are summarized in the record row without truncating the biome data stored in history.
- Records the generated map seed when the climb uses a PLL custom map.
- Supports True Final Ascent runs with the synchronized map seed, complete stage route, current biome, generated variants, and Mesa tomb state. TFA routes use a first-and-last stage summary in the record row and a full route in details.
- Marks climbs where TFA Apocalypse mode was observed active, including runs without TFA's long route. These records appear in the TFA filter and offer details.
- Adds a
Climb Recordspage to the pause menu. Records use a compact four-line layout, have a visible scrollbar, and can be deleted individually. Multiplayer details show the complete map route and recorded players in separate columns. - Restores the scroll position and selected record action when returning within the same scene. Changing scenes resets browsing to the top.
- Filters records by outcome and map source, with selections kept until the game restarts.
- Opens matching local climb records from a fellow player's entry in details, with a record count and a way to return to the previous filters and position.
- Provides a separate fellow-player directory with name, past-name and account-ID search, plus sorting by latest associated record or record count.
- Opens player details from the directory or an active player query, with Steam avatars, profile links, and friend actions for Steam accounts.
- Deletes matched completed records after confirmation, while keeping the in-progress climb. Records are kept if saving the deletion fails.
- Provides English and Simplified Chinese text. Other game languages fall back to English while game-provided biome names continue to use the game's localization.
History Filters
The status and map dropdowns each select one option, or All, directly on the
history page without opening a separate dialog. A record must match both selections.
Changing a filter returns the list to the top; closing
the page or changing scenes keeps the filter selections for this game session.
Map sources are Vanilla / Other, PLL, TFA, and TerrainRandomiser, based
on the information saved in each record rather than currently installed mods.
TFA includes both TFA long-route climbs and climbs with a recorded Apocalypse
marker. The Apocalypse marker takes priority for filtering even when the actual
map uses PLL or TerrainRandomiser; its route and map-mod data remain available.
Vanilla / Other includes custom runs without these map-mod markers and older
records with no map-mod information; it does not prove a map was official.
Delete matched shows the number of matching completed records. Its confirmation
keeps that candidate list fixed and does not include new matches added afterwards.
In-progress records are never included in bulk deletion. Deletion cannot be
undone in the interface; individual record deletion remains unchanged.
Fellow Player Queries
Each fellow player with a valid saved identity has a Records N button in climb
details. The count includes every retained local record containing that identity,
including the current record and in-progress climbs. Repeated entries in one
record count only once. Matching uses the normalized platform and account ID,
not the name: changing names does not split an account, and identical names do
not combine different accounts. An identity can be queried while its name is
still pending; legacy Steam and Windows labels use the existing identity rules.
Opening a query temporarily sets status and map to All and starts at the top.
You can then narrow the result with those dropdowns; records must match the
player identity and both selections. The query banner shows the saved name,
platform, and full account ID. Opening and closing a result's details stays in
the query. Selecting another fellow player replaces the target without creating
a nested query.
For queries opened from climb details, Exit Query, the history page's back
button, or Esc returns to the original filters, browsing position, and source
record's details button. Queries opened from the fellow-player directory return
to that directory instead, preserving its search, sort order, position, and
selected player. Esc closes an
expanded dropdown first. Closing and reopening the pause menu within the same
scene keeps the query; changing scenes exits it, restores the original filters,
and returns browsing to the top. Reset clears only the status and map selections
and starts at the top, keeping the queried player and the original return context.
Changing either dropdown also keeps the player query active. When both selections
are already All, there is nothing to reset and the button is disabled.
Single-record and bulk deletion remain available in query results. Bulk deletion confirms the queried player's identity, selected filters, and completed-record count before deleting the fixed candidate list. It deletes climb records, not just names from a player list; in-progress records remain protected.
Queries only cover retained local records with saved participant identities. Older records without a player list, disabled identity collection, or deleted records cannot establish that you have never played together. A participant's presence in a record does not establish a shared summit result or time spent online together. Listing, searching, and querying records use local history only; opening a Steam player's details can request their name and avatar from Steam.
Fellow Player Directory
Open Fellow Players from the history toolbar when no player query is active.
The separate page lists all valid saved player identities across retained local
records, including in-progress climbs, independently of the history page's
status and map filters. Each entry shows the saved name, full platform account
ID, latest associated record's start time, and a Records N button using the
same matching rules as climb details.
Search matches names, saved past names, or account IDs, without case sensitivity. When only a past name matches, the entry identifies the matching past name. The displayed name comes from the most recently started associated record with a valid saved name, not a fresh platform lookup; unnamed recent records do not hide an older available name. The latest-record timestamp is the climb's start time, not the time the other player joined or was last seen.
The default sort is Most Recent; Record Count sorts by the number of retained
associated climbs. Search and sorting return the list to the top and remain set
for the game session. Entering the page refreshes the directory; typing searches
its current summary without scanning history again. Returning from a query
refreshes counts and names, so deleting the last associated record also removes
that player from the directory. No separate player database is stored.
The directory's back button or Esc returns to the history position and filters
from before opening it. Esc first closes a sort dropdown or ends text editing.
Within a scene, player-list browsing position is retained; scene changes clear
old positions and return contexts while retaining search and sort preferences.
Reset in a query keeps the target player and the return path to the directory;
use Exit Query, back, or Esc to leave the query.
Player Details
Use Player Details beside a player's Records N button or beside Exit Query
in an active query. The popup shows the name, platform, and full account ID.
Closing it or pressing Esc returns to the same browsing position and button,
without changing the player query, history filters, directory search, or sorting.
For Steam accounts, the popup requests the name and avatar only for that player.
It first shows the recorded name, then prefers a valid name returned by Steam;
if the recorded name differs, it remains visible as Recorded name. Steam's
returned information may be cached. Missing avatars or unavailable Steam data
do not prevent viewing recorded information. Other platforms show basic details
without Steam actions.
View Steam Profile opens the account in the Steam Overlay. Add Steam Friend
opens Steam's own confirmation, rather than sending a request automatically.
Already-friend, pending outgoing invite, blocked, and unavailable relationships
disable adding; incoming invitations offer Steam's accept-invitation confirmation.
If Steam or its overlay is unavailable, the popup explains why its actions are
disabled. It does not open an external browser. Returning from the Steam Overlay
keeps the player popup open and refreshes the friend-action state.
Names and avatars fetched for the popup do not update saved climb records or the directory's search data. Avatar textures are kept only while the popup is open and are not written to disk. There is no avatar preload for the whole list, Steam Web API key, or separate player-profile database.
TerrainRandomiser Integration
TerrainRandomiser is optional. When it is installed and random terrain is enabled for a run, ClimbInfoTracker records the terrain seed and a compressed snapshot of the map settings with that climb.
- The record displays the terrain seed when one was captured.
Exportwrites that record's original map settings toApplication.persistentDataPath/TerrainRandomiser/as a formatted JSON file. The file name uses the record's start time and is overwritten if it already exists.Loadis available only at the Airport. It loads the selected record's map settings into TerrainRandomiser for the next run.- The
ExportandLoadbuttons appear only when TerrainRandomiser is loaded and the selected record contains a saved map-settings snapshot.
True Final Ascent Integration
True Final Ascent (TFA) is optional. When it is active, ClimbInfoTracker uses TFA's synchronized seed and stage chain rather than treating each physical map segment as a single biome. Caldera, The Kiln, Gloom, and The Citadel appear as separate stages, with names localized by the game.
The complete route, generated variants, and Mesa tomb states are captured once TFA finishes building the map, including stages hidden until the player reaches them. Variant selection is read within each stage's terrain, independently of whether the whole stage is visible. Details that cannot be read remain unknown; unknown variants are left blank, not recorded as defaults. Confirmed details are not scanned again. Resuming the same climb preserves confirmed details when its seed and stage route match. Peak is included only when a real Peak progress point or stage exists, and Void is added only after entering it.
TFA long-route generation takes priority over TerrainRandomiser and PLL collection while active, so their seeds and saved map settings are not attached to a TFA climb. If the installed TFA version exposes an unsupported stage interface, a warning is logged and unconfirmed TFA seed and route data are not recorded. Previously captured data is retained. Older records are not inferred to be TFA runs.
Apocalypse mode is recorded independently of TFA's long-route generation. It requires a locally installed, compatible TFA version and uses TFA's own active state, including its daily-challenge exclusion and room/local settings. During formal gameplay, the existing one-second capture and snapshot paths can pick up delayed synchronization. Once Apocalypse has been observed active in a climb, the marker is kept, including when resuming that same climb. It means the mode was observed active at some point, not necessarily that it stayed active throughout. Airport settings do not update the previous climb, and old records are not backfilled.
Apocalypse records show TFA (Apocalypse), with the TFA route seed when available,
and provide a details button even for offline vanilla runs. Apocalypse alone does
not replace the actual map's route, seed, or TerrainRandomiser settings. Vanilla
and TerrainRandomiser rows still show the full route, while PLL and TFA long
routes keep their first-and-last summaries.
Configuration
ClimbInfoTracker uses the following BepInEx configuration entries:
| Section | Key | Default | Description |
|---|---|---|---|
General |
Enable Tracker |
true |
Enables recording new climb history. |
General |
AutoSaveInterval |
60 |
Seconds between in-progress snapshots. Set to 0 to save only when a climb starts and ends. |
Privacy |
RecordPlayerIdentities |
true |
Records other players' platform names and account IDs in multiplayer climb history. Disabling it does not remove identity data already stored. |
TerrainRandomiser |
UseActualMapSettings |
true |
When loading a saved TerrainRandomiser record, disables random biome and variant selection for overridden biomes so the settings reproduce the generated map. This does not change exported files or the stored record snapshot. |
Data
History is stored in:
Application.persistentDataPath/ClimbInfoTracker/ClimbInfoTracker.json
On Windows with PEAK's default Unity company and product path, this is usually:
C:/Users/<YourUsername>/AppData/LocalLow/LandCrab/PEAK/ClimbInfoTracker/ClimbInfoTracker.json
Saving writes a temporary file in the same directory before replacing the main
file. ClimbInfoTracker.json.bak keeps the previous successfully saved history;
the first save does not create a backup. Starting the plugin normally reads
history without rewriting the files or rotating the backup.
If the main file is missing or contains invalid history JSON, a valid .bak
is restored automatically. Damaged files are preserved as
<original file name>.load-failed.<UTC timestamp> before replacement, with a
numeric suffix if that archive name already exists. If neither file is valid,
new history can be saved only after the damaged originals have been archived.
File permission or other read errors do not cause existing files to be
overwritten. Failed saves keep the in-memory history for the next normal save;
leftover .tmp files are not loaded as history.
When player identity recording is enabled, multiplayer records store display names and platform account IDs as plain text in this local JSON file. ClimbInfoTracker does not upload this data.
The stored Platform field uses the game's platform family. Steam players are
stored as Windows with their SteamID64, while climb details display Steam
for Windows identities with a valid public individual SteamID. Steam availability
affects nickname lookup, not the stored identity. Older Steam entries with
valid SteamIDs are normalized to Windows, and duplicate identities are merged
when history is loaded, preserving their first position and preferring valid
legacy Steam display names. Normalized history is written on the next normal save.
Valid account identities are retained even when a display name is not yet
available. Identities require a recognized game platform family and a non-zero
unsigned numeric account ID, saved as a string. Collection, history normalization,
and merging use the same identity rules. Missing names remain empty in JSON and
appear as Name pending in details.
The existing one-second participant scan fills in names while those players are
present in the active climb, without clearing a previously recorded valid name.
Unavailable Steam names are requested by SteamID without downloading avatars;
Steam players do not fall back to Photon nicknames.
Run IDs from older history schemas are hidden because those versions did not record whether the value came from the game's authoritative run synchronization.
TerrainRandomiser exports, when used, are stored in:
Application.persistentDataPath/TerrainRandomiser/MapSettings_yyyy-MM-dd_HH-mm-ss.json
References
CHANGELOG
Changelog
[0.4.0] - 2026-10-05
Added
- Support TrueFinalAscent climb records, including map seeds, complete routes, biome variants, and Mesa tomb states.
- Show TFA Apocalypse mode in climb records, with TFA filtering and access to climb details.
- Filter climb records by outcome and map source.
- Delete matched completed records after confirmation, while keeping in-progress records.
- Find climb records involving a fellow player from climb details or the fellow-player page.
- Browse all recorded fellow players on a separate page, search by names, past names or account IDs, and sort by latest associated record or record count.
- View fellow-player details, including Steam names and avatars, and open Steam profiles or friend invitations.
Changed
- Keep scroll position and selected record actions when reopening history in the same scene.
- Select status and map filters from compact dropdowns, with buttons sized to their labels.
- Reset status and map filters without leaving a fellow-player query or losing its return position.
Fixed
- Automatically recover climb history from a backup when the history file is damaged or missing.
- Prevent the same fellow player from appearing more than once, including in existing records.
- Keep fellow players in records when their names are temporarily unavailable, and fill in names when available.
- Restore filter and bulk-delete button appearance after closing a popup.
- Correctly return to the previous history list after exiting a fellow-player query.
[0.3.2] - 2026-09-27
Changed
- Show ascent level in custom climb records.
[0.3.1] - 2026-09-21
Added
- Added confirmed run IDs to multiplayer climb rows and details.
Fixed
- Fixed separate climbs in the same Photon room reusing and overwriting an earlier record.
- Fixed completed climbs being recorded as abandoned with a zero duration after returning to the airport.
[0.3.0] - 2026-09-10
Added
- Added a climb record details overlay with complete, scrollable map routes.
- Added recording of other multiplayer participants' platform identities and display names in climb details.
Changed
- Show complete routes directly for vanilla and Terrain Randomiser records, while PLL records use compact first-and-last biome summaries and the details overlay.
- Moved Terrain Randomiser map loading and exporting actions into the record details overlay.
- Reduced the climb record details overlay size and tightened its layout, placing the numbered map route directly below the summary divider.
- Split climb details into map-route and fellow-player columns, and track player count as the peak number of instantiated players present at once.
Fixed
- Fixed the fourth map-route line being hidden because its text bounds were too short for the game font.
[0.2.5] - 2026-08-31
Fixed
- Fixed PLL Lazy Generation biome variants being captured as defaults or written to the wrong route entry after old map segments were unloaded.
- Fixed missing PLL Library assemblies preventing new climb records from being created.
- Preserved unreadable climb history files before starting a new history instead of immediately replacing them with empty data.
[0.2.4] - 2026-08-30
Added
- Support PLL Library information display with complete biome routes and map seed.
Changed
- Summarize long biome routes in climb record rows.
Fixed
- Support to show Void as the current biome.
[0.2.3] - 2026-08-22
Fixed
- Fixed Climb Records button template preloading so the first opening of the pause menu no longer hitches.
[0.2.2] - 2026-08-21
Fixed
- Fixed Terrain Randomiser compatibility to correctly handle the new sectionSettings structure.
[0.2.1] - 2026-08-16
Fixed
- Eliminated the hitch when opening the pause menu for the first time by preloading the Climb Records button template from the main menu.
[0.2.0] - 2026-08-16
Changed
- Removed the PEAKLib installation requirement; the Climb Records pause-menu UI now uses the game's native UI components.
[0.1.4] - 2026-08-15
Changed
- Moved the pause-menu Climb Records button upward to keep it clear of the bottom menu area.
[0.1.3] - 2026-08-12
Fixed
- Fixed compatibility issues for 2.0.a
[0.1.2] - 2026-08-11
Added
- Added new icon, readme and git repository link.
[0.1.1] - 2026-07-21
Added
- Added generated map biome details to climb records, including biome variants and Mesa tomb state.
- Added simplified Chinese translations for generated map biome variant names.
- Added visible scrollbar support for the climb history row list.
Changed
- Improved climb history row layout, viewport spacing, summary visibility, and button spacing.
- Limited built-in mod localization to English and Simplified Chinese.
- Reused the game's hero day text font for climb history UI text.
[0.1.0] - 2026-07-11
Added
- Initial Release