Pick A Random Player With Verse

Okay so i think the code works. But the monster still loads to the first person on the island and idk how to fix that (nor idk what causes it)
here is the code if you wanna look at it

using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Verse.org/Simulation }
using { /Verse.org/Random }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /UnrealEngine.com/Temporary/SpatialMath }

See Create Your Own Device Using Verse in Unreal Editor for Fortnite | Fortnite Documentation | Epic Developer Community for how to create a verse device.

A Verse-authored creative device that can be placed in a level

IA_1 := class(creative_device):

@editable Inactivo : cinematic_sequence_device = cinematic_sequence_device{}
@editable Correr : cinematic_sequence_device = cinematic_sequence_device{}

@editable Cuerpo : creative_prop = creative_prop{}

# Runs when the device is started in a running game
OnBegin<override>()<suspends>:void=
    AllPlayers := GetPlayspace().GetPlayers()
    if (Player := AllPlayers[GetRandomInt(0, AllPlayers.Length -1)], Agent := agent[Player], Fort := Agent.GetFortCharacter[]):
        Fort.Hide()
        Correr.Play(Agent)
        Fort.SprintedEvent().Subscribe(OnMoved)
        spawn:
            UpdateCharacter(Fort, vector3{Z:=-70.0, Y:=0.0})

UpdateCharacter(Player : fort_character, Offset : vector3)<suspends>:void=
    loop:
        Sleep(0.0)
        NewPos := Player.GetTransform().Translation + Offset
        if (Cuerpo.TeleportTo[NewPos, Player.GetTransform().Rotation]) {}


OnMoved(MoveData : tuple(fort_character, logic)):void=
    if (Agent := MoveData(0).GetAgent[]):
        if (MoveData(1)?):
            Inactivo.Stop(Agent)
            Correr.Play(Agent)
        else:
            Correr.Stop(Agent)
            Inactivo.Play(Agent)