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)
Did you know that Roblox has a system like this built-in? It's pretty neat.
You can match a spawn block with a team through the properties of the spawn block. Here is a picture of what the settings look like. For example, you can have a spawn block that ONLY red team can use. Furthermore, you can also have a spawn block for ONLY blue team.
In order to do this, change the Neutral
field to false
and change the TeamColor
to the BrickColor
value that you have the team as.
If you want it to be with the same color just insert this into the block-
game.Players.PlayerAdded:Connect(function(plr) plr.CharacterAdded:Connect(function(char) local Team = plr.Team char:MoveTo(game.Workspace:FindFirstChild(Team.Name)) end) end)
This should work, if it doesn't look into the errors by pressing f9.