I have checked the studio access to API services. There are 2 places in my universe.

Starter place module (both modules are required btw)

local DataStoreService = game:GetService("DataStoreService")
local dataStore = DataStoreService:GetDataStore("PlayerData")

local module = {}

function module.generateKey(player)
	local key = "player-"..player.UserId
	return key
end

function module.makeTable(player)
	local data = {
		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 data
end

function module.saveData(player)
	local key = module.generateKey(player)
	local data = module.makeTable(player)
	dataStore:SetAsync(key, data)
end

function module.loadData(player, data)
	local key = module.generateKey(player)
	
	local success, err = pcall(function()
		return dataStore:GetAsync(key)
	end)
	
	if success then
		print("Data successfully found")
		module.inputData(player, data)
	else
		print("Data wasn't found")
		warn(err)
	end
end

function module.inputData(player, data)
	local char = player.Character or player.CharacterAdded:Wait()
	player.PlayerData.MagicEnergy.Value = data.magicEnergy
	player.PlayerData.Levels.XP.Value = data.xp
	player.PlayerData.Levels.Value = data.levels
	player.PlayerData.Silver.Value = data.silver
	player.PlayerData.HP.Value = data.hp
	player.PlayerData.MagicType.MagicLevel.Value = data.magicLevel
	player.PlayerData.MagicXP.Value = data.magicXP
	player.PlayerData.MagicXPNeeded.Value = data.magicXPN
	player.PlayerData.MagicType.Value = data.magicType
	
	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

------------------------------------------------------------------

game.Players.PlayerAdded:Connect(function(player)
	local key = module.generateKey(player)
	local char = player.Character or player.CharacterAdded:Wait()
	
	-- values are instanced
	
	module.loadData(player)
	
	game.ReplicatedStorage.Remotes.TransportDataToPlace.OnServerInvoke = function(player) -- gets invoked when player presses a load game button
		local dataa = module.makeTable(player)
		local key = module.generateKey(player)
		local msg1 = "Teleporting to First Sea..."
		local msgError = "No data exists."
		local teleport = game.ServerStorage.Teleport
		
		if player.PlayerData.Levels.Value < 120 then
			teleport.Parent = player:WaitForChild("PlayerGui")
			teleport.Frame.Visible = true
			
			spawn(function()
				for i, v in pairs(dataa) do
					print(tostring(i)..": ".. tostring(v)) --https://gyazo.com/df0b3384eba16be963db51a70cfb0560
				end
			end)
			
			for i = 1, #msg1 do
				teleport.Frame.TextLabel.Text = string.sub(msg1, 1, i)
				wait()
			end
			
			wait(1)
			game:GetService("TeleportService"):Teleport(4398454020, player, dataa)
		end
	end	
end)

game.Players.PlayerRemoving:Connect(module.saveData)

return module

Second place module:

local DataStoreService = game:GetService("DataStoreService")
local dataStore = DataStoreService:GetDataStore("PlayerData")

local module = {}

function module.generateKey(player)
	local key = "player-"..player.UserId
	return key
end

function module.makeTable(player)
	local data = {
		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 data
end

function module.saveData(player)
	local key = module.generateKey(player)
	local data = module.makeTable(player)
	dataStore:SetAsync(key, data)
end

function module.loadData(player, data)
	local key = module.generateKey(player)
	
	local success, err = pcall(function()
		return dataStore:GetAsync(key)
	end)
	
	if success then
		print("Data successfully found")
		module.inputData(player, data)
	else
		print("Data wasn't found")
		warn(err)
	end
end

function module.inputData(player, data)
	local char = player.Character or player.CharacterAdded:Wait()
	player.PlayerData.MagicEnergy.Value = data.magicEnergy
	player.PlayerData.Levels.XP.Value = data.xp
	player.PlayerData.Levels.Value = data.levels
	player.PlayerData.Silver.Value = data.silver
	player.PlayerData.HP.Value = data.hp
	player.PlayerData.MagicType.MagicLevel.Value = data.magicLevel
	player.PlayerData.MagicXP.Value = data.magicXP
	player.PlayerData.MagicXPNeeded.Value = data.magicXPN
	player.PlayerData.MagicType.Value = data.magicType
	
	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
	
	char:WaitForChild("Hair").Handle.Mesh.MeshId = data.hair1
	char:WaitForChild("Hair").Handle.Mesh.VertexColor = data.hair1Color
	char:WaitForChild("Hair").Handle.Mesh.Offset = data.hair1Offset
	char:WaitForChild("Hair2").Handle.Mesh.MeshId = data.hair2
	char:WaitForChild("Hair2").Handle.Mesh.VertexColor = data.hair2Color
	char:WaitForChild("Hair2").Handle.Mesh.Offset = data.hair2Offset
	char:WaitForChild("Body Colors").HeadColor3 = data.skinColor
	char:WaitForChild("Body Colors").LeftArmColor3 = data.skinColor
	char:WaitForChild("Body Colors").RightArmColor3 = data.skinColor
	char:WaitForChild("Body Colors").LeftLegColor3 = data.skinColor
	char:WaitForChild("Body Colors").RightLegColor3 = data.skinColor
	char:WaitForChild("Body Colors").TorsoColor3 = data.skinColor
	char.Head.face.Texture = data.face
	char:WaitForChild("Shirt").ShirtTemplate = data.shirt
	char:WaitForChild("Shirt").Color3 = data.shirtColor
	char:WaitForChild("Pants").PantsTemplate = data.pants
	char:WaitForChild("Pants").Color3 = data.pantsColor
end

--------------------------------------------------------------

game.Players.PlayerAdded:Connect(function(player)
	local char = player.Character or player.CharacterAdded:Wait()
	local key = module.generateKey(player)
			
	-- values are instanced
end)

game.Players.PlayerRemoving:Connect(module.saveData)

return module

Second place script to get char data:

local module = require(script.Parent.DataModule)

game.ReplicatedStorage.Remotes.GetData.OnServerEvent:Connect(function(player, decodedData) -- gets fired when player joins the server
	local char = player.Character or player.CharacterAdded:Wait()
	local key = module.generateKey(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)		

	module.loadData(player, decodedData)
	
	if player:WaitForChild("PlayerData").Levels.Value == 1 then
	    print("Start tutorial")
	    game.ReplicatedStorage.Remotes.StartTutorial:FireClient(player)
	end		
	
end)

When the player gets teleported after creating a new file: image1

When the player presses the load game button: image2