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

0

WaitForChild instead maybe use getchild

0

that has nothing to do with the problem.

0

Where do you send or even teleport the player? No traces of teleporting in the first script?

0

@ankurbohra04 the player is teleported to that game; ill include the script

0

there were way more lines of code in the last script, but it didn't fit in the characters limit for the question.