So i tried another method of doing this which i was doing in the following question but it STILL won't save if people find out about this it will crash the games entire economy, here is my script.
local DataStore = game:GetService("DataStoreService")
local ds = DataStore:GetDataStore("BoolSave")
game.Players.PlayerAdded:connect(function(player)
local bool = Instance.new("BoolValue")
bool.Parent = player
bool.Name = "Used1"
bool.value = false
bool.Value = ds:GetAsync(player.UserId) or false
ds:SetAsync(player.UserId, bool.Value)
end)
game.Players.PlayerRemoving:connect(function(player)
ds:SetAsync(player.UserId, player.Used1.Value)
end)

4 comments
Legit though it is a code and if people find out that you can use it infinitely when you rejoin they'll ruin the game and i might have to wipe some peoples data
I've tried making this script before and I've never been able to fix it. If someone posts a solution, that would be extremely helpful :)
There is an error on line 08. You used a lower case v for Value. Now im not sure if that will fix it all, but that's an error there
@DarkDanny Hawk-eyed, I missed that lower case v