Here is my script. Obviously there are 18 other if statements.
while true do
wait(5)
m = Instance.new("Message")
local players = game.Players:GetChildren()
-- This was useless
if NumPlayers > 1 then -- What you had it set up.. It would only work only if it generated a 1.
math.random(1,18)
if num==1 then-- Map 1
m.Parent = game.Workspace
m.Text = "Choosing Map..."
wait(3)
m.Text = "Map is 'The Classic Map', made by Anth4598"
wait(3)
m.Text = "This was the first map ever made for Blitz"
wait(3)
m.Text = "The Blitz will keep going until only 1 person remains.(goes for 30 seconds in beta)"
wait(3)
m.Text = "The weapon chosen is a sword."
m.Parent = nil
game.Lighting.Map1:clone().Parent = game.Workspace
for i = 1, # players do
players[i].Character:MoveTo(Vector3.new(-7, 9.8, -4))
game.Lighting.LinkedSword:clone().Parent = players[i].Backpack
end
wait(30)
players[i].Character:MoveTo(Vector3.new(-169, 5.6, 27))
game.Workspace.Map1:Remove()
m.Parent = game.Workspace
m.Text = "Blitz over!"
wait(3)
m.Text = "You have 1 minute until the start of the next Blitz."
wait(3)
m.Parent = nil
m:remove()
end
else -- This below will make it so the script shouldn't break if there is less then 2 players.
m.Text = "Need more then 1 player to start!"
wait(5)
m:Destroy()
Thanks!

1 comment
What's wrong with it? Glancing at that code, I can't see anything bugged. (Also, instead of if-end if-end, use if-elseif-end)