local TeleportService = game:GetService("TeleportService")
local AddRoundsDataStore = game:GetService("DataStoreService"):GetDataStore("AddRounds")
local AddWinsDataStore = game:GetService("DataStoreService"):GetDataStore("AddWins")
local SaveCurrency3 = game:GetService("DataStoreService"):GetDataStore("Coins")
local SaveExtraLives = game:GetService("DataStoreService"):GetDataStore("Lives")
local VIPGamepassId = 64418164
game.Players.PlayerAdded:Connect(function(player)
if game.ReplicatedStorage.Tags.Leaderstats.Value == true then
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 previousData = SaveCurrency3:GetAsync(player.UserId)
local Coins
if previousData ~= nil then
Coins = previousData
else
Coins = 0
SaveCurrency3:SetAsync(player.UserId, 0)
end
local CoinsValue = Instance.new("NumberValue", player)
CoinsValue.Name = "Coins"
CoinsValue.Value = Coins
local val1 = Instance.new("StringValue",player)
val1.Name = 'GotPet'
val1.Value = ''
local val2 = Instance.new("StringValue",player)
val2.Name = 'OpenValue'
val2.Value = ''
local previousData2 = SaveExtraLives:GetAsync(player.UserId)
local Lives
if previousData2 ~= nil then
Lives = previousData2
else
Lives = 0
SaveExtraLives:SetAsync(player.UserId, 0)
end
local ExtraLivesValue = Instance.new("NumberValue", player)
ExtraLivesValue.Name = "Lives"
ExtraLivesValue.Value = Lives
if game:GetService("MarketplaceService"):UserOwnsGamePassAsync(player.UserId, VIPGamepassId) then
player.Coins.Value = player.Coins.Value * 2
end
local Rank = Instance.new("StringValue", player)
Rank.Name = "Rank"
Rank.Value = "Classic"
if Rank.Value == "Classic" then
local Shirt = script.Classic:WaitForChild("Shirt"):Clone()
local Pants = script.Classic:WaitForChild("Pants"):Clone()
if (player) and (player.Character) then
for _, Item in pairs(player.Character:GetChildren()) do
if Item:IsA("Shirt") then
Item:Destroy()
Shirt.Parent = player.Character
elseif Item:IsA("Pants") then
Item:Destroy()
end
Shirt.Parent = player.Character
Pants.Parent = player.Character
end
end
end
end
end)
game.Players.PlayerRemoving:Connect(function(player)
if game.ReplicatedStorage.Tags.Leaderstats.Value == true then
AddRoundsDataStore:SetAsync(player.UserId, player.AddRounds.Value)
AddWinsDataStore:SetAsync(player.UserId, player.AddWins.Value)
end
end)
game:BindToClose(function()
print("STOPPED!")
for i,player in pairs(game.Players:GetPlayers()) do
local value = player.Coins.Value
SaveCurrency3:SetAsync(player.UserId, value)
print("Saved data for "..player.Name)
end
end)
game.Players.PlayerRemoving:Connect(function(player)
local value = player.Coins.Value
if value ~= nil then
print("Found data to save for "..player.Name.."!")
SaveCurrency3:SetAsync(player.UserId, value)
print("Saved data for "..player.Name)
else
print("Did not manage to find data to save for "..player.Name.."!")
end
end)
game:BindToClose(function()
print("STOPPED!")
for i, player in pairs(game.Players:GetPlayers()) do
local value2 = player.Lives.Value
SaveExtraLives:SetAsync(player.UserId, value2)
end
end)
game.Players.PlayerRemoving:Connect(function(player)
local value2 = player.Lives.Value
if value2 ~= nil then
print("Found data to save for "..player.Name.."!")
SaveExtraLives:SetAsync(player.UserId, value2)
print("Saved data for "..player.Name)
else
print("Did not manage to find data to save for "..player.Name.."!")
end
end)
game.Players.PlayerAdded:connect(function(player)
player.CharacterAdded:connect(function(char)
char.Humanoid.Died:connect(function()
player.Lives.Value = player.Lives.Value - 1
player.AddRounds.Value = player.AddRounds.Value + 1
end)
end)
end)