I made a script that teleports players when a round starts, the round repeats but after the first round it won’t teleport the players again.
Script
local Part1 = game.Workspace.Part1
local Part2 = game.Workspace.Part2
local Part3 = game.Workspace.Part3
local Part4 = game.Workspace.Part4
local Part5 = game.Workspace.Part5
local Part6 = game.Workspace.Part6
local Part7 = game.Workspace.Part7
local Part8 = game.Workspace.Part8
local Part9 = game.Workspace.Part9
local Part1Event = game.ReplicatedStorage.Part1Event
local Part2Event = game.ReplicatedStorage.Part2Event
local Part3Event = game.ReplicatedStorage.Part3Event
local Part4Event = game.ReplicatedStorage.Part4Event
local Part5Event = game.ReplicatedStorage.Part5Event
local Part6Event = game.ReplicatedStorage.Part6Event
local Part7Event = game.ReplicatedStorage.Part7Event
local Part8Event = game.ReplicatedStorage.Part8Event
local Part9Event = game.ReplicatedStorage.Part9Event
local StartEvent = game.ReplicatedStorage.StartEvent
local times = 3
local roundon = false
function teleport()
for _, v in next, game.Players:GetPlayers() do
v.Character.HumanoidRootPart.CFrame = CFrame.new(-19.647, 12.818, -0.045)
end
end
function teleport2()
for _, v in next, game.Players:GetPlayers() do
v.Character.HumanoidRootPart.CFrame = CFrame.new(-13.997, 43.309, 4.796)
end
end
while roundon == false do
wait()
if roundon == false then
wait(5)
teleport()
roundon = true
StartEvent:Fire()
times = 3
end
end
while true do
wait(5.2)
local randompart = math.random(1,9)
times = times - 1
print(times)
if randompart == 1 then
Part1Event:Fire()
elseif randompart == 2 then
Part2Event:Fire()
elseif randompart == 3 then
Part3Event:Fire()
elseif randompart == 4 then
Part4Event:Fire()
elseif randompart == 5 then
Part5Event:Fire()
elseif randompart == 6 then
Part6Event:Fire()
elseif randompart == 7 then
Part7Event:Fire()
elseif randompart == 8 then
Part8Event:Fire()
elseif randompart == 9 then
Part9Event:Fire()
end
if times == 0 then
wait()
teleport2()
roundon = false
times = 3
end
end
First off, you used :Fire(), rather than :FireServer() or :FireClient() (or :FireAllClients())
Also, to teleport all players, i would do this (USE THIS ONE FOR BEST RESULT AND EFFICIENCY):
local availablespawns = workspace.Spawns:GetChildren() --define this properly, and use :GetChildren() if the spawns are inside a model or folder
for _, player in pairs(game.Players:GetPlayers()) do
local humpart = player.Character.HumanoidRootPart
humpart.CFrame = availablespawns[1].CFrame
table.remove(availablespawns,1)
end
With this, it will teleport all players in the server to a different spawn
You can also do this, if you have already numbered all the spawns:
local spawns = workspace.Spawns --define this properly
local spawnnum = 1
for _, player in pairs(game.Players:GetPlayers()) do
local humpart = player.Character.HumanoidRootPart
local getspawn = spawns:FindFirstChild("Spawn"..spawnnum)
humpart.CFrame = getspawn.CFrame
spawnnum = spawnnum + 1
end
spawnnum = 1
I used :Fire() because it was a bindable event, and I did
local Part1 = game.Workspace.Part1
local Part2 = game.Workspace.Part2
local Part3 = game.Workspace.Part3
local Part4 = game.Workspace.Part4
local Part5 = game.Workspace.Part5
local Part6 = game.Workspace.Part6
local Part7 = game.Workspace.Part7
local Part8 = game.Workspace.Part8
local Part9 = game.Workspace.Part9
local Part1Event = game.ReplicatedStorage.Part1Event
local Part2Event = game.ReplicatedStorage.Part2Event
local Part3Event = game.ReplicatedStorage.Part3Event
local Part4Event = game.ReplicatedStorage.Part4Event
local Part5Event = game.ReplicatedStorage.Part5Event
local Part6Event = game.ReplicatedStorage.Part6Event
local Part7Event = game.ReplicatedStorage.Part7Event
local Part8Event = game.ReplicatedStorage.Part8Event
local Part9Event = game.ReplicatedStorage.Part9Event
local StartEvent = game.ReplicatedStorage.StartEvent
local times = 3
local roundon = false
function teleport()
for _, v in next, game.Players:GetPlayers() do
v.Character.HumanoidRootPart.CFrame = CFrame.new(-19.647, 12.818, -0.045)
end
end
function teleport2()
for _, v in next, game.Players:GetPlayers() do
v.Character.HumanoidRootPart.CFrame = CFrame.new(-13.997, 43.309, 4.796)
end
end
while roundon == false do
wait()
if roundon == false then
wait(5)
local spawns = workspace.GameSpawn
for _, player in pairs(game.Players:GetPlayers()) do
local humpart = player.Character.HumanoidRootPart
humpart.CFrame = spawns.CFrame
end
roundon = true
StartEvent:Fire()
times = 3
end
end
while true do
wait(5.2)
local randompart = math.random(1,9)
times = times - 1
print(times)
if randompart == 1 then
Part1Event:Fire()
elseif randompart == 2 then
Part2Event:Fire()
elseif randompart == 3 then
Part3Event:Fire()
elseif randompart == 4 then
Part4Event:Fire()
elseif randompart == 5 then
Part5Event:Fire()
elseif randompart == 6 then
Part6Event:Fire()
elseif randompart == 7 then
Part7Event:Fire()
elseif randompart == 8 then
Part8Event:Fire()
elseif randompart == 9 then
Part9Event:Fire()
end
if times == 0 then
wait()
local spawns2 = workspace.LobbySpawn
for _, player in pairs(game.Players:GetPlayers()) do
local humpart = player.Character.HumanoidRootPart
humpart.CFrame = spawns2.CFrame
end
roundon = false
times = 3
end
end
and it still wouldn’t teleport, I had to modify it because there was only one spawn
If there’s only 1 spawn, then why do you have all these events?
--For teleporting players to the map:
for _, player in pairs(game.Players:GetPlayers()) do
local humpart = player.Character.HumanoidRootPart
humpart.CFrame = map.Spawn.CFrame --define properly
end
--For teleporting players back to the lobby:
for _, player in pairs(game.Players:GetPlayers()) do
local humpart = player.Character.HumanoidRootPart
humpart.CFrame = lobby.Spawn.CFrame --define properly
end
while true do
wait(5.2)
local randompart = math.random(1,9)
times = times - 1
print(times)
if randompart == 1 then
Part1Event:Fire()
elseif randompart == 2 then
Part2Event:Fire()
elseif randompart == 3 then
Part3Event:Fire()
elseif randompart == 4 then
Part4Event:Fire()
elseif randompart == 5 then
Part5Event:Fire()
elseif randompart == 6 then
Part6Event:Fire()
elseif randompart == 7 then
Part7Event:Fire()
elseif randompart == 8 then
Part8Event:Fire()
elseif randompart == 9 then
Part9Event:Fire()
end