CampfireTimer
Climbing timer and leaderboard: records every player's time at each campfire checkpoint and ranks them.
About this mod Author’s original text
CampfireTimer
A climbing timer and leaderboard mod for PEAK,
built on top of PEAKLib.
Records every player's climb time using segment timing between
consecutive campfires: the first campfire (flame/beach) starts the clock,
each following campfire records the segment time and stops the clock, and
lighting a campfire restarts it for the next segment.
Features
- Segment timing – each segment (between two campfires) is timed independently.
- Multiplayer – results are shared over Photon, so everyone sees everyone's times.
- Leaderboard – opened with a hotkey (P by default), with one foldable
section per checkpoint.
- Configurable – trigger radii and the info toggle are editable from sliders in
the UI and sync to the config file instantly.
- Show info – an optional toggle that shows an on-screen notification while timing.
- Language – the UI follows the game language (Simplified Chinese or English);
- In-memory only – times are session-only; no files are written.
Configuration
The mod writes a BepInEx config file. Available options:
- OpenKey – hotkey that opens the leaderboard UI (default P).
- CampfireRadius – trigger radius around each campfire (default 3.5, 1–20).
- StatueRadius – trigger radius around the summit amulet statue (default 4, 1–20).
- ShowInfo – whether on-screen timing information is shown (default false).
The radii and the info toggle can also be changed from sliders/buttons inside the
leaderboard page; changes are saved to the config and take effect immediately.
How timing works
- Reaching the first campfire (flame/beach) starts the clock.
- Reaching the next campfire records the segment time and stops the clock.
- Lighting that campfire restarts the clock for the next segment.
- Getting close to the amulet scout statue ends the last segment.
- Each player triggers each checkpoint once per session (no double counting).
- Returning to the airport clears every record from the previous run.
Detection
Player arrivals are detected with each campfire's own
Campfire.PlayerCharactersInRadius query. This runs on every modded client
and detects every player in range — including players whose game does not have
the mod installed.
The final segment ends when a player gets close to the summit's amulet scout
statue (Peak.ScoutStatue, falling back to MapHandler.respawnThePeak or the
highest revive statue).
Multiplayer sync
Every modded client marks itself over Photon with a custom player property.
- Host has the mod — the host times everyone using Photon network time and
broadcasts the results; clients do not time locally, they only record the
host's broadcasts.
- Host does not have the mod — each client records locally on its own (it
still times every player via radius detection) and sends no network traffic.
Installation
- Install BepInEx for PEAK.
- Install PEAKLib_Core and PEAKLib_UI (installed automatically as dependencies).
- Install this mod.
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.
Install these first, or the mod will not work: