Added a new chat command /rs.test, which allows admins to spawn a test shelter at their current location. This command is primarily for testing purposes.
Added a new config option Shelter Health, that allows to customize the health of raidable shelters. Note: This setting applies to both the shelter and its door, as their health values are synchronized.
Introduced a debug mode to help troubleshoot and visualize the reasons behind shelter spawn failures, including player state (e.g., swimming, near monuments) and environmental factors (e.g., rocks, roads).
Note: Debug information is drawn only to players with admin privileges. Enable this mode only when necessary!
Introduced a spawn chance percentage for each interior entity in shelters. Note: The spawn chance is evaluated individually for each instance of the entity.
Deauthorize all players from the building privilege of the spawned shelter.
Add support for multiple skins for interior entities, enabling random skin selection each time an entity is spawned.
Added Notify Surrounding Players Of Shelter Spawn determining whether surrounding players should be notified when a shelter spawns. If set to false, only the player for whom the shelter spawned will be notified.
Added Radius For Notifying Nearby Players defining the radius within which nearby players will be notified.
Added Send As Toast which if disabled, notifications will be sent as chat messages.
Spawned shelters and their interior entities are now stored in a data file.
Resume removal timers for shelters upon plugin initialization, ensuring they're always removed as scheduled, even after server crashes.
Added localization.
Introduced two new hooks for interacting with shelter interior entities:
OnShelterInteriorEntitySpawn(LegacyShelter shelter, string prefabName, Vector3 position, Quaternion rotation): Called before an entity is spawned inside a shelter. Returning false will prevent the entity from being spawned.
OnShelterInteriorEntitySpawned(LegacyShelter shelter, BaseEntity entity): Called after an entity has been spawned inside a shelter.
Added a new API method:
bool API_IsShelterRaidable(LegacyShelter shelter): Checks if a given shelter is a raidable shelter based on the stored data.