wwshare-CampfireTimer icon

CampfireTimer

Climbing timer and leaderboard: records every player's time at each campfire checkpoint and ranks them.

Last updated 2 weeks ago
Total downloads 268
Total rating 0 
Categories
Dependency string wwshare-CampfireTimer-0.1.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack_PEAK-5.4.2403 icon
BepInEx-BepInExPack_PEAK

BepInEx pack for PEAK. Preconfigured and ready to use.

Preferred version: 5.4.2403
PEAKModding-PEAKLib_Core-1.6.0 icon
PEAKModding-PEAKLib_Core

Core module of the PEAKLib community API.

Preferred version: 1.6.0
PEAKModding-PEAKLib_UI-1.6.0 icon
PEAKModding-PEAKLib_UI

UI module of the PEAKLib community API.

Preferred version: 1.6.0

README

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

  1. Install BepInEx for PEAK.
  2. Install PEAKLib_Core and PEAKLib_UI (installed automatically as Thunderstore dependencies).
  3. Install this mod.