In the case of many spawnlocation.
I want respawn at the nearest one ,without random .
How to make it?
Inside of a Humanoid.Died function, it would look something like this.
local function distanceBetween(p1, p2)
return (p1.Position - p2.Position).Magnitude
end
local distances = {}
for _,spawn in pairs(spawnsFolder:GetChildren()) do
distance[spawn] = distanceBetween(head, spawn)
end
local closestSpawn = nil
local currentClosestDistance = 1e6
for spawn,distance in pairs(distances) do
if distance <= currentClosestDistance then
closestSpawn = spawn
currentClosestDistance = distance
end
end
if closestSpawn and closestSpawn:IsA("SpawnLocation") then
player.SpawnLocation = closestSpawn
end
Then in a .CharacterAdded event you’d reset their SpawnLocation property. This logic should work, although untested and if you just paste this code into a script it won’t work. This is more just the pseudo-code.
1 Like
Thank you very much for helping me.
Player.RespawnLocation is the key point.
And I found this setting is valid on server side only.