Lantern ShootZombies Night
Lantern as survival core: configurable fuel, warmth restore from actions, cold resistance, dynamic drain, HUD panel, auto-upgrade system, and multiplayer sync. Bilingual (CN/EN).
By WUYACHIYU
| Date uploaded | 3 months ago |
| Version | 0.1.4 |
| Download link | WUYACHIYU-Lantern_ShootZombies_Night-0.1.4.zip |
| Downloads | 126 |
| Dependency string | WUYACHIYU-Lantern_ShootZombies_Night-0.1.4 |
This mod requires the following mods to function
BepInEx-BepInExPack_PEAK
BepInEx pack for PEAK. Preconfigured and ready to use.
Preferred version: 5.4.75301Thanks-ShootZombies
Turns the PEAK blowgun into a configurable zombie-survival weapon system with selectable gun models, lobby weapon grants, an in-game config panel, and host-synced multiplayer settings.
Preferred version: 1.3.3README
LanternShootZombiesNight
A PEAK mod that turns the lantern into a core survival tool. Configurable fuel, warmth restore from various actions, cold resistance while holding a lit lantern, dynamic drain speed, and a HUD to keep track of everything.
Requires BlackPeakRemix and ShootZombies.
Features
Lantern Fuel
- Choose fuel capacity: 30 / 60 / 90 / 120 / 240 seconds, or infinite
- Lighting a campfire refills the lantern; standing near one pauses fuel drain
- Reserve warmth pool: overflow from restores is banked and used before main fuel runs out
- Auto re-light: a snuffed lantern re-lights automatically when fuel is added
Warmth Restore
The following actions restore lantern fuel:
- Kill zombies (area-based), open chests, use items, eat food, cook, blow the bugle (AoE), rescue teammates, huddle with teammates
- Unified value mode: chest / item / eat / cook can share a single restore amount
- Variety limiter: the same source type is blocked within the last N restores (bugle and rope items are exempt)
- Cooked food bonus multiplier for properly cooked meals
Cold Resistance
- Adjustable multiplier (0–1): 1 = full cold block, 0.5 = half cold, 0 = no protection
- Night-only — daytime behavior is untouched
- Requires
EnableWarmthReduction = truein config
Night Cold Warning
A one-time screen warning at nightfall (auto-hides after 15s) when cold resistance cannot work:
- ShootZombies "Night Cold" is turned off
- Current ascent is below 5 (no night cold in the base game)
Dynamic Fuel Drain
- BPR flashlight mode: faster drain (configurable multiplier)
- Teammates nearby: slower drain (scales with up to 3 players)
- Going solo: faster drain after a grace period
Upgrade System
Automatic passive upgrades earned through warmth-restore events:
- Each restore event grants +1 upgrade point
- Capacity and Efficiency trees alternate (capacity first when tied)
- Cost per level: 50 → 100 → 150 → 200 → 250
- Capacity: +20% fuel cap per level (up to ×2.0 at Lv5)
- Efficiency: −8% fuel drain per level (up to ×0.6 at Lv5)
- Progress displayed on HUD line 4
- In multiplayer, the host handles all upgrades to prevent cheating
HUD Panel
- Fuel bar (green → yellow → red), drain multiplier, last restore source, day/night info
- Upgrade progress (level, next cost, points)
- 8 screen positions × 4 size presets
- Optional day count, time, and BPR darkness display
Hotkey
- Press F8 (rebindable) to spawn a missing bugle and/or backpack
Multiplayer Sync
- The host controls gameplay settings; clients sync automatically within 1 second
- Upgrade requests go through the host for validation
- HUD position, size, and display preferences stay local to each player
Mute Option
- Toggle to silence all zombie and tornado sounds
Performance Fixes
This mod also patches ShootZombies and BlackPeakRemix for better performance:
- Inventory icons only refresh when the item actually changes (not every frame)
- Zombie UI refresh rate is throttled to prevent lag with many zombies
- Eliminates redundant per-frame reflection calls and component lookups
- Campfire proximity checks use an event-driven list instead of scanning every 2 seconds
- Fuel sync messages are batched to avoid flooding the network
Config Sections
All settings are managed through ModConfig. Descriptions auto-detect Chinese / English.
| Section | Contents |
|---|---|
LanternCold |
Fuel capacity, cold-resistance toggle & multiplier, campfire refuel, reserve warmth max |
Restore |
Master switch, unified value, per-source warmth, huddle settings, radius, cooldown, variety count |
DrainMultiplier |
Flashlight / companion / solo drain multipliers and grace period |
Display |
HUD preset/position/size, day/night display, mute toggle, 3D indicator, upgrade toggle, hotkey |
Installation
- Install
BepInExPack PEAK - Install
BlackPeakRemix - Install
ShootZombies - Install
ModConfig - Place
Lantern_ShootZombies_Night.dllintoPEAK/BepInEx/plugins/
FAQ
Cold resistance not working?
Check the following:
- Game version is 1.61.b or later (older versions have a bug that prevents night cold entirely)
- ShootZombies config has Night Cold enabled
- Current ascent is 5 or above (no night cold below ascent 5)
EnableWarmthReductionis set totrue
Why isn't the Faerie Lantern draining my Cold while I hold a regular lantern?
When EnableWarmthReduction is ON at night and you are holding a lit regular lantern, the mod zeroes out all scene warmth zones (including the Faerie Lantern's cold-cleansing aura) so that LanternWarmthMultiplier remains the only knob controlling cold resistance. Options:
- Turn
EnableWarmthReductionOFF to get the vanilla behavior back, or - Snuff / stow the regular lantern so the mod's suppression no longer applies.
Does Milk (HealingDart) clear Cold?
No. Vanilla PEAK's milk item only grants invincibility — it does not subtract Cold. The mod does not change this.
Does huddling with teammates clear Cold?
The mod's Huddle feature does not subtract Cold directly. Instead, it adds fuel to your lit lantern while teammates stand within RestoreRadius. If you are not holding a lit lantern, the huddle tick is skipped. This path is unaffected by EnableWarmthReduction.
Contact
- Author: 乌鸦吃鱼
- QQ Group: 1093172647
CHANGELOG
Changelog
[0.2.0] - 2026-04-26
Final tuning before release
Default config is now "Casual" — friendly out of the box
First-time install no longer drops you into the old hardcore tuning. The default .cfg is now identical to the Casual preset:
- Lit lantern blocks 75% cold (
EnableWarmthReduction=true,LanternWarmthMultiplier=0.75) - AutoRefill runs 1.0 fuel-second per real second, anytime (no daytime/hold gating)
- Upgrade system on by default, cheaper curve
30,60,90,120,150and faster passive accrual (PassiveTickInterval=30s) - 3D fuel indicator on, HUD defaults to Bottom + ExtraLarge
- Flashlight drain dialed back to
1.2x, proximity grace shortened to15s
If you want the old tuning back, switch ActivePreset to Balanced (mid-range) or Hardcore.
The three-way alignment (cfg defaults / Config.Bind defaults / PresetManager.Casual) means manual edits and preset switches stay consistent — no more silent drift between "what gets written on first launch" and "what Casual gives you".
ShootZombies 1.3.3 compatibility — leaner patch surface
Upstream Thanks-ShootZombies shipped 1.3.3 with its own fixes for the cook-color tinting issue. Our defensive overlays were no longer needed and have been removed:
InventoryItemUiCookColorRestorePatch— deletedBackpackWheelCookColorRestorePatch— deletedShootZombiesPerformanceFixslimmed down from 369 lines → 163 lines, keeping only theZombieDeathPatchreflection-elimination Postfix (the part that still gives a measurable perf win)
No functional regression: cook-color now displays correctly in inventory and backpack wheel via SZ's own gating.
Late additions (post-rework polish)
Warmth now survives when the lantern is off (revised)
- Zombie-kill and campfire refuel now work regardless of whether your lantern is currently lit — the warmth flows straight into the lantern body (held, tempSlot, or backpack), RPC-synced to other clients
- Overflow behavior: if the lantern is already full, zombie-hit overflow spills into the reserve pool (campfire is a "refill to max" action, so no overflow by design)
- Why this matters: the reserve pool caps at a fraction of lantern max (
Half/Quarter), so dumping everything straight into it used to waste warmth. Filling the lantern first preserves the full value - Only truly lantern-less players fall back to reserve-pool banking (hit only) so nothing is silently dropped
Host: bugle recall hotkey (BugleRecallKey, default F7)
- Host-only shortcut that destroys every bugle in the scene
- Handles PUN ownership correctly: two-phase coroutine — phase 1 destroys bugles you own + requests ownership on the rest, waits ~0.8s for the RPC to propagate, phase 2 destroys the newly-owned ones
- Pairs with F8 (host bugle spawn): recall all → spawn a fresh one
Bugfix: StrayBugleCleaner couldn't actually destroy stray bugles
- PUN requires
Destroyto come from the current owner; stray bugles are usually owned by the last player who picked them up, not the host - Previous version just logged a warning and gave up
- Now uses two-scan flow: first scan requests ownership (skips destroy), next 5s-scan owns it and destroys cleanly
Bugfix: BugleRecaller had the same async-ownership issue
- Rewrote as a coroutine that waits for the TransferOwnership RPC to land before destroying (see above)
Bugfix: bugle ultimate could force-light lanterns inside backpacks
- Backpack lanterns are supposed to stay snuffed by game design
BugleUltimatePatchnow refills fuel as before but skips theLightLanternRPCcall for backpack slots — logsSkipped re-lit (in backpack)for verification
Cleanup
- Removed the dead
UpgradeMenuKey(F9) config — redundant since upgrades became automatic EnableUpgradeSystemmoved fromDisplaysection toUpgradesection (it never belonged in Display)- Added CN/EN localization for the
Upgradesection (9 entries) andBugleRecallKey
0.2.0 original rework below
Major rework of the warmth-restore system. Old restore sources that felt out of place (rope / rescue / eat / cook / luggage / huddle) are gone. The new loop is: kill zombies for quick top-ups, snuffed lanterns auto-refuel slowly, and the bugle becomes a long-cooldown ultimate.
⚠️ Breaking change: many config keys were renamed or removed. Old
.cfgfiles are not migrated — deleteBepInEx/config/com.wuyachiyu.LanternShootZombiesNight.cfgbefore the first launch.
Removed restore sources
InteractionRestorePatchnow only handles the bugle — the 5 sub-patches (Luggage / Action_ReduceUses / Item.Consume / CharacterItems.DropItemRpc / Rope.Detach_Rpc) are deletedCookingRestorePatch/RescueRestorePatch/HuddleWarmthdeleted outright- Their config keys (
EatRestoreWarmth,InteractRestoreWarmth,DropRestoreWarmth,RopeRestoreWarmth,HuddleRestoreWarmth,DiversityCooldown, etc.) are gone
New: AutoRefill (snuffed-lantern slow regeneration)
- When fuel hits 0 and the lantern goes out, it slowly refills back up to a configurable cap
- Configurable in the new
AutoRefillsection:AutoRefillEnabled(default true)AutoRefillCapPercent(default 0.5 — stops at 50% of max fuel)AutoRefillRate(default 0.5 fuel-seconds per real second)AutoRefillDaytimeOnly(default true — only recharges in daytime)AutoRefillRequireHold(default true — lantern must be held by a player)
- HUD shows "Refill…" while actively ticking
- The lantern stays snuffed — you have to relight it yourself once fuel is back
New: Bugle Ultimate (BugleUltimate section)
- Blowing the bugle is now a group-wide AoE ability with a long shared cooldown
- All non-faerie lanterns on everyone within radius are refilled to max; overflow goes into the reserve pool
- Config:
BugleUltimateEnabled(default true)BugleUltimateCooldown(default 180s — global, not per-bugle)BugleUltimateRadius(default 20m)BugleUltimateRestore(default -1 = refill to max; >0 = fixed seconds)
- Old per-item
Bugle_Enabled/Radius/Cooldown/Restoreconfig is gone
F8 hotkey: host-only bugle spawn
- F8 spawns missing items with stricter gating:
- Lantern: you get one only if you have no non-faerie lantern in hands, backpack, or temp slot; spawned empty (fuel=0) so you can't cheese it by burning one and respawning a full one
- Bugle: only the host can spawn, and only when no bugle exists anywhere in the session (checked against every player's inventory + scene objects)
- Backpack: unchanged
- Faerie Lantern is still exempt — mysterious items never block a regular lantern spawn
New: auto-purge extra lanterns (PurgeExtraLanterns)
- Scans the local player every 2s with a 0.5s grace buffer
- If you're carrying 2+ non-faerie lanterns, the lowest-fuel one (tempSlot first) gets destroyed
- Faerie Lantern is exempt
New: stray-bugle cleanup (host-only, StrayBugle*)
- The host periodically sweeps for bugles no one is holding, far from every player (> 100m), and has been so for a while (> 60s)
- These are destroyed via
PhotonNetwork.Destroyto prevent solo players from "locking" the F8 bugle spawn by tossing one into the void
Upgrade system: passive accrual + CSV-configurable levels
- Points are now gained passively (1 per 60s by default), plus event bonuses:
- Zombie hit: +1
- Campfire light: +5
- Bugle ultimate trigger: +3
- All level numbers moved to the new
Upgradesection as CSVs:LevelCostsCsv(default "50,100,150,200,250" — Casual default ships as "30,60,90,120,150")CapacityBonusCsv(default "0.2,0.4,0.6,0.8,1.0" — Casual default "0.15,0.3,0.45,0.6,0.75")EfficiencyBonusCsv(default "0.1,0.2,0.3,0.4,0.5")PassiveTickInterval/PassivePointsPerTick/HitPoints/CampfirePoints/BuglePoints
HUD simplified
- Restore source icons reduced to: Kill / Bugle / Fire
- AutoRefill shown as a small "Refill…" status text, not an event icon
- Reserve warmth still shown separately
Multiplayer sync
RoomConfigSyncpublishes the new AutoRefill / BugleUltimate / Upgrade / PurgeExtraLanterns / StrayBugle* keys- Presets (Casual / Balanced / Hardcore) re-tuned around the new loop