I'm sure the title says it all, I've been twiddling with this script for a while trying to figure out, trying all sorts of things, to make it save both values but it just won't.
local currencyName = "Rubies" -- Name of currency local maincurrencyName = "Coins" local DataStore = game:GetService("DataStoreService"):GetDataStore("RubiesDataStore") -- How to save amount each player has game.Players.PlayerAdded:Connect(function(player) local folder = Instance.new("Folder") -- Where the data will be stored folder.Name = "leaderstats" folder.Parent = player local currency = Instance.new("IntValue") -- The currency amount currency.Name = currencyName currency.Parent = folder local ID = currencyName.."-"..player.UserId local savedData = nil pcall(function() savedData = DataStore:GetAsync(ID) end) if savedData ~= nil then currency.Value = savedData print("Data Loaded") else -- New player currency.Value = 10 print("New Player") end end) local DataStoreT = game:GetService("DataStoreService"):GetDataStore("CoinsDataStore") -- How to save amount each player has game.Players.PlayerAdded:Connect(function(player) local folder = player:WaitForChild("leaderstats") local maincurrency = Instance.new("IntValue") maincurrency.Name = maincurrencyName maincurrency.Parent = folder local IDT = maincurrencyName.."-"..player.UserId local savedDataT = nil pcall(function() savedDataT = DataStore:GetAsync(IDT) end) if savedDataT ~= nil then maincurrency.Value = savedDataT print("Data Loaded") else -- New player maincurrency.Value = 100 print("New Player") end end) game.Players.PlayerRemoving:Connect(function(player) local ID = currencyName.."-"..player.UserId DataStore:SetAsync(ID,player.leaderstats[currencyName].Value) local IDT = maincurrencyName.."-"..player.UserId DataStoreT:SetAsync(IDT,player.leaderstats[maincurrencyName].Value) end) game:BindToClose(function() -- When game is ready to shutdown for i, player in pairs(game.Players:GetPlayers()) do if player then player:Kick("This game is shutting down") end end wait(5) end)