I'm literally getting such a headache. Please help me...
local DatastoreService = game:GetService("DataStoreService")
local Datastore = DatastoreService:GetDataStore("ControlDatastore1|4")
function saveData(player)
local shirts = {}
local shirtsEquippedState = {}
local shirtIds = {}
local pants = {}
local pantIds = {}
for _,shirtsOwned in pairs(player.ShirtsFolder:GetChildren()) do
table.insert(shirts,shirtsOwned.Name)
table.insert(shirtsEquippedState,shirtsOwned.IsEquipped.Value)
table.insert(shirtIds,shirtsOwned.ShirtId.Value)
end
for _,pantsOwned in pairs(player.PantsFolder:GetChildren()) do
table.insert(shirts,pantsOwned.Name)
table.insert(shirtIds,pantsOwned.PantId.Value)
end
local success,errorMsg = pcall(function()
Datastore:SetAsync(player.UserId.."-controinsData",player.MiscStats.Controins.Value)
Datastore:SetAsync(player.UserId.."-shirtsData",shirts)
Datastore:SetAsync(player.UserId.."-equippedStateShirts",shirtsEquippedState)
Datastore:SetAsync(player.UserId.."-shirtIdsData",shirtIds)
Datastore:SetAsync(player.UserId.."-pantsData",pants)
Datastore:SetAsync(player.UserId.."-pantsIdsData",pantIds)
end)
end
game.Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(char)
local miscStats = Instance.new("Folder")
miscStats.Name = "MiscStats"
miscStats.Parent = player
local shirtsFolder = Instance.new("Folder")
shirtsFolder.Name = "ShirtsFolder"
shirtsFolder.Parent = player
local pantsFolder = Instance.new("Folder")
pantsFolder.Name = "PantsFolder"
pantsFolder.Parent = player
local controins = Instance.new("NumberValue")
controins.Name = "Controins"
controins.Parent = miscStats
local controinsData,shirtsData,isEquippedStateShirtsData,shirtIdsData,pantsData,pantIdsData
local success,errorMsg = pcall(function()
controinsData = Datastore:GetAsync(player.UserId.."-controinsData")
shirtsData = Datastore:GetAsync(player.UserId.."-shirtsData")
isEquippedStateShirtsData = Datastore:GetAsync(player.UserId.."-equippedStateShirts")
shirtIdsData = Datastore:GetAsync(player.UserId.."-shirtIdsData")
pantsData = Datastore:GetAsync(player.UserId.."-pantsData")
pantIdsData = Datastore:GetAsync(player.UserId.."-pantsIdsData")
end)
if success then
if controinsData then
controins.Value = controinsData
for x = 1,#shirtsData do
local newShirt = Instance.new("StringValue")
newShirt.Name = shirtsData[x]
newShirt.Value = shirtsData[x]
newShirt.Parent = player.ShirtsFolder
local shirtId = Instance.new("NumberValue")
shirtId.Name = "ShirtId"
shirtId.Value = shirtIdsData[x]
shirtId.Parent = newShirt
local isEquipped = Instance.new("BoolValue")
isEquipped.Name = "IsEquipped"
isEquipped.Value = isEquippedStateShirtsData[x]
isEquipped.Parent = newShirt
if isEquipped.Value == true then
local shirt = char:FindFirstChild("Shirt")
if shirt then
shirt:Destroy()
local newClothing = Instance.new("Shirt")
newClothing.Name = "Shirt"
newClothing.ShirtTemplate = "http://www.roblox.com/asset/?id="..shirtId.Value+1
newClothing.Parent = char
end
end
end
for x = 1,#pantsData do
local newPants = Instance.new("StringValue")
newPants.Name = pantsData[x]
newPants.Value = pantsData[x]
newPants.Parent = player.PantsFolder
local pantId = Instance.new("NumberValue")
pantId.Name = "ShirtId"
pantId.Value = pantIdsData[x]
pantId.Parent = newPants
end
else
controins.Value = 25
end
end
end)
end)
game.Players.PlayerRemoving:Connect(function(player)
saveData(player)
end)
game:BindToClose(function()
for _,players in pairs(game.Players:GetPlayers()) do
saveData(players)
end
end)
