Tracker Device - SetTitleText/SetDescriptionDescription/SetTarget don't work for players who join in progress

Tracker Setup :
Tracker Device Setup

My verse device :
Debug Game Manager Device Setup


# Built-In Verse Modules :
using {/Fortnite.com/Devices}
using {/Fortnite.com/Playspaces}
using {/Verse.org/Simulation}
using {/Verse.org/Random}

# Custom Modules :
using {Scripts.Modules.Debug}

# Custom Extensions :
using {Scripts.Extensions.ArrayExt}
using {Scripts.Extensions.FortPlayspaceExt}
using {Scripts.Extensions.TrackerExt}

# Custom Tags :
debug_game_manager_device_tag <public> := class(meta4_device_tag) {}

# Custom Log Channel :
debug_game_manager_device_log_channel <internal> := class(meta4_device_log_channel) {}

# A Verse-authored creative device that can be placed in a level
debug_game_manager_device := class(creative_device) {

	# ==============================[Protected Properties]============================== #

		@editable
		Tracker : tracker_device = tracker_device {}

		@editable
		TitleFromVerse : string = "This is the title set from verse"

		@editable
		DescriptionFromVerse : string = "This is the tracker description set from verse"

		@editable
		TargetValueFromVerse : int = 100

		@editable
		bUpdateTrackerOnPlayerAdded : logic = false

		@editable
		AssignAllTrackerButton : button_device = button_device {}

		@editable
		AssignToAgentTrackerButton : button_device = button_device {}

		@editable
		RemoveAllTrackerButton : button_device = button_device {}

		@editable
		RemoveToAgentTrackerButton : button_device = button_device {}

		@editable
		IncrementingButton : button_device = button_device {}

		@editable
		DecrementingButton : button_device = button_device {}

		@editable
		IncreaseTargetValueButton : button_device = button_device {}

		@editable
		DecreaseTargetValueButton : button_device = button_device {}

		@editable
		RandomTrackerTextButton : button_device = button_device {}

		@editable
		ForceInitialzeTrackerButton : button_device = button_device {}

	# ==============================[Public Methods]============================== #
		
		OnBegin <override> () <suspends> : void = {
			Playspace : fort_playspace = GetPlayspace()

			# Devices Initializations
			InitializeTracker()

			# Subscriptions
			AssignAllTrackerButton.InteractedWithEvent.Subscribe(OnAssignAllTrackerButtonInteracted) 
			AssignToAgentTrackerButton.InteractedWithEvent.Subscribe(OnAssignToAgentTrackerButtonInteracted) 
			RemoveAllTrackerButton.InteractedWithEvent.Subscribe(OnRemoveAllTrackerButtonInteracted) 
			RemoveToAgentTrackerButton.InteractedWithEvent.Subscribe(OnRemoveToAgentTrackerButtonInteracted) 
			IncrementingButton.InteractedWithEvent.Subscribe(OnIncrementingButtonInteracted) 
			DecrementingButton.InteractedWithEvent.Subscribe(OnDecrementingButtonInteracted)
			IncreaseTargetValueButton.InteractedWithEvent.Subscribe(OnIncreaseTargetValueButtonInteracted)
			DecreaseTargetValueButton.InteractedWithEvent.Subscribe(OnDecreaseTargetValueButtonInteracted)
			RandomTrackerTextButton.InteractedWithEvent.Subscribe(OnRandomTrackerTextButtonInteracted)
			ForceInitialzeTrackerButton.InteractedWithEvent.Subscribe(OnForceInitialzeTrackerButtonInteracted)

			Playspace.PlayerAddedEvent().Subscribe(OnPlayerAdded)

			Log("[OnBegin]")
		}


	# ==============================[Protected Methods]============================== #
	
		InitializeTrackerRandomText <protected> () : void = {
			RandomTitle := GenerateRandomString(GetRandomInt(5,10))
			RandomDescription := GenerateRandomString(GetRandomInt(15,25))
			Tracker.SetText(RandomTitle, RandomDescription)
		}

		InitializeTrackerRandomTarget <protected> () : void = {
			Tracker.SetTarget(GetRandomInt(15,20))
		}

		InitializeTrackerRandom <protected> () : void = {
			InitializeTrackerRandomText()
			InitializeTrackerRandomTarget()
		}
		
		InitializeTracker <protected> () : void = {
			Tracker.SetText(TitleFromVerse, DescriptionFromVerse)
			Tracker.SetTarget(TargetValueFromVerse)
		}
		
	# ==============================[Private Methods]============================== #
		
		OnRandomTrackerTextButtonInteracted <private> (Agent : agent) : void = {
			Log("[InitializeTrackerText]", debug_game_manager_device_log_channel)
			InitializeTrackerRandomText()
		}

		OnAssignAllTrackerButtonInteracted <private> (Agent : agent) : void = {
			Log("[OnAssignAllTrackerButtonInteracted] : ", debug_game_manager_device_log_channel)
			Tracker.AssignToAll()
		}

		OnAssignToAgentTrackerButtonInteracted <private> (Agent : agent) : void = {
			Log("[OnAssignToAgentTrackerButtonInteracted] : ", debug_game_manager_device_log_channel)
			Tracker.Assign(Agent)
		}

		OnRemoveAllTrackerButtonInteracted <private> (Agent : agent) : void = {
			Log("[OnRemoveAllTrackerButtonInteracted] : ", debug_game_manager_device_log_channel)
			Tracker.RemoveFromAll()
		}

		OnRemoveToAgentTrackerButtonInteracted <private> (Agent : agent) : void = {
			Log("[OnRemoveToAgentTrackerButtonInteracted] : ", debug_game_manager_device_log_channel)
			Tracker.Remove(Agent)
		}

		OnIncrementingButtonInteracted <private> (Agent : agent) : void = {
			CurrentValue := Tracker.GetValue()
			NewValue := Tracker.GetValue() + 1
			Log("[OnIncrementingButtonInteracted] : CurrentTarget = {CurrentValue} | NewTarget = {NewValue}", debug_game_manager_device_log_channel)
			Tracker.SetValue(NewValue)
		}

		OnDecrementingButtonInteracted <private> (Agent : agent) : void = {
			CurrentValue := Tracker.GetValue()
			NewValue := Tracker.GetValue() - 1
			Log("[OnDecrementingButtonInteracted] : CurrentTarget = {CurrentValue} | NewTarget = {NewValue}", debug_game_manager_device_log_channel)
			Tracker.SetValue(NewValue)
		}

		OnIncreaseTargetValueButtonInteracted <private> (Agent : agent) : void = {
			CurrentTarget := Tracker.GetTarget()
			NewTarget := Tracker.GetTarget() + 1
			Log("[OnIncreaseTargetValueButtonInteracted] : CurrentTarget = {CurrentTarget} | NewTarget = {NewTarget}", debug_game_manager_device_log_channel)
			Tracker.SetTarget(NewTarget)
		}

		OnDecreaseTargetValueButtonInteracted <private> (Agent : agent) : void = {
			CurrentTarget := Tracker.GetTarget()
			NewTarget := Tracker.GetTarget() - 1
			Log("[OnDecreaseTargetValueButtonInteracted] : CurrentTarget = {CurrentTarget} | NewTarget = {NewTarget}", debug_game_manager_device_log_channel)
			Tracker.SetTarget(NewTarget)
		}

		OnPlayerAdded <private> (Player : player) : void = {
			bUpdateTrackerOnPlayerAddedStr := if (bUpdateTrackerOnPlayerAdded?) then "True" else "False"
			Log("[OnPlayerAdded] : bUpdateTrackerOnPlayerAdded = {bUpdateTrackerOnPlayerAddedStr}", debug_game_manager_device_log_channel)

			if (bUpdateTrackerOnPlayerAdded?) :
				UpdateTrackerOnPlayerAdded()
		}

		OnForceInitialzeTrackerButtonInteracted <private> (Agent : agent) : void = {
			Log("[OnForceInitialzeTrackerButtonInteracted]", debug_game_manager_device_log_channel)
			InitializeTracker()
		}

		UpdateTrackerOnPlayerAdded <private> () : void = {
			Log("[UpdateTrackerOnPlayerAdded]", debug_game_manager_device_log_channel)
			InitializeTracker()
		}
}


GenerateRandomString <public> (Length : int) : string = {
	Chars := "abcdefghijklmnopqrstuvwxyz"
	var Result : string = ""

	for (Index := 0 .. Length) :
		if (RandomChar := Chars.GetRandom[]) :
			set Result += array {RandomChar}

	return Result
}

Player ‘A’ in the game when launched :

Joining Player ‘B’ POV :

3 Likes