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.
By TactiKot
| 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
BepInEx pack for PEAK. Preconfigured and ready to use.
Preferred version: 5.4.75301README
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:
- Install BepInEx 5 for PEAK.
- Close PEAK and copy
PeakFogDistance.dlltoPEAK/BepInEx/plugins/PeakFogDistance/PeakFogDistance.dll. - 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, pressF8, 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.dllfromBepInEx/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
HEATonce it starts heating you, before contact. - A hazard that overlaps you but does not hurt yet shows
INSIDEand the distance to safety. - The start countdown gets a warning in its last seconds (
WarningStartSeconds). - Ukrainian HUD language, using PEAK's own terms (
МОРОК,ЗАБЛУКАЛІ ДУШІ,ВОГНИЩЕ). Language = Autofollows 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
INSIDEand the distance to safety when a hazard overlaps you but does not hurt yet, such as while spherical fog fades in, instead of0.0 mandETA: 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
DANGERwhen 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 = Autonow 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
ETAasДО КОНТАКТАandftasфт;WAITING FOR TEAMis 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/pluginsduring local installs.
1.5.5
- Show
FIRE: OUTonly 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
PROTECTEDwhile 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 CONTACTinstead. - 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.timeToMovediscovery 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
LavaRisingcontroller for the current segment, use PEAK's serialized damage bounds when available, and avoid stale fog-controller fallbacks. - Preserve
FIRE: OUTacross campfire reference changes and measure its visibility window in unscaled seconds. - Render non-finite distance values as
UNKNOWNinstead of leakingNaNor infinity into the HUD. - Ignore a cached
LavaRisingcontroller when its serializedrequiredSegmentbelongs 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 SOULSwith a stopped state when they belong to the current segment. - Respect PEAK's
FogSphereOrigin.disableFogflag 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
VoidGhostsfield using the same distance and ETA calculation. - Add English/Russian hazard labels:
GLOOM/МГЛАandLOST 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.unitsToMetersso displayed PEAK metres are correct; add an optional feet display. - Add English/Russian localization with automatic system-language selection.
- Add a session-only
F8visibility 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_DIRbuilds, 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
LavaRisingdormant. - 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: OUTfor 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: WAITINGuntil the game actually begins its countdown.
1.3.2
- Show the HUD on the first segment before the fog visual is enabled.
- Display
START: WAITINGwhile 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.