Campfire Haven
Unlit campfires protect you exactly like lit ones, and any campfire banishes the Scoutmaster the moment it steps into range. Safe to install on every client: a client stands down when the host also runs it.
By khalil2
| Last updated | 2 days ago |
| Total downloads | 103 |
| Total rating | 0 |
| Categories | AI Generated Quality Of Life Host Only Optimization Mods |
| Dependency string | khalil2-Campfire_Haven-1.1.0 |
| Dependants | 0 other packages depend on this package |
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
Campfire Haven
Unlit campfires become real safe havens, and the Scoutmaster learns to keep its distance.
Host-side mod that is safe to install on every client. When the host runs it, every player is protected. When the host does not, a client that has it still protects itself, and nothing is ever applied twice.
What it does
1. Unlit campfires work like lit ones
In vanilla PEAK a campfire only protects you while it burns. Campfire.Update() keeps the whole protection block behind if (Lit), and the warmth emitter sits under a child object that UpdateLit() switches off together with the flames. The moment the fire goes out, both protections vanish.
Campfire Haven restores them while the campfire is unlit:
- Hunger is blocked with the same
NoHungerbuff the lit campfire uses - Cold is drained at the same rate and radius the lit campfire uses, read from the real emitter on the prefab instead of being hardcoded
Lit campfires are left completely untouched. Burning or not, the protection is identical.
2. Campfires banish the Scoutmaster
When the Scoutmaster enters a campfire's protection radius, the host removes it from the world. This applies to lit and unlit campfires alike. If it is holding a player, the grab is released first so nobody is left stuck.
Works in public lobbies
You cannot choose who hosts a random lobby, so the mod does not assume anything about the other players.
Every instance announces itself through a Photon player property. Both the host and the clients should be on 1.1.0 or newer — a 1.0.0 host does not announce itself, so a 1.1.0 client would assume the host lacks the mod and apply warmth on its own. If you are not the host and the host already runs Campfire Haven, your copy quietly stands down and lets the host do the work, which is what keeps the effect from being applied twice. If the host does not have the mod, your copy protects you and you alone.
| Host | You | Result |
|---|---|---|
| enabled | no mod | Host protects everyone |
| enabled | has the mod | Your copy stands down, host protects everyone |
| not enabled | has the mod | Your copy protects only you, and cannot banish the Scoutmaster |
| not enabled | no mod | Nothing happens |
Nothing needs to be configured for this. General.ClientFallback turns the last row of the middle case off if you would rather your copy stay completely inert whenever you are not the host.
Configuration
Config file: BepInEx/config/campfirehaven.host.cfg
Radii are in meters as shown by the in-game distance prompt (the game displays world units multiplied by 1.6).
| Setting | Default | Meaning |
|---|---|---|
General.Enabled |
true | Master switch |
General.DebugLog |
false | Verbose diagnostics |
General.ClientFallback |
true | A client protects itself when the host lacks the mod. Set false to make non-host copies fully inert |
Campfire.ProtectFromHunger |
true | Unlit campfires block hunger |
Campfire.ProtectFromCold |
true | Unlit campfires remove cold |
Campfire.ProtectionRadius |
19.2 | Hunger protection radius. 19.2 m equals the vanilla 12 world units |
Campfire.WarmthRadius |
6.4 | Warmth radius. 6.4 m equals the vanilla 4 world units |
Scoutmaster.Enabled |
true | Remove the Scoutmaster inside campfire range |
Scoutmaster.EvictionRadius |
19.2 | Eviction radius. 19.2 m equals the vanilla 12 world units |
Set any radius to 0 to fall back to that campfire's own value.
With DebugLog on, the plugin prints one summary line every 30 seconds containing the role it settled into and the numbers it actually decided on: hunger, cold, seconds since last frostbite, whether hunger is blocked, and the distance to the nearest unlit campfire. Entering and leaving an aura, starting and stopping warmth, standing down, and every Scoutmaster removal are logged as they happen.
How it works
Hunger and cold are both computed on the client that owns the character, so the protection has to be pushed over the network. The plugin uses the game's own master-authoritative channel, CharacterAfflictions.RPC_ApplyStatusesFromFloatArray, which validates info.Sender.IsMasterClient.
- The host's own character receives the real
NoHungeraffliction, the exact code path a lit campfire uses - Remote players have their hunger pinned to the value they had when they entered the radius, and cold pushed down at the emitter's rate
- The Scoutmaster is a room object owned by the master, so only the host can remove it
The plugin polls every 0.5 seconds, the same cadence the vanilla warmth emitter uses. It installs no Harmony patches, so other mods cannot conflict with it at the IL level. Other mods that patch the campfire methods still run first, and this plugin simply reacts to the resulting state.
Notes
- Remote players do not get the little campfire icon on the stamina bar, because there is no trustworthy way to hand them the affliction. Their hunger still does not grow.
- Burnt-out (
Spent) campfires count as unlit and keep protecting you. - The campfire's gloom safe zone (gloom immunity, ghost orb repulsion, fog visuals) keeps its vanilla behaviour and is not extended to unlit fires.
- Reviving or falling into the void clears all afflictions, so hunger briefly resumes until the next tick reapplies the buff.
- Cold is usually zero on the beach during the day. To test warmth, use the
AddColdconsole command or stand in fog first.
Installation
Install with a mod manager, or drop plugins/CampfireHaven.dll into BepInEx/plugins/. Installing it on every machine is fine.
Requires BepInEx 5.4.23.3 or newer.
AI disclosure
This mod was written with AI assistance: the source code, documentation and icon were produced by an AI coding agent working against the game's decompiled assemblies, then reviewed in several rounds against the actual game code. It has been tested in single-player. Treat it as an AI-assisted mod and report anything that misbehaves.