local TeleportService = game:GetService("TeleportService") local AddRoundsDataStore = game:GetService("DataStoreService"):GetDataStore("AddRounds") local AddWinsDataStore = game:GetService("DataStoreService"):GetDataStore("AddWins") local CoinsDataStore = game:GetService("DataStoreService"):GetDataStore("Coins") local LevelsDataStore = game:GetService("DataStoreService"):GetDataStore("Level") local ExpDataStore = game:GetService("DataStoreService"):GetDataStore("Exp") local VIPGamepass = (267214996) game.Players.PlayerAdded:Connect(function(player) local Folder = Instance.new("Folder", player) Folder.Name = "leaderstats" local AddRounds = Instance.new("NumberValue", player) AddRounds.Name = "AddRounds" AddRounds.Value = AddRoundsDataStore:GetAsync(player.UserId) or 0 local AddWins = Instance.new("NumberValue", player) AddWins.Name = "AddWins" AddWins.Value = AddWinsDataStore:GetAsync(player.UserId) or 0 local Coins = Instance.new("NumberValue", player) Coins.Name = "Coins" Coins.Value = CoinsDataStore:GetAsync(player.UserId) or 0 local Levels = Instance.new("NumberValue", Folder) Levels.Name = "Levels" Levels.Value = LevelsDataStore:GetAsync(player.UserId) or 1 local Exp = Instance.new("NumberValue", Folder) Exp.Name = "Exp" Exp.Value = ExpDataStore:GetAsync(player.UserId) or 0 while wait() do if Exp.Value >= (100 * (Levels.Value + 1)) then Levels.Value = Levels.Value + 1 Exp.Value = 0 end end if game:GetService("MarketplaceService"):UserOwnsGamePassAsync(player.UserId, VIPGamepass) then player.Coins.Value = player.Coins.Value * 2 end end) game.Players.PlayerRemoving:Connect(function(player) AddRoundsDataStore:SetAsync(player.UserId, player.AddRounds.Value) AddWinsDataStore:SetAsync(player.UserId, player.AddWins.Value) CoinsDataStore:SetAsync(player.UserId, player.Coins.Value) LevelsDataStore:SetAsync(player.UserId, player.leaderstats.Levels.Value) ExpDataStore:SetAsync(player.UserId, player.leaderstats.Exp.Value) end) game:BindToClose(function() print("STOPPED!") for i,player in pairs(game.Players:GetPlayers()) do AddRoundsDataStore:SetAsync(player.UserId, player.AddRounds.Value) AddWinsDataStore:SetAsync(player.UserId, player.AddWins.Value) CoinsDataStore:SetAsync(player.UserId, player.Coins.Value) LevelsDataStore:SetAsync(player.UserId, player.leaderstats.Levels.Value) ExpDataStore:SetAsync(player.UserId, player.leaderstats.Exp.Value) print("Saved data for "..player.Name) end end)