Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

Why is "plrs" a unknown global error?????

-- Define variables

local ReplicatedStorage = game:GetService("ReplicatedStorage")

local ServerStorage = game:GetService("ServerStorage")

local MapFolder = ServerStorage:WaitForChild("Maps")

local Status = ReplicatedStorage:WaitForChild("Status")

local GameLength = 60

local reward = 100

-- Game loop

while true do

Status.Value = "Waiting for enough players"

repeat wait(1) until game.Players.NumPlayers >= 2

Status.Value = "Intermission"

wait(10)

local plrs = {}

for i, player in pairs(game.Players:GetPlayers()) do
    if player then 
	    table.insert(plrs,player) -- Add each player into plrs table
    end
end

wait(2)

local AvailableMaps = MapFolder:GetChildren()

local ChosenMap = AvailableMaps[math.random(1,#AvailableMaps)]

Status.Value = ChosenMap.Name.." Chosen"

local ClonedMap = ChosenMap:Clone()
ClonedMap.Parent = workspace

-- Teleport players to the map

local SpawnPoints = ClonedMap:FindFirstChild("SpawnPoints")

if not SpawnPoints then 
	print("SpawnPoints not found!")
end

local AvailableSpawnPoints = SpawnPoints:GetChildren()
    
for i, player in pairs(plrs) do
    if player then
	   character = player.Character
	   
	   if character then
		  -- Teleport them 
		 character:FindFirstChild("HumanoidRootPart").CFrame = AvailableSpawnPoints[1].CFrame
		 table.remove(AvailableSpawnPoints,1)
		 
		
		
		 -- Give them a sword
		
		local Sword = ServerStorage.Sword:Clone()
		Sword.Parent = player.Backpack
		
		local Gametag = Instance.new("BoolValue")
		Gametag.Name ="Gametag"
		Gametag.Parent = player.Character
		
     else
		  -- There is no character 
		  if not player then
			table.remove(plrs,i)
			
		  end
	   end
   end
end

end

Status.Value = "Get ready to play!"

wait(2)

for i = GameLength,0,-1 do

for x, player in pairs(plrs) do
    if player then
	   
	    character = player.Character
	     
	    if not character then 
		  -- Left the game
		else
			if character:FindFirstChild("Gametag") then 
				-- They are still alive
				print(player.Name.." is still in the game!")
			else
				-- They are dead
				table.remove(plrs,x)
			end
		end
	else
		table.remove(plrs,x)
		print(player.Name.."has been removed!")
	end
end

Status.Value = "There are "..i.." seconds remaining, and "..#plrs.."players left"

if #plrs == 1 then
	-- Last person standing
	Status.Value = "The winner is"..plrs[1].Name
	plrs[1].leaderstats.Bucks.Value = plrs[1].leaderstats.Bucks.Value + reward 
	break
elseif #plrs == 0 then
    Status.Value = "Nobody won!"
    break
elseif i == 0 then
	Status.Value = "Times up"
	break
end

wait(1)

end

print("End of game")

for i, player in pairs(game.Players:GetPlayers()) do character = player.Character

if not character then
	-- Ignore them
else
	if character:FindFirstChild("GameTag")then
		character.GameTag:Destroy()
	end
	
	if player.Backpack:FindFirstChild("Sword") then
		player.Backpack.Sword:Destroy()
	end
end

player:LoadCharacter()

end

ClonedMap:Destroy()

Status.Value = "Game has ended"

wait(2)

3 comments

1

lol this is from alvinblox

0

"Attempts should be your own work. Don't take a free model and expect us to fix it.^"

0

go ask alvinblox lol

1 answer

Plrs is a local table in the while true do loop, so you can't run it in a for loop that happens afterward

This discussion is preserved as it was. New answers, comments, and votes are closed.