CCCPaste

My New Wins, Rounds, Roles In Story Game Main

local DatastoreService = game:GetService("DataStoreService")
local TeleportService = game:GetService("TeleportService")
local dVersion = 1

local VIP = 64418164

local WinsSave = DatastoreService:GetDataStore("Wins "..dVersion)

game.Players.PlayerAdded:Connect(function(player)
	local previousData = WinsSave:GetAsync(player.UserId) -- Returns a number value.

	local Wins

	if previousData ~= nil then
		Wins = previousData
	else
		Wins = 0
		WinsSave:SetAsync(player.UserId, 0)
	end

	local WinsValue = Instance.new("IntValue", player)
	WinsValue.Name = "Wins"
	WinsValue.Value = Wins

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.Wins.Value
		WinsSave:SetAsync(player.UserId, value)
		print("Saved data for "..player.Name)
	end
end)

game.Players.PlayerRemoving:Connect(function(player)
	local value = player.Wins.Value

	if value ~= nil then
		print("Found data to save for "..player.Name.."!")
		WinsSave: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 RoundsSave = DatastoreService:GetDataStore("Rounds "..dVersion)

game.Players.PlayerAdded:Connect(function(player)
	local previousData = RoundsSave:GetAsync(player.UserId) -- Returns a number value.

	local Rounds

	if previousData ~= nil then
		Rounds = previousData
	else
		Rounds = 0
		RoundsSave:SetAsync(player.UserId, 0)
	end

	local RoundsValue = Instance.new("IntValue", player)
	RoundsValue.Name = "Rounds"
	RoundsValue.Value = Rounds

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.Rounds.Value
		WinsSave:SetAsync(player.UserId, value)
		print("Saved data for "..player.Name)
	end
end)

game.Players.PlayerRemoving:Connect(function(player)
	local value = player.Rounds.Value

	if value ~= nil then
		print("Found data to save for "..player.Name.."!")
		WinsSave: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 LivesSave = DatastoreService:GetDataStore("Lives "..dVersion)

game.Players.PlayerAdded:Connect(function(player)
	local previousData = LivesSave:GetAsync(player.UserId) -- Returns a number value.

	local Lives

	if previousData ~= nil then
		Lives = previousData
	else
		Lives = 0
		LivesSave:SetAsync(player.UserId, 0)
	end

	local LivesValue = Instance.new("IntValue", player)
	LivesValue.Name = "Lives"
	LivesValue.Value = Lives

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.Lives.Value
		LivesSave:SetAsync(player.UserId, value)
		print("Saved data for "..player.Name)
	end
end)

game.Players.PlayerRemoving:Connect(function(player)
	local value = player.Lives.Value

	if value ~= nil then
		print("Found data to save for "..player.Name.."!")
		LivesSave: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 CoinsSave = DatastoreService:GetDataStore("Coins "..dVersion)

game.Players.PlayerAdded:Connect(function(player)
	local previousData = CoinsSave:GetAsync(player.UserId) -- Returns a number value.

	local Coins

	if previousData ~= nil then
		Coins = previousData
	else
		Coins = 0
		CoinsSave:SetAsync(player.UserId, 0)
	end

	local coinsValue = Instance.new("IntValue", 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, VIP) then
		player.Coins.Value = player.Coins.Value * 2
	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
		CoinsSave: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.."!")
		CoinsSave: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 SaveRoles = game:GetService("DataStoreService"):GetDataStore("Role")

game.Players.PlayerAdded:Connect(function(player)

	local  Role = Instance.new("StringValue", player)
	Role.Name = "Role"
	Role.Value = player.Role.Value

	if player:WaitForChild("Role").Value >= "Default" then
		player:WaitForChild("Role").Value = "Default"
	elseif player:WaitForChild("Role").Value == "Athlete" then
		player:WaitForChild("Role").Value = "Athlete"
	elseif player:WaitForChild("Role").Value == "Super Protector" then
		player:WaitForChild("Role").Value = "Super Protector"
	elseif player:WaitForChild("Role").Value == "Delivery" then
		player:WaitForChild("Role").Value = "Delivery"
		game.ServerStorage.SavedTools:WaitForChild("PizzaBox"):Clone().Parent = player.Backpack
	end

end)

game:BindToClose(function()
	for i,player in pairs(game.Players:GetPlayers()) do
		local value = player.Role.Value
		SaveRoles:SetAsync(player.UserId, value)
		print("Saved data for "..player.Name)
	end
end)

game.Players.PlayerRemoving:Connect(function(player)
	local value = player.Role.Value

	if value ~= nil then
		print("Found data to save for "..player.Name.."!")
		SaveRoles: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.Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(Char)

		Char.Humanoid.Died:Connect(function()

			player.Rounds.Value = player.Rounds.Value + 1

		end)
	end)
end)