First off, HAPPY NEW YEAR!
I'm having a datastore for my game, currently holding some character info and stats. The problem is, whenever I call the loadData() function. It gives me the error from the title.
local DSS = game:GetService("DataStoreService")
local TeleportService = game:GetService("TeleportService")
local playerData = DSS:GetDataStore("PlayerData")
function generateDataKey(player)
local ret = "user_"..player.UserId
return ret
end
function generateDataTable(player)
local dataTable = {
magicType = player.PlayerData.MagicType.Value,
magicLevel = player.PlayerData.MagicType.MagicLevel.Value,
magicXP = player.PlayerData.MagicXP.Value,
magicXPN = player.PlayerData.MagicXPNeeded.Value,
magicEnergy = player.PlayerData.MagicEnergy.Value,
levels = player.PlayerData.Levels.Value,
xp = player.PlayerData.Levels.XP.Value,
xpn = player.PlayerData.Levels.XPNeeded.Value,
silver = player.PlayerData.Silver.Value,
hp = player.PlayerData.HP.Value,
hair1 = player.PlayerData.Hair1.Value,
hair1Color = player.PlayerData.Hair1Color.Value,
hair1Offset = player.PlayerData.Hair1Offset.Value,
hair2 = player.PlayerData.Hair2.Value,
hair2Color = player.PlayerData.Hair2Color.Value,
hair2Offset = player.PlayerData.Hair2Offset.Value,
skinColor = player.PlayerData.SkinColor.Value,
face = player.PlayerData.Face.Value,
shirt = player.PlayerData.Shirt.Value,
shirtColor = player.PlayerData.ShirtColor.Value,
pants = player.PlayerData.Pants.Value,
pantsColor = player.PlayerData.PantsColor.Value
}
return dataTable
end
function saveData(player)
local key = generateDataKey(player)
local data = generateDataTable(player)
playerData:SetAsync(key, data)
end
function inputData(player, data)
player.PlayerData.MagicType.Value = data.magicType
player.PlayerData.MagicType.MagicLevel.Value = data.magicLevel
player.PlayerData.MagicXP.Value = data.magicXP
player.PlayerData.MagicXPNeeded.Value = data.magicXPN
player.PlayerData.MagicEnergy.Value = data.magicEnergy
player.PlayerData.Levels.Value = data.levels
player.PlayerData.Levels.XP.Value = data.xp
player.PlayerData.Levels.XPNeeded.Value = data.xpn
player.PlayerData.Silver.Value = data.silver
player.PlayerData.HP.Value = data.hp
player.PlayerData.Hair1.Value = data.hair1
player.PlayerData.Hair1Color.Value = data.hair1Color
player.PlayerData.Hair1Offset.Value = data.hair1Offset
player.PlayerData.Hair2.Value = data.hair2
player.PlayerData.Hair2Color.Value = data.hair2Color
player.PlayerData.Hair2Offset.Value = data.hair2Offset
player.PlayerData.SkinColor.Value = data.skinColor
player.PlayerData.Face.Value = data.face
player.PlayerData.Shirt.Value = data.shirt
player.PlayerData.ShirtColor.Value = data.shirtColor
player.PlayerData.Pants.Value = data.pants
player.PlayerData.PantsColor.Value = data.pantsColor
end
function loadData(player)
local key = generateDataKey(player)
local data = playerData:GetAsync(key)
inputData(player, data)
end
game.Players.PlayerAdded:Connect(function(player)
local data = Instance.new("Folder")
data.Name = "PlayerData"
data.Parent = player
local magicType = Instance.new("StringValue")
magicType.Name = "MagicType"
magicType.Parent = data
local magicLevel = Instance.new("IntValue")
magicLevel.Name = "MagicLevel"
magicLevel.Parent = magicType
local magicXP = Instance.new("IntValue")
magicXP.Name = "MagicXP"
magicXP.Parent = data
local magicXPN = Instance.new("IntValue")
magicXPN.Name = "MagicXPNeeded"
magicXPN.Value = 20
magicXPN.Parent = data
local magicEnergy = Instance.new("IntValue")
magicEnergy.Name = "MagicEnergy"
magicEnergy.Value = 30
magicEnergy.Parent = data
local levels = Instance.new("IntValue")
levels.Name = "Levels"
levels.Value = 1
levels.Parent = data
local xp = Instance.new("IntValue")
xp.Name = "XP"
xp.Parent = levels
local xpn = Instance.new("IntValue")
xpn.Name = "XPNeeded"
xp.Value = 100
xpn.Parent = levels
local silver = Instance.new("IntValue")
silver.Name = "Silver"
silver.Parent = data
local hp = Instance.new("IntValue")
hp.Name = "HP"
hp.Value = 100
hp.Parent = data
local hair1 = Instance.new("StringValue")
hair1.Name = "Hair1"
hair1.Parent = data
local hair1Color = Instance.new("Vector3Value")
hair1Color.Name = "Hair1Color"
hair1Color.Parent = data
local hair1Offset = Instance.new("Vector3Value")
hair1Offset.Name = "Hair1Offset"
hair1Offset.Parent = data
local hair2 = Instance.new("StringValue")
hair2.Name = "Hair2"
hair2.Parent = data
local hair2Color = Instance.new("Vector3Value")
hair2Color.Name = "Hair2Color"
hair2Color.Parent = data
local hair2Offset = Instance.new("Vector3Value")
hair2Offset.Name = "Hair2Offset"
hair2Offset.Parent = data
local skinColor = Instance.new("Color3Value")
skinColor.Name = "SkinColor"
skinColor.Parent = data
local face = Instance.new("StringValue")
face.Name = "Face"
face.Parent = data
local shirt = Instance.new("StringValue")
shirt.Name = "Shirt"
shirt.Parent = data
local shirtColor = Instance.new("Color3Value")
shirtColor.Name = "ShirtColor"
shirtColor.Parent = data
local pants = Instance.new("StringValue")
pants.Name = "Pants"
pants.Parent = data
local pantsColor = Instance.new("Color3Value")
pantsColor.Name = "PantsColor"
pantsColor.Parent = data
loadData(player)
local teleportData = generateDataTable(player)
print(teleportData)
game.ReplicatedStorage.Remotes.Teleport.OnServerEvent:Connect(function(player)
TeleportService:Teleport(4398454020, player, teleportData)
end)
end)
game.ReplicatedStorage.Remotes.RemoveData.OnServerEvent:Connect(function(player)
local id = generateDataKey(player)
playerData:RemoveAsync(id)
end)
game.Players.PlayerRemoving:Connect(saveData)
I have other places that use the same format of script. On the other places, it works well. But on my current place, it gives the error.
Error : link

2 comments
Does this happen everytime a player joins or only for new players?
everytime a player joins