We are looking to track data for a player on a custom verse device but they do not seem consistently comparable between separate verse triggers. For example using map where the player is the key will not find the same player in a subsequent look up in the same map for a different triggering call.
Is there a different way to consistently know a player is the same via some other method? Getting unique ID or Player Name?
I have used player maps successfully to uniquely separate players. Admittedly I haven’t tested in the recent patch, though. There’s also the chance something else is going wrong with the code… Could you share how you are doing so?
Here is a simple map that is a counter for players. Separately, I have another device that references this device and calls GetPlayerData to get the map data.
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /EpicGames.com/Temporary/Diagnostics }
log_simple_player_data_device := class(log_channel){}
simple_player_data_device := class(creative_device)
{
Logger:log = log{Channel:=log_simple_player_data_device}
@editable PlayerTrigger:trigger_device = trigger_device{}
var PlayerData : [player]int = map{}
var Counter:int = 0;
# Runs when the device is started in a running game
OnBegin<override>()<suspends>:void=
{
PlayerTrigger.TriggeredEvent.Subscribe(OnTriggered)
}
OnTriggered(TriggerPlayer:player):void=
{
set Counter = Counter +1
if(set PlayerData[TriggerPlayer] = (Counter))
{
Logger.Print("Set Counter For Player: {Counter}")
}
else
{
Logger.Print("Setting Counter for player failed: {Counter}")
}
}
GetPlayerData<public>(QueryPlayer:player):int=
{
if(Count := PlayerData[QueryPlayer])
{
Logger.Print("Player Found: {Count}")
return Count
}
else
{
Logger.Print("Player NOT Found:")
return -1
}
}
}