

LootMultiplier: 2 → 3 (triple loot)EnableRandomDynamite description that still said "lit on spawn by default" — it's actually false (unlit) since 0.12.0.Big quality-of-life release. Major redesigns to MarkerSpawn, Dynamite, BananaPeel; new Tumbleweed, ChestTraps, and SafeZones sections; lots of bug fixes.
0_Items/PickAxeHammered_Shitty) verified against Wesmania/RandomEvents PingGrabber.PointPing.hitNormal directly for accurate surface attachment on walls / overhangs / slopes. Old approach raycast in 5 world directions and often picked up the floor beneath a wall.PointPing.Start (no more 200 ms polling that missed rapid pings).InstantiationData so PickaxePermanencePatch only affects ours.MarkerSpawnLifetime config.Quaternion.LookRotation(-normal, Vector3.up) (matching the game's own HammerClimbingSpike) so the spike pokes properly into the wall.LightDynamiteOnSpawn = false — drops an unlit stick the player can pick up and use, instead of bombing them.DynamiteForwardDistance (default 1 m in front of head), DynamiteDropHeight (default 0 m above head), DynamiteSidewaysJitter (default ±0.5 m).DynamiteOffsetMin/Max repurposed as horizontal scatter — defaults changed from 20/100 → 0/5.Item.SetState(ItemState.Ground) called on spawn so the rigidbody actually falls under gravity (PEAK items default to kinematic until the game's own drop logic activates them).TumbleWeed prefab.CampfireSafeRadius (default 30 m) — bubble around every campfire (biome rest + player-lit) where Tornado / Eruption / BananaPeel / Tumbleweed / Dynamite events skip the player.EnableCampfireInvincibility (default on) — patches CharacterAfflictions.AddStatus so any positive status (injury, cold, hot, hunger, poison, …) is blocked while a player stands inside the safe radius. Healing still works.ScoutmasterChaseTime seconds. Uses the networked RPCA_SetCurrentTarget RPC so the AI on every client receives the assignment.Segment.TheKiln enum (was a magic int >= 4 that sometimes leaked tornadoes to the summit).Plugin.IsInGameRun() — nothing fires in the airport / lobby.LootTablePatch (which patched LootData.GetRandomItem(s), hit by every spawner not just chests). Randomization is now handled in SpawnerPatch along with the multiplier; that patch filters by ChestSpawnerTypeNames (Luggage, RespawnChest) so non-chest spawners pass through to vanilla logic.Item.holderCharacter AND walks the GameObject's parent chain to detect "in a Character's hand/inventory" — both signals are checked; either one passing skips destroy. As of 0.12.0 the dominant safeguard is the "evict farthest from pinger" rule (anything held is 0–1 m away vs walls being further).PhotonNetwork.InstantiateItemRoom default to kinematic; we now call Item.SetState(ItemState.Ground) to enable gravity.PhotonNetwork.Destroy via the shared Plugin.DelayedNetworkDestroy helper instead of Object.Destroy, so despawns replicate to every client (no more ghost objects on clients).Quaternion.FromToRotation(Vector3.up, normal) to Quaternion.LookRotation(-normal, Vector3.up) to match the game's own placement.DynamiteForwardDistance, DynamiteDropHeight, DynamiteSidewaysJitter, TumbleweedIntervalMin/Max/sPerPlayerMin/Max/Lifetime/DropHeight, BananaPeelDropHeight, CampfireSafeRadius, EnableCampfireInvincibility, EnableScoutmasterTrap, ScoutmasterTrapChance, ScoutmasterChaseTime, EnableZombieTrap, ZombieTrapChance, ZombieCountMin/Max, ZombieLifetime.MarkerSpawnItemName, MarkerSpawnLifetime, MarkerSpawnMaxActive, DynamiteOffsetMin/Max (the old "distance from player" pair).LootMultiplier now rounded to nearest integer at read time (no fractional item counts).HappyPeak.cfg when updating, since BepInEx doesn't backfill new entries into an existing cfg.