CCCPaste

My New Wins and Rounds,Coins Horror Friends Lobby 2

local TeleportService = game:GetService("TeleportService")
local SaveCurrency = game:GetService("DataStoreService"):GetDataStore("Wins")
local SaveCurrency2 = game:GetService("DataStoreService"):GetDataStore("Rounds")
local SaveCurrency3 = game:GetService("DataStoreService"):GetDataStore("Coins")
local SaveExtraLives = game:GetService("DataStoreService"):GetDataStore("Lives")

local VIPGamepassId = 94862586

game.Players.PlayerAdded:Connect(function(player)
    if game.ReplicatedStorage.Tags.Leaderstats.Value == true then
        local Folder = Instance.new("Folder",player)
        Folder.Name = "leaderstats"

        local Currency = Instance.new("NumberValue",Folder)
        Currency.Name = game.ReplicatedStorage.Tags.WinsValue.Value
        Currency.Value = SaveCurrency:GetAsync(player.UserId) or 0

        local Currency2 = Instance.new("NumberValue",Folder)
        Currency2.Name = game.ReplicatedStorage.Tags.RoundsValue.Value
        Currency2.Value = SaveCurrency2: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 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
    end
end)

game.Players.PlayerRemoving:Connect(function(player)
    if game.ReplicatedStorage.Tags.Leaderstats.Value == true then	
        SaveCurrency:SetAsync(player.UserId,player.leaderstats[game.ReplicatedStorage.Tags.WinsValue.Value].Value)
        SaveCurrency2:SetAsync(player.UserId,player.leaderstats[game.ReplicatedStorage.Tags.RoundsValue.Value].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)

local teleportData = TeleportService:GetLocalPlayerTeleportData()

if teleportData then
    local Player = game.Players:GetPlayerByUserId(teleportData.PlayerName)
    Player.leaderstats.Wins.Value = Player.leaderstats.Wins.Value + 1
end