Skip to content

Siesta changelog

All notable changes to Siesta are documented here. This project adheres to Semantic Versioning.

  • NPCs added by other mods show up again. Siesta was hiding them in the fraction of a second before the game had finished spawning them, which made the spawn fail and lost the NPC for that session. Measured on a 177-NPC pack: every one of them was refused before, none are now. If you have been missing modded NPCs, this is the one to update for.
  • NPCs from Fannso’s MoreNPCs work again. Siesta was switching off that mod’s whole per-frame loop, which left Dominic, Silas and Thomas locked, their dialogue stale and their building setup unfinished. Only the one watcher that cannot run on a mismatched build is skipped now, and only after it has actually failed once.
  • The MoreNpcsAutoCompat setting is gone. The MoreNPCs handling no longer has a wrong case to opt out of. Delete the line from UserData/MelonPreferences.cfg if you want a tidy file; leaving it does nothing.
  • Works on Schedule I 0.4.6f11. Update S1API to 3.1.1 with it.
  • NPCs the game flagged as important are no longer exempt from culling. 0.4.6f11 deleted that flag and put nothing in its place. Police, dealers and employees on a job, customers waiting on a delivery, and anyone fleeing, fighting or talking are still exempt.
  • NPCs walking into a building are no longer deep-culled mid-approach. Pausing them there stranded groups at the door (visible as door clusters with big NPC packs) and re-ran the fragile building enter path on every wake. NPCs whose active schedule step is a stay-in-building event now keep simulating until they are inside; once inside, the existing in-building rule takes over.

A correctness pass so NPCs feel like vanilla under heavy population (MoreNPCs), plus a real per-NPC saving.

  • NPCs no longer freeze mid-action when they go far off-screen. Police (pursuit/patrol/checkpoint/sentry), and civilians who are fleeing, in combat, cowering, calling the police, or buying are now exempt from the deep cull, so they keep behaving. This fixes the “NPC stood frozen until I walked up / interacted” reports.
  • Waking a culled NPC is now reliable: the navmesh agent is restored and re-seated before the schedule re-evaluates, so NPCs resume their action immediately instead of standing inert, and the “not on navmesh” log spam is gone.
  • Cosmetic culling no longer freezes a roaming NPC mid-route (the host re-enables its nav agent after hiding it).
  • NPC models no longer pop on inside a building or vehicle when restored.
  • NPCs in a conversation, and NPCs indoors, are no longer deep-culled.
  • A one-off wake failure no longer pins an NPC to Full for the whole session (it retries after a short backoff).
  • Awareness throttle on deep-culled NPCs: their 10Hz vision sweep is paused (the same call the game makes when an NPC enters a building), recovering a real per-NPC cost. Local and multiplayer-safe.
  • Instant promote pass: a far NPC that suddenly comes near or on-screen is restored the same frame, so fast turns in a dense (MoreNPCs) crowd no longer leave a visibly frozen or hidden NPC.
  • Daily reconcile on the natural midnight rollover so distant culled NPCs are never left a day behind.

Initial release.

  • Distance/visibility LOD for all NPCs (base game + any NPC-adding mod) via the game NPC registry.
  • Three tiers: Full, Cosmetic (renderer hidden, AI untouched), Deep (movement + schedule paused).
  • Clean wake-up: schedule re-enable + EnforceState time catch-up, movement resume, NavMesh repair, then reveal - no T-pose, no off-NavMesh agents (failed wakes are kept Full for the session).
  • Functionality-preservation exemptions: dealers/employees/customers mid-task, story/IsImportant, in-dialogue/in-vehicle/KO’d/panicking NPCs, and anyone near any player are never deep-culled.
  • Multiplayer safety: cosmetic culling is local per-client; deep culling is host-authoritative only.
  • Budgeted, allocation-free re-evaluation loop with distance hysteresis.
  • RestoreAll before save / scene change / quit so NPCs are never persisted in a culled state.
  • Configurable distances, tier toggles, on-screen guard and an optional FPS counter (MelonPreferences).
  • Optional, opt-in compatibility shim for the CrossCompat/Mono Fannso’s MoreNPCs build on standard IL2CPP (MoreNpcsCompatShim, default off).
  • Debug build only: on-screen HUD, hotkeys (F6-F10) and a siesta ... dev-console bridge.