BotanicPupPatch
Protects PUP FPS cluster collisions and building stability. Optional FiresGhettoNetworking mob ownership follows the AI target.Changelog
2.1.1
- Removes the fixed PUP FPS 1.0.34 DLL/version lock. Required native interfaces and body-freeze contracts are checked at startup; incompatible interfaces are rejected cleanly.
- Supports PUP FPS 1.0.36's prepared dedicated collisions without bypassing its deferred collider queue. Manifest, recipe, restore and structural safeguards remain; native body-cell retention avoids the duplicate supplement.
2.1.0
- Restores optional AI-target ownership with FiresGhettoNetworking: eligible hostile mobs prefer the player they currently attack. Target changes request handoffs; transfers blocked by an attack are retried after it ends.
- Enables this option by default with FGN. High-ping targets can use the server with Server-Side Simulation and another eligible player nearby; configurable defaults are 200 ms and 6 metres.
- Restores the botanic_ai_status console command for inspecting targets, owners and blocked transfers. Tamed, ridden/player-controlled mobs and bosses remain excluded.
2.0.0
- Updates to PUP FPS 1.0.34 and uses its built-in loading freeze, removing duplicate cart/mob guards and their extra physics loops.
- Holds building stability checks until required cluster collisions are ready. Restored pieces with no real support can collapse normally when supporting objects are removed.
- Checks local cluster collision readiness on dedicated servers and prevents needed clusters unloading while PUP still needs them for locally owned physics objects.
- Protects FGN mob ownership corrections against missing destination collisions and old local positions overwriting the received destination.
- Removes the ServerAuthority and ServerBuildings interfaces and the additional FGN AI-target ownership policy.
- Replaces the custom crystal-wall exclusion with PUP's material filter. To keep crystal walls unclustered, set BakingMaterials / Crystal = false on the server/host; restore and rebake existing clustered walls.
