I believe I got it working now. I had the settings configured to work with the reboot vans initially, but then I turned off the drop reboot card option.
I had game start spawn pads that are disabled 10 seconds after a game start by hooking up their disable function with the timer completing. I had another set of 3 spawn pads for each storm phase that are initially disabled. The island setting are set to use Spawn Pads by default for spawning, so I figured in order for this to work I had to only enable the spawn pads that are associated with a specific storm phase.
I created a verse device respawn_zone_device for each storm phase that I wanted players to spawn at.
respawn_zone_device := class(creative_device):
@editable
StormPhase<public> : int = 0
@editable
RaspawnPoints<public> : []player_spawner_device = array{}
RespawnEliminatedPlayers<public>():void=
var PointIndex : int = 0
for(Player : GetPlayspace().GetPlayers(), Character := Player.GetFortCharacter[]):
if(Character.IsActive[]):
else if(RaspawnPoint := RaspawnPoints[PointIndex]):
RaspawnPoint.Enable()
Player.Respawn(RaspawnPoint.GetTransform().Translation, RaspawnPoint.GetTransform().Rotation)
RaspawnPoint.Disable()
set PointIndex += 1
If anyone can clean up my code that would be nice. For example, I am not sure how to do a not boolean for the inner if statement, but also I have these weird if else checks in that function above.
Anyways, there is one respawn_zone_device instance per desired storm phase. Then in the other code that monitors the storm phases I put each of these devices in a map keyed on storm phase integer and valued on the respawn_zone_device object. Then if there is a respawn_zone_device for that phase I get it and call the RespawnEliminatedPlayers.
Anyways, it appears to work so far given the tests that I’ve done. But so far only tested this using a duos match. I am not sure if this works with more players yet. It looks hopeful.