So, basically I have a loading menu game where I can Choose either to play games, or to edit character and when you load into any of the games, it would load the players stuff in the menu next time you join and be able to load into any of the game choices.

So, here's the data Loading Script that I use, and my game is FE so I have to use a RemoteEvent to save my player's data, even though im not using Values, im using a Module Script.

local ds = game:GetService("DataStoreService"):GetDataStore("CustomizeCharacter")

game.Players.PlayerAdded:connect(function(player)
	local key = "player_"..player.UserId
	local data = ds:GetAsync(key)
	local backpack = player:WaitForChild("Backpack")
	local toSave = require(backpack:WaitForChild("toSave"))
	if not data then
		toSave.hair = 1
		toSave.skin = 1
		toSave.face = 1
		toSave.pants = 1
		toSave.shirts = 1
		local save = { toSave.hair, toSave.skin, toSave.face, toSave.pants, toSave.shirts }
		ds:SetAsync(key, save)
	end
	--print(data[1].."....."..data[2].."....."..data[3].."....."..data[4].."....."..data[5])
end)

While here's my data Saving Script that uses the Remove Event.

local ds = game:GetService("DataStoreService"):GetDataStore("CustomizeCharacter")
local rstorage = game:GetService("ReplicatedStorage"):WaitForChild("Events")
local event = rstorage:WaitForChild("Save")

event.OnServerEvent:connect(function(player, hair, skin, face, pants, shirts)
	local key = "player_"..player.UserId
	local save = { hair, skin, face, pants, shirts }
	ds:SetAsync(key, save)
end)

There's no errors outputed, it just doesnt load my characters Data, and I don't know if I should convert this into Values instead of just using a Module Script. The LocalScript that Fires the Event to fire the Save script is located inside the StarterPack,

local player = game.Players.LocalPlayer
local toSave = require(player:WaitForChild("Backpack"):WaitForChild("toSave"))
local rstorage = game:GetService("ReplicatedStorage"):WaitForChild("Events")
local event = rstorage:WaitForChild("Save")
local button = player:WaitForChild("PlayerGui"):WaitForChild("PlayerCreator"):WaitForChild("Customize"):WaitForChild("Done")
local playbutton = player:WaitForChild("PlayerGui"):WaitForChild("choiceUI"):WaitForChild("yesframe"):WaitForChild("TextButton")

button.MouseButton1Down:connect(function()
	print('Saving Data..')
	event:FireServer(toSave.hair, toSave.skin, toSave.face, toSave.pants, toSave.shirts)
	wait(.5)
	print('Saved Data')
end)


playbutton.MouseButton1Down:connect(function()
	print('Saving Data..')
	event:FireServer(toSave.hair, toSave.skin, toSave.face, toSave.pants, toSave.shirts)
	wait(.5)
	print('Saved Data')
end)

While my StarterPack Saving Values script is named toSave, which is a Module Script:

local toSave = {}

toSave.hair = 1
toSave.skin = 1
toSave.face = 1
toSave.pants = 1
toSave.shirts = 1

return toSave

I really dont understand why it doesn't load my characters Clothing Data, or Accessories (Hair, Faces, Shirts, Pants, SkinColor)