So i made this DataStore script and its supposed to save an IntValue and a BoolValue, and for some reason it dosent, how do i fix it? Also note that i want to add at least 20 more BoolValues to it and might have to get a 3rd DataStore, and the script is an edited version of one i made previously so that might be an issue but i dont think so.

The script:

local DataStore = game:GetService("DataStoreService")
local ds1 = DataStore:GetDataStore("CashTest")
local ds2 = DataStore:GetDataStore("CarsTest")
local success, err = pcall(function()

game.Players.PlayerAdded:Connect(function(plr)
	wait(5)

	local Cars = Instance.new("Folder")
	Cars.Name = "OwnedCars"
	Cars.Parent = plr
	
-----------------------------------------------------------------------------------1	
		local Stalion_485 = Instance.new("BoolValue", Cars)
		Stalion_485.Name = "Stalion_485Owned"
		Stalion_485.Value = ds2:GetAsync(plr.UserId.."-Stalion_485", Cars.Stalion_485Owned.Value) or false
	
				
		--game.Players.PlayerRemoving:Connect(function(plr)
		Stalion_485.Changed:connect(function()
		print("Saving")
		wait(0.5)
    	ds2:SetAsync(plr.UserId.."-Stalion_485", Cars.Stalion_485Owned.Value)
		wait(0.5)
		print("Saved")
	end)
end)
---------------------------------------------------------------------------------Cash
game.Players.PlayerAdded:connect(function(player)
	local Cars = player:FindFirstChild("OwnedCars")
	local leader = Instance.new("Folder", player)
	leader.Name = "leaderstats"
	
	local Cash = Instance.new("IntValue", leader)
	Cash.Name = "Cash"
	
	Cash.Value = ds1:GetAsync(player.UserId) or 20000
	ds1:SetAsync(player.UserId.."-cash", Cash.Value)
	--ds2:SetAsync(player.UserId.."-Stalion_485", Cars.Stalion_485Owned.Value)
	
	--wait(5)
	Cash.Changed:connect(function()
		print("SavingData")
		
		
		ds1:SetAsync(player.UserId.."-cash", Cash.Value)
	end)
	
end)

game.Players.PlayerRemoving:connect(function(player)
	
	local SavedData = Instance.new("BindableEvent")
	ds1:setAsync(player.UserId, player.leaderstats.Cash.Value)--Cash
	ds2:setAsync(player.UserId, player.Cars.Stalion_485Owned.Value)--1
	print("SavingData")
	
	SavedData:Fire()

game:BindToClose(function()
    SavedData.Event:Wait()
end)
end)
end)