So it prints everything. It doesn't give off any errors.
dss = game:GetService("DataStoreService")
outfits = dss:GetDataStore("ECWWOutfits")
hats = dss:GetDataStore("ECWWHats")
money = dss:GetDataStore("ECWWMoney")
game.Players.PlayerAdded:Connect(function(plr)
print("nice")
local scope = "emotion-".. plr.UserId
local plrfolder = game.ReplicatedStorage:WaitForChild(scope)
plrfolder.Money.Value = money:GetAsync(scope)
local outfits_table = outfits:GetAsync(scope)
local hats_table = outfits:GetAsync(scope)
print(outfits_table[1])
for x=1,12 do
print("cool")
plrfolder.Outfits["Slot"..x].Value = outfits_table[x]
end
for x=1,12 do
print("epic")
plrfolder.Hats["Slot"..x].Value = hats_table[x]
end
end)
script.Parent.SaveGame.OnServerEvent:Connect(function(plr)
print("radical")
local scope = "emotion-".. plr.UserId
local plrfolder = game.ReplicatedStorage[scope]
money:SetAsync(scope,plrfolder.Money.Value)
local outfits_table = {plrfolder.Outfits.Slot1.Value,
plrfolder.Outfits.Slot2.Value,
plrfolder.Outfits.Slot3.Value,
plrfolder.Outfits.Slot4.Value,
plrfolder.Outfits.Slot5.Value,
plrfolder.Outfits.Slot6.Value,
plrfolder.Outfits.Slot7.Value,
plrfolder.Outfits.Slot8.Value,
plrfolder.Outfits.Slot9.Value,
plrfolder.Outfits.Slot10.Value,
plrfolder.Outfits.Slot11.Value,
plrfolder.Outfits.Slot12.Value}
local hats_table = {plrfolder.Hats.Slot1.Value,
plrfolder.Hats.Slot2.Value,
plrfolder.Hats.Slot3.Value,
plrfolder.Hats.Slot4.Value,
plrfolder.Hats.Slot5.Value,
plrfolder.Hats.Slot6.Value,
plrfolder.Hats.Slot7.Value,
plrfolder.Hats.Slot8.Value,
plrfolder.Hats.Slot9.Value,
plrfolder.Hats.Slot10.Value,
plrfolder.Hats.Slot11.Value,
plrfolder.Hats.Slot12.Value}
outfits:SetAsync(scope,outfits_table)
hats:SetAsync(scope,hats_table)
print("super")
end)

2 comments
I would use one datastore instead of 3
not sure can you point out what you are doing in your script