Ad
Still have questions? Join our Discord server and get real time help.
Log in to vote
0

I have an "infinite Yield" warning, its looking for maps, how do i solve this? [closed]

Asked by 2 months ago

-- Define Variables

local ReplicatedStorage = game:GetService("ReplicatedStorage")

local ServerStorage = game:GetService("ServerStorage")

local MapsFolder = ServerStorage:WaitForChild("Maps")

local Status = ReplicatedStorage:WaitForChild("Status")

local GameLength = 150

local reward = 100

-- Game Loop

while true do

Status.Value = "Waiting for enough players"

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

Status.Value = "Intermisson"

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 = MapsFolder: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

character:FindFirstChild("HumanoidRootPart").CFrame = AvailableSpawnPoints[1].CFrame

table.remove(AvailableSpawnPoints,1)

local Sword = ServerStorage.Sword:Clone()

Sword.Parent = player.Backpack

else

if not player then

table.remove(plrs,i)

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.Robux.Value = plrs[1].leaderstats.Robux.Value + reward

break

elseif #plrs == 0 then

Status.Value = "Nobody won!"

break

elseif i == 0 then

Status.Value = "Time up!"

break

end

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

if character:FindFirstChild("Sword") then

character.Sword:Destroy()

end

end

player:LoadCharacter()

end

ClonedMap:Destroy()

Status.Value = "Game ended"

wait(2)

end

0
You're getting that warning because the script can't find something, and will wait forever until that can be found. You do have something called "Maps" in ServerStorage, right? And is this a script or a localscript? Denny9876 1270 — 2mo
0
Please put this code in a code block. If you're getting that message its because it doesn't exist. Mr_Unlucky 416 — 2mo
0
https://www.youtube.com/watch?v=vCpl5M_9mcQ dont post attempts that isnt yours incapaxx 3107 — 2mo

Closed as Not Constructive by incapaxx

This question has been closed because it is not constructive to others or the asker. Most commonly, questions that are requests with no attempt from the asker to solve their problem will fall into this category.

Why was this question closed?