I am using the Obby checkpoint script made by Roblox (with some minor tweaks.) I find that when I die, the script is very unreliable. Sometimes, I will spawn at the SpawnLocation, and sometimes I will spawn at the correct checkpoint. Plz help.
Script:
local Players = game:GetService("Players") local ServerStorage = game:GetService("ServerStorage") local checkpoint = script.Parent function onTouched(hit) wait() if hit and hit.Parent and hit.Parent:FindFirstChildOfClass("Humanoid") then local player = Players:GetPlayerFromCharacter(hit.Parent) local checkpointData = ServerStorage:FindFirstChild("CheckpointData") if not checkpointData then checkpointData = Instance.new("Folder") checkpointData.Name = "CheckpointData" checkpointData.Parent = ServerStorage end local userIdString = tostring(player.UserId) local checkpointValue = checkpointData:FindFirstChild(userIdString) if not checkpointValue then checkpointValue = Instance.new("ObjectValue") checkpointValue.Name = userIdString checkpointValue.Parent = checkpointData player.CharacterAdded:connect(function(character) wait() local storedCheckpoint = ServerStorage.CheckpointData[userIdString].Value character:MoveTo(storedCheckpoint.Position + Vector3.new(math.random(-2, 2), 2, math.random(-2, 2))) end) end checkpointValue.Value = checkpoint end end checkpoint.Touched:Connect(onTouched)
I am losing players on my game because of this. How can I make it more reliable, making the player spawn at the correct checkpoint 100% of the time?