Here is my script: It all works smoothly until line 103. ScriptAnalysis has found no problems with it. I'm pretty sure the problem is with the variables, but I'm not certain. Help?
script.Parent.Disabled = true local playerstorage = game:GetService("Players") local storage = game:GetService("ServerStorage") local guifolder = storage.Guis local players = {} local holder = game.Workspace:WaitForChild("MapHolder") local maps = game.Lighting:WaitForChild("Maps") local message = game.Lighting.Message local roundtime = 60 * 5 for _, player in pairs(game.Players:GetPlayers()) do local humanoid = player.Character:WaitForChild("Humanoid") if humanoid and humanoid.Health > 0 then table.insert(players, player) end end message.Value = "Map Being Chosen..." holder:ClearAllChildren() wait(2) local allmaps = maps:GetChildren() local newmap = allmaps[math.random(1, #allmaps)] newmap:Clone().Parent = holder print 'Map put!' wait(2) -- Tell players the map! if (holder:FindFirstChild("Warehouse")) then message.Value = "Map Chosen: Space Warehouse" wait(5) end -- Alien Only! local alien = table.remove(players, math.random(#players)) local alieng = guifolder.Alien local alieng2 = alieng:Clone() alieng2.Parent = alien.PlayerGui for _, player in pairs(players) do -- only into non-aliens! print(player) guifolder.Soldier:Clone().Parent = player.PlayerGui end -- TP the players! for _, player in pairs(game.Players:GetPlayers()) do local humanoid = player.Character:WaitForChild("Humanoid") if humanoid and humanoid.Health > 0 then table.insert(players, player) end end local spawnmodel = newmap:WaitForChild("Spawns") local spawns = spawnmodel:GetChildren() for _, player in pairs(players) do if player and player.Character and #spawns > 0 then local Torso = player.Character:WaitForChild("Torso") local spawnindex = math.random(1, #spawns) local spawn = spawns[spawnindex] if spawn and Torso then table.remove(spawns, spawnindex) Torso.CFrame = CFrame.new(spawn.Position + Vector3.new(0, 3, 0)) local activetag = Instance.new("StringValue") activetag.Name = "activetag" activetag.Parent = player.Character end end end message.Value = "Round In Progress" -- TIMER local localtimer = roundtime while localtimer > 0 do wait(1) localtimer = localtimer - 1 message.Value = "Round Time Left: (" .. localtimer .. ")" activeplayers = {} alienactive = false local player = math.random(1, #players) for _, players in pairs(players) do if player then local character = player.Character if character then local activetag = character:FindFirstChild("activetag") local humanoid = character:FindFirstChild("Humanoid") if activetag and humanoid and humanoid.Health > 0 then alienactive = true end table.insert(activeplayers, player) break end end if #activeplayers <=1 or not alienactive then break end end end local gameresults = "The Alien Lost!" if alienactive then if #players > 2 then --alien failed! message.Value = gameresult else gameresult = "The Alien Has Killed Everybody!" message.Value = gameresult end else --Alien Captured end --TP THEM BACK!!! local lobbyspawns = {} local lobby = game.Workspace.Lobby for _, v in pairs(game.Workspace:WaitForChild("Lobby")) do if v and v.Name == "spawn" then table.insert(lobbyspawns, v) end end for _, player in pairs(activeplayers) do if player then if player.Character then local humanoid = player.Character.Humanoid if humanoid then humanoid:UnequipTools() end end local randomspawn = lobbyspawns[math.random(1, #lobbyspawns)] player.Character:MoveTo(randomspawn.Position) local backpack = player:FindFirstChild("Backpack") if backpack then backpack:ClearAllChildren() end end end script.Parent.Disabled = false script.Disabled = true