I have gotten everything working so far just trying to get the player to reset to starter spawn once lives reach zero then reset player lives and stage number. I seem to be caught up on the teleporting back to spawn to begin with. Also this script is in the Workspace and I was wondering if this is only working for the player or for all players who will join.
game.Players.PlayerAdded:Connect(function(plr)
local Stats = Instance.new('Folder')
Stats.Name = 'leaderstats'
Stats.Parent = plr
local Lives = Instance.new('IntValue')
Lives.Name = 'Lives'
Lives.Value = 3
Lives.Parent = Stats
local Stage = Instance.new('IntValue')
Stage.Name = 'Stage'
Stage.Value = 1
Stage.Parent = Stats
local Timer = Instance.new('IntValue')
Timer.Name = 'Time'
Timer.Value = 0
Timer.Parent = Stats
plr.CharacterAdded:Connect(function(char)
char.Humanoid.Died:Connect(function()
Lives.Value = Lives.Value -1
end)
end)
while true do
wait(1)
Timer.Value = Timer.Value +1
end
end)
if Lives.Value == 0 then tpToStart()
end

5 comments
FiredDusk thank you once again the question I ask is would I change the SpawnPart to the name of the spawn?
Yes you would. Make sure that part would be directly in workspace.
Thank you I got it working now I need to change the Stage Value and the Lives value back to default values once I hit zero. I see that the data is under the player data while the game is running under leaderstats so would it be Players.LocalPlayer.leaderstats.Lives?
No, never get the "LocalPlayer" in a server script, it's only used in local scripts. Also, I will edit the script to change the values back.
I edited it.