local TeleportService = game:GetService("TeleportService")
local SaveRoles = game:GetService("DataStoreService"):GetDataStore("Role")
game.Players.PlayerAdded:Connect(function(player)
local PreviousData = SaveRoles:GetAsync(player.UserId)
local Role
if PreviousData ~= nil then
Role = PreviousData
else
Role = script.Role.Value
SaveRoles:SetAsync(player.UserId, Role)
end
local RoleValue = Instance.new("StringValue", player)
RoleValue.Name = "Role"
RoleValue.Value = Role
player:WaitForChild("Role"):GetPropertyChangedSignal("Value"):Connect(function()
player.Role.Value = player.Role.Value
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)