You are viewing a potentially older version of this package. View all versions.
TactiKot-FogDistance-1.6.0 icon

FogDistance

See your distance to fog, lava, Gloom, and lost souls, with start countdowns, estimated time to contact, and a campfire timer. Customizable HUD in English, Russian, and Ukrainian. Only you need to install it.

Date uploaded 3 weeks ago
Version 1.6.0
Download link TactiKot-FogDistance-1.6.0.zip
Downloads 494
Dependency string TactiKot-FogDistance-1.6.0

This mod requires the following mods to function

BepInEx-BepInExPack_PEAK-5.4.75301 icon
BepInEx-BepInExPack_PEAK

BepInEx pack for PEAK. Preconfigured and ready to use.

Preferred version: 5.4.75301

README

Fog Distance

Fog Distance adds a compact HUD to PEAK with distance to fog, lava, Gloom, or lost souls, start countdowns, estimated time to contact, and a campfire timer.

Only you need to install it. Your host and teammates can play without the mod. Supports English, Russian, and Ukrainian; press F8 to show or hide the HUD.

Example readout:

FOG: 38.4 m
ETA: 01:27
FIRE: 03:12

Features

  • Track the current hazard. The HUD switches between fog, lava, Gloom, and lost souls automatically.
  • See when to move. Start countdowns and contact estimates show how much time you have. Nearby danger adds a warning; once inside it, the HUD shows distance back to safety.
  • Keep an eye on the campfire. See its remaining burn time, paused state, and a brief notice when it goes out.
  • Follow teammates while spectating. Distances and contact estimates use the player you are watching.
  • Make the HUD fit your screen. Choose from nine positions and adjust size, offsets, colors, outline, warning thresholds, and which rows appear. Text has no background panel.
  • Choose metres or feet. Distances use PEAK's scale, with either unit available.

Installation

Install with a Thunderstore-compatible mod manager. It also installs the required BepInEx pack.

For a manual installation:

  1. Install BepInEx 5 for PEAK.
  2. Close PEAK and copy PeakFogDistance.dll to PEAK/BepInEx/plugins/PeakFogDistance/PeakFogDistance.dll.
  3. Launch the game once to create the configuration file.

Settings

Edit BepInEx/config/com.bronekot.peak.fogdistance.cfg to customize the HUD. It starts in the top-left corner and warns at 10 PEAK metres or a contact estimate of 20 seconds. Distance thresholds stay metre-based when displaying feet.

The HUD hides in pause menus and behind input-blocking windows by default; both behaviors are configurable. Language = Auto follows PEAK's language setting: Russian or Ukrainian when the game uses it, English otherwise.

With BepInEx ConfigurationManager installed, you can change every setting in game; changes apply immediately.

Reading the HUD

ETA estimates when the hazard will reach your current position. It updates as you move and does not predict your route. The fire timer is shown independently of hazard information.

HUD text Meaning
WAITING FOR TEAM Fog is waiting for the team to progress.
WAITING TO START Waiting for the hazard to start; no countdown is available yet.
START: mm:ss Time until the hazard starts moving. ! marks the last seconds.
START: mm:ss · PAUSED The game has paused the start countdown.
ETA: mm:ss Estimated time until contact at your current position (ДО КОНТАКТА in Russian, ДО КОНТАКТУ in Ukrainian).
LAVA: 12.0 m · HEAT You are in lava's heat zone and already heating up.
FOG: INSIDE The hazard overlaps you but does not hurt yet, for example while fog fades in. The next row shows the distance to safety.
NO CONTACT The current movement ends before reaching your position.
PROTECTED A lit campfire, candle, lantern, or other PEAK safe light protects you from Gloom.
RECEDING The hazard is moving away.
STOPPED The hazard has stopped moving.
ETA: UNKNOWN or --:-- A reliable timer is unavailable.

A ! marks a warning. Inside a hazard, the distance and timing rows change to:

FOG: DANGER
TO SAFETY: 2.4 m

The fire row shows its remaining burn time, PAUSED, or OUT after burnout.

Fog's START timer is the longest possible wait: fog also starts early once the whole team moves on. PEAK does not synchronize this timer, so after joining mid-run it can run longer than the host's. Gloom's countdown follows the game's pause conditions, including team rest. Lava and lost-soul countdowns continue once triggered. PROTECTED describes your current protection; it does not estimate when a candle or campfire will stop protecting you. NO CONTACT applies to the current movement, so moving elsewhere or starting a new hazard phase can change it.

Configuration reference

BepInEx creates BepInEx/config/com.bronekot.peak.fogdistance.cfg after the first launch. Values are grouped as follows.

1 - General

Setting Default Values / purpose
Enabled true Master switch.
ToggleKey F8 Session-only show/hide shortcut.
UpdateRateHz 10 HUD sampling rate, from 1 to 30 Hz.
Language Auto Auto (follows PEAK's language), English, Russian, or Ukrainian.
DistanceUnit Meters Meters or Feet.

2 - Content

Setting Default Values / purpose
ShowHazard true Show distance to the active hazard.
ShowTimer true Show start, ETA, pause, stop, and unavailable states.
ShowFire true Show the relevant campfire row.
ShowSpectatingIndicator false Prefix the first visible row while spectating; PEAK already shows the observed player by default.
FireOutMessageSeconds 10 Keep FIRE: OUT visible for 0 to 60 seconds.

3 - Visibility

Setting Default Purpose
HideInPauseMenu true Hide while PEAK's pause menu is open.
HideWhenInputIsBlocked true Hide behind PEAK windows and full-screen prompts that block input.

4 - Layout

Setting Default Values / purpose
Anchor TopLeft TopLeft, TopCenter, TopRight, MiddleLeft, Center, MiddleRight, BottomLeft, BottomCenter, or BottomRight.
OffsetX 18 Horizontal offset, -1000 to 1000 canvas pixels: inward from a left/right edge, or right of center.
OffsetY 18 Vertical offset, -1000 to 1000 canvas pixels: inward from a top/bottom edge, or below center.
Scale 1 Overall HUD scale, 0.5 to 2.5.
FontSize 20 Base text size, 12 to 40.
OutlineWidth 0.22 Text outline width, 0 to 1.

5 - Alerts

Setting Default Values / purpose
WarningDistanceMeters 10 Warn at or below this many PEAK metres, 0 to 100. This remains metre-based when the HUD displays feet.
WarningEtaSeconds 20 Warn at or below this ETA, 0 to 120 seconds.
WarningStartSeconds 10 Warn when a start countdown is at or below this many seconds, 0 to 120.
DistanceHysteresisMeters 1 Extra safe distance required to clear a warning, 0 to 20 metres.
EtaHysteresisSeconds 2 Extra time required to clear an ETA or start warning, 0 to 30 seconds.

6 - Colors

Colors accept #RRGGBB or #RRGGBBAA.

Setting Default Purpose
NeutralColor #F2F4F7 Normal text.
SafeColor #F2F4F7 Safe hazard clearance.
WarningColor #FFB833 Warning state.
DangerColor #FF4738 Danger and fire-out state.
MutedColor #B8BDC7 Paused, stopped, and unavailable information.
FireColor #FFC74D Normal campfire row.

Invalid color strings fall back to the built-in color and produce one warning in the BepInEx log.

Updating and removing

To update manually, close PEAK and replace the DLL. Keep only one copy under BepInEx/plugins; your configuration is retained.

To uninstall, close PEAK and delete the DLL or its PeakFogDistance plugin folder. You can also delete BepInEx/config/com.bronekot.peak.fogdistance.cfg to remove saved settings.

Troubleshooting

  • No HUD: check that BepInEx and the mod loaded, set Enabled = true, press F8, and test during island gameplay. Rows appear when there is relevant hazard or fire information.
  • Hidden behind a menu: check the two settings in 3 - Visibility.
  • Missing configuration: launch the game once, then check BepInEx/config.
  • Duplicate HUD: remove extra copies of PeakFogDistance.dll from BepInEx/plugins.
  • Unknown readings: check the BepInEx log for compatibility messages. Some game states do not provide a reliable timer or distance.

What's new in 1.6.0

  • The campfire timer no longer disappears on the final climb.
  • Lava shows HEAT once it starts heating you, before contact.
  • A hazard that overlaps you but does not hurt yet shows INSIDE and the distance to safety.
  • The start countdown gets a warning in its last seconds (WarningStartSeconds).
  • Ukrainian HUD language, using PEAK's own terms (МОРОК, ЗАБЛУКАЛІ ДУШІ, ВОГНИЩЕ).
  • Language = Auto follows PEAK's language; Russian labels are fully translated.
  • Centered anchors accept negative offsets.

CHANGELOG

Changelog

1.6.0

  • Fix the campfire row disappearing on the final climb: a segment without its own campfire no longer prevents the previous, still-burning fire from being shown.
  • Show INSIDE and the distance to safety when a hazard overlaps you but does not hurt yet, such as while spherical fog fades in, instead of 0.0 m and ETA: 00:00.
  • Mark lava's heat zone with HEAT: PEAK applies heat up to the lava's heat height above the surface, before contact.
  • Measure lava clearance from the Lava damage surface PEAK uses, when it moves with the rising body.
  • Do not report Gloom as DANGER when the Sleepy Gloom run setting is disabled.
  • Add a start-countdown warning (WarningStartSeconds, default 10 s).
  • Add Ukrainian (Language = Ukrainian), using PEAK's own Ukrainian terms such as МОРОК and ЗАБЛУКАЛІ ДУШІ.
  • Language = Auto now follows PEAK's language setting, including Ukrainian, and switches when it changes in game.
  • Allow negative OffsetX/OffsetY, so centered anchors can move left or up.
  • Russian: translate ETA as ДО КОНТАКТА and ft as фт; WAITING FOR TEAM is now ОЖИДАНИЕ ГРУППЫ.
  • Find rising-field controllers from PEAK's registry instead of scanning the scene.
  • Run the automated tests before packaging; archive replaced DLLs outside BepInEx/plugins during local installs.

1.5.5

  • Show FIRE: OUT only when a lit campfire actually goes out, not when its segment is disabled or unloaded.
  • Use the character's head and actual status-field bounds for lost souls, including distance to the nearest field edge and the lower boundary.
  • Write standard ZIP entry paths and validate them before packaging.
  • Add regression checks for campfire burnout and unexpected NaN results in the test assertions.

1.5.4

  • Match Gloom's head-position hit test, status-field bounds, and protection from lit campfires/candles; show PROTECTED while sheltered.
  • Pause Gloom's client countdown when PEAK's readiness predicate pauses the host timer, while keeping ordinary lava and lost-soul countdowns running once triggered.
  • Suppress contact ETA beyond the endpoint of rising fields and shrinking spherical fog; show NO CONTACT instead.
  • Extract geometry, endpoint, and countdown calculations for regression tests.
  • Cache text by displayed distances/seconds while preserving immediate alert and configuration changes.
  • Back off missing-renderer and damage-component searches; update TMP effects only on material/outline changes and refresh glyph padding afterward.

1.5.3

  • Fix legacy MovingLava.timeToMove discovery in current PEAK builds, where the field is public.
  • Do not fabricate a rising-field countdown for event-driven controllers, and do not label an active rising countdown as paused just because players are resting.
  • Select the LavaRising controller for the current segment, use PEAK's serialized damage bounds when available, and avoid stale fog-controller fallbacks.
  • Preserve FIRE: OUT across campfire reference changes and measure its visibility window in unscaled seconds.
  • Render non-finite distance values as UNKNOWN instead of leaking NaN or infinity into the HUD.
  • Ignore a cached LavaRising controller when its serialized requiredSegment belongs to another biome variant.
  • Hide the stale distance and start countdown in the location immediately before Gloom, including on non-host clients.
  • Keep finished Gloom and lost-soul fields visible as GLOOM / LOST SOULS with a stopped state when they belong to the current segment.
  • Respect PEAK's FogSphereOrigin.disableFog flag so the final static origin cannot create a frozen fog ETA.

1.5.2

  • Detect the modern rising-field mode so GLOOM is no longer mislabeled as lava.
  • Add lost-soul tracking for PEAK's VoidGhosts field using the same distance and ETA calculation.
  • Add English/Russian hazard labels: GLOOM / МГЛА and LOST SOULS / ПОТЕРЯННЫЕ ДУШИ.
  • Use the moving fog-plane footprint for Gloom and lost-soul fields when the lava renderer is absent.

1.5.1

  • Remove the black HUD panel so the overlay consists only of text.
  • Preserve readability with the existing configurable outline and a subtle TextMeshPro underlay shadow when PEAK's font material supports it.
  • Remove panel padding so configured offsets measure directly to the visible text.
  • Keep pause labels after the timer on every timed row, including the campfire row.

1.5.0

  • Replace the legacy IMGUI overlay with a responsive TextMeshPro panel on PEAK's HUD canvas.
  • Reuse PEAK's font and material, respect the screen safe area, and add nine anchors, scale, font, background, outline, and color settings.
  • Convert Unity world units with CharacterStats.unitsToMeters so displayed PEAK metres are correct; add an optional feet display.
  • Add English/Russian localization with automatic system-language selection.
  • Add a session-only F8 visibility toggle and grouped BepInEx configuration for content, visibility, layout, alerts, colors, and update rate.
  • Clarify timing without expanding the normal countdown: keep START: mm:ss, and add explicit waiting, paused, stopped, and unavailable states.
  • Show distance back to safety while in danger and use PEAK's strict spherical-fog danger boundary.
  • Match lava's X/Z damage footprint, stop legacy lava at PEAK's exact final height, and distinguish receding hazards from approaching ones.
  • Smooth the modern lava start countdown for non-host clients between PEAK's sparse host synchronization packets.
  • Keep hazard, timing, and campfire rows independent so fire status no longer inherits a hazard alert color; prefer the current segment's fire without position-based timer switching.
  • Fix legacy flat-fog waiting and final-stop reporting, including non-owner states where no synchronized numeric countdown is available.
  • Sample hazard values at a configurable rate, poll campfires at 5 Hz, cache TMP updates, back off missing-object searches, and reset cached state across scenes.
  • Add validated Thunderstore packaging, portable PEAK_GAME_DIR builds, and model tests for formatting, conversion, severity, hysteresis, and localization.

1.4.1

  • Hide the distance and start line while a static/tidal lava stage keeps LavaRising dormant.
  • Reveal the lava HUD only after PEAK starts a real countdown or continuous rise.
  • Allow the campfire line to display independently when no hazard HUD is relevant.

1.4.0

  • Add a third-line countdown for the relevant lit campfire.
  • Show FIRE: OUT for 10 seconds after the campfire is spent.
  • Follow PEAK's real campfire timer, including its rest pause.
  • Replace the unused static lava start number with START: WAITING until the game actually begins its countdown.

1.3.2

  • Show the HUD on the first segment before the fog visual is enabled.
  • Display START: WAITING while initial fog waits for the team's progression trigger.
  • Keep danger styling disabled until PEAK activates the fog effect.

1.3.1

  • Show the shortest distance to the current spherical fog boundary.
  • Keep distance and ETA based on the same approaching boundary.

1.3.0

  • Calculate distance and ETA for the currently spectated player.
  • Add a second line with the hazard start countdown or arrival ETA.
  • Read PEAK's synchronized fog and lava timing data when available.
  • Support trigger-based legacy hazards that have no numeric start countdown.

1.2.1

  • Restore support for PEAK's current shrinking-sphere fog implementation.

1.2.0

  • Use PEAK's bundled Binggrae Bold interface font.

1.1.0

  • Add rising-lava distance support for The Kiln and Peak.
  • Move the HUD to the upper-left corner.

1.0.0

  • Initial release with rising-fog distance display.