I don't know what is going on, but it's extremely annoying.
potentialSpawns = workspace.map.Spawns:GetChildren()
game.Workspace.Variables.HeaderText.Value = "Game starting in 5 seconds..."
for _, player in pairs(game.Players:GetPlayers()) do
torso = player.Character:FindFirstChild("Torso")
if torso then
player.TeamColor = BrickColor.new("Black")
index = math.random(#potentialSpawns)
-- give table.remove an index, and it gives you what WAS there
-- and simultaneously removes it:
randomSpawn = table.remove(potentialSpawns, index)
-- since you can't repeat spawns, no need for that i*5
torso.CFrame = CFrame.new(randomSpawn.Position + Vector3.new(0, 5, 0))
torso.Anchored = true
end
end
wait(5)
for _, player in pairs(game.Players:GetPlayers()) do
local plrwep = player.Equiped.Value
local plrknife = game.ReplicatedStorage.Knives:FindFirstChild(plrwep)
if plrknife then
local knifetogive = plrknife:Clone()
knifetogive.Parent = player.Backpack
end
torso = player.Character:FindFirstChild("Torso")
if torso then
torso.Anchored = false
end
end
What this does is pick out a random one of 8 spawns on the map (and makes sure that each spawn only gets one player), then it teleports the player there, waits 5 seconds, then unanchors their torso and gives them their weapon, however some weird issues are happening with this
This works fine in Simulation test, but when I try a client and server test, it doesn't work. All the players teleport on the server side, but on the client side, they're still in the lobby. Then, the time they get their weapons, everyone is in the lobby, both client and server side.
I don't know why this is happening, but some help would be very appreciated.

2 comments
What kind of script(s) are you using?
It's just a regular script in the Workspace