Hi I am Rob and I have been using Roblox Studio for a week.
So basically I have been trying to create a checkpoint system using a StartSpawn and a few Checkpoint blocks. It worked perfectly for all the users who played but one of my friend says that even if touched his current checkpoint, he would still respawn back to the StartSpawn If there is a better way of doing this or some improvements please leave an answer!
My current script (copied it from the "Obby" template by the way):
local spawn = script.Parent
spawn.Touched:connect(function(hit)
if hit and hit.Parent and hit.Parent:FindFirstChild("Humanoid") then
local player = game.Players:GetPlayerFromCharacter(hit.Parent)
local checkpointData = game.ServerStorage:FindFirstChild("CheckpointData")
if not checkpointData then
checkpointData = Instance.new("Model", game.ServerStorage)
checkpointData.Name = "CheckpointData"
end
local checkpoint = checkpointData:FindFirstChild(tostring(player.userId))
if not checkpoint then
checkpoint = Instance.new("ObjectValue", checkpointData)
checkpoint.Name = tostring(player.userId)
player.CharacterAdded:connect(function(character)
wait()
character:WaitForChild("HumanoidRootPart").CFrame = game.ServerStorage.CheckpointData[tostring(player.userId)].Value.CFrame + Vector3.new(0, 4, 0)
end)
end
checkpoint.Value = spawn
end
end)

3 comments
Hmm I have tried that before but sometimes it is a little buggy because whenever I test it Teams always mess up and etc.
And also if you do that over and over it gets kinda boring and also you might run out of colors in the palette
@robthepoop123 Can you tell me what you mean by buggy? I've used it and have found it perfect for what I need, you just need to set it up correctly. Also, the color palette is HUGE. If you do somehow manage to have that many teams, then spawnpoints are the least of your worries.