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.2 |
| Download link | WUYACHIYU-Lantern_ShootZombies_Night-0.1.2.zip |
| Downloads | 102 |
| Dependency string | WUYACHIYU-Lantern_ShootZombies_Night-0.1.2 |
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
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
- 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
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
Multiplayer settings not syncing?
Make sure the host and all clients are running the same mod version.
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