Hi!
I try to update some values in player data on login. When the player logs the first time I add some initial values to data. Then I want to add let's say some energy each new login. But if I update energy values all other values are gone.
handlers.InitNewPlayerData = function (playerData, gameConfig){ var date = new Date(); var now = date.getTime(); playerData.Data.registerTimestamp = now; playerData.Data.softCurrency = gameConfig.accountConfig.startSoftCurrency; playerData.Data.energy = gameConfig.accountConfig.startEnergy; return playerData; } handlers.OnLogin = function (args, context) { var playerData = server.GetUserInternalData({ PlayFabId: currentPlayerId }); var titleData = server.GetTitleInternalData({}); var gameConfig = JSON.parse(titleData.Data.config); if (!playerData.Data.hasOwnProperty("registerTimestamp")) { playerData = handlers.InitNewPlayerData(playerData, gameConfig); server.UpdateUserInternalData({ "PlayFabId":currentPlayerId, "Data":playerData.Data }); // First time it stores correctly. I see registerTimestamp, energy and softCurrency in GameManager } else { playerData.Data.energy = parseInt(playerData.Data.energy.Value)+1; log.debug("saving playerData: "+JSON.stringify(playerData.Data)); // "Message": "saving playerData: {\"energy\":21,\"registerTimestamp\":{\"Value\":\"1584385244061\",\"LastUpdated\":\"2020-03-16T19:00:44.081Z\",\"Permission\":\"Private\"},\"softCurrency\":{\"Value\":\"10\",\"LastUpdated\":\"2020-03-16T19:00:44.081Z\",\"Permission\":\"Private\"}}", server.UpdateUserInternalData({ "PlayFabId":currentPlayerId, "Data":playerData.Data }); playerData = server.GetUserInternalData({ PlayFabId: currentPlayerId }); log.debug("loading playerData: "+JSON.stringify(playerData.Data)); //"Message": "loading playerData: {\"energy\":{\"Value\":\"21\",\"LastUpdated\":\"2020-03-16T19:00:47.895Z\",\"Permission\":\"Private\"}}", // I can see only energy value in GameManager. Where are "registerTimestamp" and "softCurrency"? } };
Thanks!