CCCPaste

Story Game New DataStore Lobby v2

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 VIPGamepassId = 26362066

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 val1 = Instance.new("StringValue",player)
val1.Name = 'GotPet'
val1.Value = ''

local val2 = Instance.new("StringValue",player)
val2.Name = 'OpenValue'
val2.Value = ''

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() -- Runs whenver the server is about to shut down/stop.
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)

local teleportData = TeleportService:GetLocalPlayerTeleportData()

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