PEAK

Details

Last Updated
3 weeks ago
First Uploaded
3 weeks ago
Downloads
3.6K
Likes
0
Size
97KB
Dependency string
Bananegame-HazardChaos-0.1.14
Dependants

0.1.14

New – Challenge: Tornado

  • Configurable challenge Tornado with banner + optional pre-spawn delay.
  • Movement uses the mod’s mover (same feel as normal mod Tornado), with:
    • Scale (visual), SpeedMult, RetargetSeconds (1.5–3.0)
    • PullRadius (up to 100), PullForce (up to 100)
    • LiberateKinematic, LiberateMaxMass (up to 150)
  • Safer placement: ring around the selected player, ground-snap, and a small push-out so it doesn’t appear too close.
  • BothRandom: if a Challenge Tornado is already active when the timer fires, a Challenge Tumbleweed spawns instead.

New – Host proximity gate (optional)

  • Challenge.RequireHostNear (default true) + Challenge.HostNearMeters (default 150).
  • If a computed spawn near a chosen player would be farther than the radius from the host, the spawn is re-anchored and recalculated near the host to avoid map-spawn fallbacks.

Performance

  • UI throttle now pauses only Normal spawns when an interactive game UI is open. Challenge spawns are not blocked, so events won’t stall on menus.
  • UI detection refined to avoid false positives from HUD/overlays.

Fixes

  • Vanilla Tornado NRE when airborne (Tornado.PickTarget) fixed by always providing a valid targetParent (fallback parent and reparenting) and keeping transform sync.
  • Challenge Tornado sometimes spawning too close to the player: additional push-out applied after clamping to the ring.
  • Normal timers are correctly paused on ChallengeOnly at level start and resumed when switching back to Normal/Both.

UI

  • Settings sliders updated to match intended ranges:
    • Challenge Interval: 30–300 s
    • Challenge Tornado Scale: 2–5
    • PullRadius: up to 100
    • RetargetSeconds: 1.5–3.0
    • PullForce: up to 100
    • LiberateMaxMass: up to 150

0.1.13

Game Mode selector (Off / NormalOnly / ChallengeOnly / Both). Set it in the in-game settings; the active mode is also shown on the overlay.

Challenge: Aggressive Tumbleweed A special Tumbleweed that actively chases players. Tunables under Challenge.Tumbleweed:

Scale (visual size)

SpeedMult (chase speed)

RetargetSeconds (how often it picks a new target)

Next Challenge countdown Overlay and Settings window display time remaining until the next Challenge spawn.

Global Settings window (F11) available in all scenes. Includes a dimmable background (Overlay -> Settings Alpha).

Improvements

Timer reset on mode change Switching Game Mode now resets all internal spawn timers (Normal & Challenge) to prevent immediate spawns after a switch.

UI organization New sections for Mode, Challenge (global), and Challenge – Tumbleweed for clearer configuration.

Fixes

ChallengeOnly no longer “leaks” Normal timers in the background; spawns are aligned with the selected mode.

Default values (changed)

TTL.TumbleweedDespawn 20s

Notes

Challenge Tumbleweed’s damage is not scaled by size in this version; difficulty comes from pursuit behavior and speed.

0.1.12

In-game settings window

Press F11 to open the HazardChaos Settings anywhere (title/airport/levels). Independent from the overlay (F9).

Edit config live (sliders/toggles/dropdowns). Click Save to write to the .cfg.

Grouped sections for quick navigation: Intervals, TTL, Spawning & Caps, Tornado, Overlay, Version, Multiplayer, Debug.

UI/UX

Screen dimmer behind the settings window for readability on bright scenes. Configurable via Overlay.SettingsDimAlpha (0–1, default 0.55).

Behavior changes

None to gameplay/spawn logic in this release. Pure QoL for configuration.

Internal / maintenance

Codebase split into multiple files (partials) for readability: Anchors.cs, Spawning.cs, UI.cs, ModTornadoMover.cs (single [BepInPlugin] attribute kept in core)

0.1.11

Optional multi-spawn for Tornados

Tornado.MoreTornados (default: false): when ON, Tornados can spawn in bursts (spread respected, caps still apply).

Tornado.BurstTornado (default: 1, range 1–5): how many Tornados per tick when multi-spawn is enabled.

Config structure — clearer sections & renamed keys

Sections now grouped as: Intervals, Spawning, TTL, Tornado, Overlay, Version, Multiplayer, Debug.

Renamed keys:

TTL.DynamiteDespawn (was TTL.DynamiteTTL)

TTL.TornadoDespawn (was TTL.TornadoTTL)

TTL.TumbleweedDespawn (was TTL.TumbleweedTTL)

Tornado.UseVanillaWhenAvailable (was Tornado.UseVanillaAIWhenAvailable)

UI moved/split:

Overlay.SpawnTimerUI & Overlay.HotkeyOverlay (were UI.SpawnTimerUI & UI.ToggleKey)

Version.WatermarkEnabled, Version.HotkeyVersion, Version.Corner, Version.FontSize, Version.Alpha, Version.Margin (were under UI.Version.*)

Note: Legacy entries remain in the .cfg but are ignored; no migration required.

Default values updated

Intervals: Intervals.IntervalDynamiteSec 15s, Intervals.IntervalTornadoSec 90s, Intervals.IntervalTumbleweedSec 12s.

Bursts & spread: Spawning.BurstDynamite 2, Spawning.BurstTumbleweed 3, Spawning.BurstSpreadSeconds 3.0s.

TTLs: TTL.DynamiteDespawn 10s (was 20), TTL.TornadoDespawn 20s (was 15), TTL.TumbleweedDespawn 10s.

UI defaults: Overlay.SpawnTimerUI false (off by default), Version.WatermarkEnabled false; watermark corner now TopRight, font size 13.

Multiplayer default: Multiplayer.AnchorMode now RandomPlayer (was NearestToHostCamera).

Housekeeping

Old “Weights” entries are no longer used (commented out in code).

Notes

Multi-spawn still respects Spawning.MaxTornado and Spawning.MaxSimultaneousGlobal.

To actually see multiple Tornados, increase those caps accordingly

0.1.10

Reliable Tornado movement in all areas

Drive-the-parent fix: the mod now moves the Tornado’s targetParent (Mod_TornadoTargetParent) and reparents the Tornado under it. This avoids vanilla scripts snapping the Tornado back when no TornadoSpawner is present. Fixes the “spawns and stands still” issue outside MESA.

Last-word movement: fallback mover runs in LateUpdate() with DefaultExecutionOrder(10000), ensuring its final transform wins even if other scripts adjust earlier in the frame.

Soft-disable vanilla movers on fallback: TryDisableVanillaMovement() best-effort disables NavMeshAgent / CharacterController, sets Rigidbody kinematic/no-gravity, and turns off common Tornado mover scripts to prevent position resets.

Grounding & glide: continuous ground projection plus a tiny side-step when blocked (spherecast) for smoother drift instead of jitter or sticking.

Networking robustness: ownership hand-off to host when needed and auto-add of PhotonTransformViewClassic if missing to keep movement synced.

Config / Compatibility

No new config keys. Existing options continue to work (Tornado.UseVanillaAIWhenAvailable, Tornado.ForceModMover, Tornado.MoveSpeed, Tornado.RetargetSeconds).

Logging

Clearer logs when the fallback mover is used and which transform is being driven

0.1.9

Tornado AI hand-off: If the vanilla TornadoSpawner + RPCA_InitTornado path is available, the mod now prefers the game’s built-in AI. Only falls back to the mod’s mover when needed.

Burst spawns (configurable): You can now spawn multiple objects per tick for specific types.

New config keys:

Spawning.BurstCountDynamite (default: 1)

Spawning.BurstCountTumbleweed (default: 1)

Version watermark improvements: Small version label can be shown on the title/start screens and in-game. Position, size, margin, and background alpha are configurable. Toggle with F10.

UI.Version.WatermarkEnabled (bool), Corner (TopLeft|TopRight|BottomLeft|BottomRight), FontSize (int), Margin (int), Alpha (0–1).

0.1.8

Level start grace period: Optional protection window before hazards begin (default: 60s).

Spawning.GracePeriodSeconds (float). Timers start counting after the grace period ends.

UI polish: Watermark added (see 0.1.9 for the full set of options).

Quality: Minor stability/perf tweaks around scene transitions.

0.1.7

Independent per-type scheduling: Each hazard has its own spawn interval and cap:

Intervals (defaults):

Dynamite: 12.5s (Intervals.IntervalDynamiteSec)

Tornado: 40s (Intervals.IntervalTornadoSec)

Tumbleweed: 15s (Intervals.IntervalTumbleweedSec)

TTLs (defaults):

Dynamite: 20s, Tornado: 15s, Tumbleweed: **10s(underTTL.*`)

Caps: global + per-type (Spawning.MaxSimultaneousGlobal, MaxDynamite, MaxTornado, MaxTumbleweed)

Multiplayer aware:

Anchor selection modes: HostOnly, RandomPlayer, RoundRobin, NearestToHostCamera (Multiplayer.AnchorMode).

Dynamic scaling: Multiplayer.PerPlayerExtraSlots adds extra concurrent slots per additional player.

Positioning rules: Forward-cone sampling, ground raycast, collision checks; optional Line of Sight (Spawning.RequireLineOfSight).

Tornado movement: Speed and retarget cadence configurable (Tornado.MoveSpeed, Tornado.RetargetSeconds), with a robust fallback if vanilla spawner isn’t present.

UI: Compact overlay with three independent timers (one per hazard), live counters, status. Toggle with F9.

Hotkeys (host only): F6 Tornado, F7 Dynamite, F8 Tumbleweed.

0.1.3

Scene gating: Spawning only in Level_* scenes. (Airport/Title/Pretitle are excluded.)

Overlay UI: Spawn timer, status, and live count.

Stronger player tracking: Camera/Character only from the active scene.

Smarter spawn placement: Forward cone, ground raycast, LoS, collision checks.

Tornado movement: Speed/retarget configurable; fallback path without TornadoSpawner.

0.1.2

Fixes & logging: Better diagnostics and safer instantiation paths.

0.1.1

Initial release

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.