The player gets teleported from the menu (starter place) to the actual game (another place in the same universe). The data gets transported, but my character doesn't get modified with the data.
local module = require(script.Parent.DataModule)
local dataStoreService = game:GetService("DataStoreService")
local playerData = dataStoreService:GetDataStore("PlayerData")
game.Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(char)
local key = module.generateKey(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.Parent = data
magicXPN.Value = 20
local magicEnergy = Instance.new("IntValue")
magicEnergy.Name = "MagicEnergy"
magicEnergy.Parent = data
magicEnergy.Value = 30
local levels = Instance.new("IntValue")
levels.Name = "Levels"
levels.Parent = data
levels.Value = 1
local xp = Instance.new("IntValue")
xp.Name = "XP"
xp.Parent = levels
local xpn = Instance.new("IntValue")
xpn.Name = "XPNeeded"
xpn.Parent = levels
xpn.Value = 100
local silver = Instance.new("IntValue")
silver.Name = "Silver"
silver.Parent = data
local hp = Instance.new("IntValue")
hp.Parent = data
hp.Name = "HP"
hp.Value = char:WaitForChild("Humanoid").MaxHealth
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
local dataa = module.generateData(player)
spawn(function()
wait(1)
for i, v in pairs(char:GetChildren()) do
if v:IsA("Accessory") then
v:Destroy()
end
end
for i, v in pairs(game.ServerStorage:GetChildren()) do
if v:IsA("Accessory") then
v:Clone().Parent = char
end
end
end)
local success = pcall(function()
return playerData:GetAsync(key)
end)
game.ReplicatedStorage.Remotes.GetData.OnServerEvent:Connect(function(player, decodedData)
print(decodedData)
magicEnergy.Value = decodedData.magicEnergy
xp.Value = decodedData.xp
levels.Value = decodedData.levels
silver.Value = decodedData.silver
hp.Value = decodedData.hp
magicLevel.Value = decodedData.magicLevel
magicXP.Value = decodedData.magicXP
magicXPN.Value = decodedData.magicXPN
magicType.Value = decodedData.magicType
hair1.Value = decodedData.hair1
hair1Color.Value = Vector3.new(decodedData.hair1Color)
hair1Offset.Value = Vector3.new(decodedData.hair1Offset)
hair2.Value = decodedData.hair2
hair2Color.Value = Vector3.new(decodedData.hair2Color)
hair2Offset.Value = Vector3.new(decodedData.hair2Offset)
skinColor.Value = Color3.fromRGB(decodedData.skinColor)
face.Value = decodedData.face
shirt.Value = decodedData.shirt
shirtColor.Value = Color3.fromRGB(decodedData.shirtColor)
pants.Value = decodedData.pants
pantsColor.Value = Color3.fromRGB(decodedData.pantsColor)
char:WaitForChild("Hair").Handle.Mesh.MeshId = decodedData.hair1
char:WaitForChild("Hair").Handle.Mesh.VertexColor = Vector3.new(decodedData.hair1Color)
char:WaitForChild("Hair").Handle.Mesh.Offset = Vector3.new(decodedData.hair1Offset)
char:WaitForChild("Hair2").Handle.Mesh.MeshId = decodedData.hair2
char:WaitForChild("Hair2").Handle.Mesh.VertexColor = Vector3.new(decodedData.hair2Color)
char:WaitForChild("Hair2").Handle.Mesh.Offset = Vector3.new(decodedData.hair2Offset)
char:WaitForChild("Body Colors").HeadColor3 = Color3.fromRGB(decodedData.skinColor)
char:WaitForChild("Body Colors").LeftArmColor3 = Color3.fromRGB(decodedData.skinColor)
char:WaitForChild("Body Colors").RightArmColor3 = Color3.fromRGB(decodedData.skinColor)
char:WaitForChild("Body Colors").LeftLegColor3 = Color3.fromRGB(decodedData.skinColor)
char:WaitForChild("Body Colors").RightLegColor3 = Color3.fromRGB(decodedData.skinColor)
char:WaitForChild("Body Colors").TorsoColor3 = Color3.fromRGB(decodedData.skinColor)
char.Head.face.Texture = decodedData.face
char:WaitForChild("Shirt").ShirtTemplate = decodedData.shirt
char:WaitForChild("Shirt").Color3 = Color3.fromRGB(decodedData.shirtColor)
char:WaitForChild("Pants").PantsTemplate = decodedData.pants
char:WaitForChild("Pants").Color3 = Color3.fromRGB(decodedData.pantsColor)
if success then
print("Data exists")
module.inputData(player, decodedData)
else
print("No data found")
end
player:WaitForChild("PlayerGui").LevelName.Level.Text = "Level "..levels.Value
if levels.Value == 1 then
print("Start tutorial")
game.ReplicatedStorage.Remotes.StartTutorial:FireClient(player)
end
for i, v in pairs(decodedData) do
print(tostring(i)..": ".. tostring(v))
end
end)
end)
end)
Client:
local player = game.Players.LocalPlayer
local char = player.Character or player.CharacterAdded:Wait()
local TeleportService = game:GetService("TeleportService")
local playerData = TeleportService:GetLocalPlayerTeleportData()
print(playerData)
game.ReplicatedStorage.Remotes.GetData:FireServer(playerData)
What can I do in order to make the character change? How it looks like: link
EDIT: This is what it prints: link EDIT2:
local module = require(script.Parent.DataModule)
local dataStoreService = game:GetService("DataStoreService")
local playerData = dataStoreService:GetDataStore("PlayerData")
game.Players.PlayerAdded:Connect(function(player)
local char = workspace.Character
local key = module.generateKey(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"
xpn.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
local dataa = module.generateData(player)
game.ReplicatedStorage.Remotes.Teleport.OnServerEvent:Connect(function(player)
local userid = player.UserId
game:GetService("TeleportService"):Teleport(4398454020, player, dataa)
end)
end)

5 comments
WaitForChild instead maybe use getchild
that has nothing to do with the problem.
Where do you send or even teleport the player? No traces of teleporting in the first script?
@ankurbohra04 the player is teleported to that game; ill include the script
there were way more lines of code in the last script, but it didn't fit in the characters limit for the question.