Need help to build verse code

Hi, i need a verse code that when players are still in team 1 (global team) when a timer succeeds, they will randomly be put in team 2 or team 3.

Hi Ari, Welcome to the Forums.

This sort of question might be a good candidate for the “Epic Developer Assistant

I hope this is not interpreted as me being dismissive of your question. I think you’ll have better luck if you do some experimentation on your own, and then can ask specific questions about what’s not working.

Let us know how far you get!

Hello @_ari1 how are you?

I’ve been working on this and the code you should implemente is the following:


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

team_assignment_device := class(creative_device):

    # Devices needed
    @editable
    var MyTimer : timer_device = timer_device{}
    @editable
    var MyButton : button_device = button_device{}
    @editable
    TriggerT2 : trigger_device = trigger_device{}
    @editable
    TriggerT3 : trigger_device = trigger_device{}

    # Shuffled array with all players in the Island
    var FinalArray : []player = array{}


    OnBegin<override>()<suspends> : void =
        # Subscribe to the button
        MyButton.InteractedWithEvent.Subscribe(StartTimer)
        # Subscribe to the Timer's success
        MyTimer.SuccessEvent.Subscribe(TeamAssignment)

    
    # Function to start the timer (you can call this whenever you want, in this example I used the button)
    StartTimer(Agent:agent): void=
        MyTimer.Start()


    # Function to change a Player's team
    ChangePlayerTeam(Player : player, NewTeamIndex : int) : logic =
        if:
            # Get all the teams on the island
            TeamCollection := GetPlayspace().GetTeamCollection()
            Teams := TeamCollection.GetTeams()

            # Check if the team we are trying to assing the players exists
            NewTeamIndex >= 0
            NewTeamIndex < Teams.Length

            # Set the new team we will assign to the player
            NewTeam := Teams[NewTeamIndex]
        then:
            # Assign the player to the new team
            if(TeamCollection.AddToTeam[Player, NewTeam]):
            true
        else:
            false


    # Function to change all the corresponding players to a new team
    TeamAssignment(Agent:?agent) : void =
        # Get all players in the island and store them in AllPlayers array
        AllPlayers := GetPlayspace().GetPlayers()
        # Shuffle the previous array and store the new order in FinalArray
        set FinalArray = Random.Shuffle(AllPlayers)
        # Get the FianlArray lenght and change the result to float type so we can use it later
        ArrayLenght : float = FinalArray.Length * 1.0

        # Iterate all the players in FinalArray to assign them to a team
        for ( Index := 0..FinalArray.Length - 1 ):
            if ( Player := FinalArray[Index] ):
                # Get all the teams in the island
                TeamCollection := GetPlayspace().GetTeamCollection() 
                # Get the team for the player in the current Index
                if ( PlayersTeam := TeamCollection.GetTeam[Player] ):
                    # Create teams array
                    Teams := TeamCollection.GetTeams()
                    # Check if teams array lenght is more than 1, otherwise we don't want to change teams
                    if (Teams.Length > 1):
                        # Assign team index 0 to Team1 variable
                        if ( Team1 := Teams[0] ):
                            # Check if the player is part of the Team 1 (team index 0)
                            if (PlayersTeam = Team1):
                                # Send the first half of the array to team 2 and the second hal to team 3
                                if ( Index * 1.0 < ArrayLenght * 0.5 ):
                                    # Send player to team index 1 (Team 2)
                                    ChangePlayerTeam(Player, 1)
                                else:
                                    # Send player to team index 2 (Team 3)
                                    ChangePlayerTeam(Player, 2)

I put comments through all the code so you can understand what everything does.

Hope it helps!