fort_character subscriptions should not exceed the pawn’s lifetime. It is weird that subscribing to events on the fort_character remain active after the fort_character respawns. Either limit them to the lifespawn of the actual fort_character or move them to the player.
The way it currently is makes things very inconsistent. Stuff like stasis does not presist through respawns, subscriptions do persist. Also thefort_character instance in Verse persists through respawns, so there is no good way to check if it is still the same pawn or if the pawn was respawned in the meantime.
Allow us to despawn a fort_character. If i want a game state where all fort_characters are despawned, the game will just end for whatever reason. Please get rid of that. Also make it easier to despawn a fort_character. The only current way to despawn one is to kill them while the player is in a class that limits the respawns.
I also would like to add that the way characters are handled in the game is inconsistent in general because players and non-player characters (NPCs) don’t follow the same rules.
As mentioned above, player fort_characters stick around even after they die and come back to life. The character’s identity stays the same, and certain things like event subscriptions don’t get cleared when they die. However, some effects like stasis do end when a player dies.
On the other hand, NPCs work the opposite way. When an NPC dies, both their character and the agent controlling them disappear. Trying to bring an NPC back using agent.Respawn doesn’t work as expected. Most of the commands that work on player characters don’t do much for NPCs.
Basically a player fort_characters identity remains the same and its lifetime only depends on the players lifetime. An NPC fort_characters lifetime ends with dead and their agents lifetime depend on the fort_character .
This inconsistency makes it challenging. If both player and NPC characters followed similar rules, it would be easier to create a smooth and predictable gaming experience. Fixing these differences is important for making the game system more straightforward and user-friendly.