this is my code.. for some reason every time i test it, it always times out before resuming ... any help is welcome. :)

--Made by iiMeltex


local roundtime = 60 * 3
local finaletime = 1* 60
local intermissiontime = 15

local serverstorage = game:GetService("ServerStorage")
local replicatedstorage = game:GetService("ReplicatedStorage")
local debris = game:GetService("Debris")
local maps = serverstorage:WaitForChild("Maps")
local mapholder = game.Workspace:WaitForChild("Mapholder")

local event = replicatedstorage:WaitForChild("RemoteEvent")
local statustag = replicatedstorage:WaitForChild("StatusTag")
local timertag = replicatedstorage:WaitForChild("TimerTag")


function awardpoints(player, points)
	if player and points then
		local leaderstats = player.FindFirstChild("leaderstats")
		if leaderstats then
			local pointsvalue = leaderstats:FindFirstChild("Points")
			if pointsvalue then
				pointsvalue.Value = pointsvalue.Value + points 
			end
		end
	end
end
	
	
function newcharacter(deadplayer, character)	
	local humanoid = character:FindFirstChild("Humanoid")
	if humanoid then
		humanoid.Died:connect(function()
			humanoid.WalkSpeed = 16
			humanoid.UnequipTools()
			local backpack = deadplayer:FindFirstChild("Backpack")
			if backpack then
				backpack:ClearAllChildren()
			end
			
			local tag = humanoid:FindFirstChild("creator")
			if tag and tag.Value and tag.Value.Parent  == game.Players then
				if tag.Value == hunter and deadplayer == hunter then
					local wrongdoer = tag.Value
					if wrongdoer.Character  and wrongdoer.Character.Parent then
						local wrongdoerhumanoid  = wrongdoer.Character:FindFirstChild("Humanoid")
						if wrongdoerhumanoid then
							wrongdoerhumanoid.Health = 0
						end
					end
				end	
			end
		end)
	end
end
	
	
function playeradded(player)
	local leaderstats = Instance.new("Model")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = player
	
	local wins = Instance.new("IntValue")
	wins.Name = "Wins"
	wins.Parent = leaderstats
	
	local points = Instance.new("IntValue")
	points.Name = "Points"
	points.Parent = leaderstats
	

	player.CharacterAdded:connect(function(character)
		newcharacter(player, character)
	end)
	if player.Character and player.Character.Parent then
		newcharacter(player, player.character)
	end
end


game.Players.PlayerAdded:connect(playeradded)


for _, player in pairs(game.Players:GetPlayers()) do
	playeradded(player)
end
	
	
while true do	
	while true do
		wait(4)
		contestants = {}
		for _,player in pairs(game.Players:GetPlayers()) do
			if player and player.Character then
				local humanoid = player.Character:WaitForChild("Humanoid")
				if humanoid and humanoid.Health > 0 then
					table.insert(contestants, player)
				end
			end
		end	
		if #contestants >= 3 then
			break
		else	
			statustag.Value = "Waiting For More Players"
			timertag.Value = -1
		end
	end
	
	--load a random map
	statustag.Value = "Loading A Random Map"
	timertag.Value = -1
	mapholder:ClearAllChildren()
	wait(2)
	local allmaps = maps:GetChildren()
	local newmap = allmaps[math.random(1, #allmaps)]:clone()
	newmap.Parent = game.Workspace.Mapholder
	wait(2)
	
	
	statustag.Value = "Match"
	timertag.Value = roundtime
	
	
	--choose hunter
	hunter = contestants[math.random(1, #contestants)]
	
	
	--blur
	
	
	--teleport all contestants
	local spawnsmodel = newmap:WaitForChild("Spawns")
	local spawns = spawnsmodel:GetChildren()
	for _,player in pairs(contestants) do 
		if player and player.Character and #spawns > 0 then
			local torso = player.Character:WaitForChild("Torso")
			local humanoid = player.Character:WaitForChild("Humanoid")
			local spawnindex = math.random(1, #spawns)
			local spawn = spawns[spawnindex]
			if spawn and torso and humanoid then
				humanoid.Health = 100
				humanoid.WalkSpeed = 16
				table.remove(spawns, spawnindex)
				torso.CFrame = CFrame.new(spawn.Position + Vector3.new(0, 3, 0))
				
				local matchtag = Instance.new("StringValue")
				matchtag.Name = "Matchtag"
				matchtag.Parent = player.Character
				
				local backpack = player.FindFirstChild("Backpack")
				if backpack then
					if player == hunter then
						local sword = serverstorage:WaitForChild("Bamboo Katana"):clone()
						sword.Parent = backpack
						local humanoid = player.Character.Humanoid
						humanoid.WalkSpeed = 18
						event:FireClient(player, "Class", "Hunter")
						
					else
						local flashlight = serverstorage:WaitForChild("Flashlight"):clone()
						flashlight.Parent = backpack
						event:FireClient(player, "Class", "Hunted")
					end	
				end
			end
		end
	end
	spawnsmodel:remove()
	
	
	--focus
	
	
	local localtimer = roundtime
	while localtimer > 0 do
		wait(1)
		localtimer = localtimer - 1
		timertag.Value = localtimer
		
		activecontestants = {}
		hunteractive = false
		for _,player in pairs(contestants) do 
			if player then
				local character = player.Character
				if character then
					local matchtag = character:FindFirstChild("Matchtag")
					local humanoid = character:FindFirstChild("Humanoid")
					if matchtag and humanoid and humanoid.Health > 0 then
						if player == hunter then	
							hunteractive = true	
						end				
						table.insert(activecontestants, player)
					end 
				end
			end
		end
		if #activecontestants <= 1 or not hunteractive then
			break
		end
	end 
	
	
	for _,player in pairs(activecontestants) do
		local character = player.Character		
		local matchtag = character:FindFirstChild("Matchtag")
		local humanoid = character:FindFirstChild("Humanoid")
		if player and matchtag and humanoid and humanoid.Health > 0 then
			local backpack = player.FindFirstChild("Backpack")
			local pistol = serverstorage:WaitForChild("Pistol"):clone()
			pistol.Parent = backpack
		end
	end
		
	statustag.Value = "Finale"
	timertag.Value = finaletime	
	
	
	local localtimer = finaletime
	while localtimer > 0 do
		if #activecontestants <= 1 or not hunteractive then
			break
		end		
		wait(1)
		localtimer = localtimer - 1
		timertag.Value = localtimer		
		
		activecontestants = {}
		hunteractive = false
		for _,player in pairs(contestants) do 
			if player then
				local character = player.Character
				if character then
					local matchtag = character:FindFirstChild("Matchtag")
					local humanoid = character:FindFirstChild("Humanoid")
					if matchtag and humanoid and humanoid.Health > 0 then
						if player == hunter then	
							hunteractive = true	
						end				
						table.insert(activecontestants, player)
					end 
				end
			end
		end
	end
	
	
	local gameresults = "PlayersWin"
	if hunteractive then
		if #activecontestants >= 2 then
			event:FireAllClients("Results", "HuntedWin")
		else
			gameresults = "HunterWin"
			event:FireAllClients("Results", "HunterWin")
		end
	else
		event:FireAllClients("Results", "HuntedWin")
	end	
	
	
	for _,player in pairs(activecontestants) do
		if player then
			if gameresults == "HunterWin" and player == hunter then
				awardpoints(player, 10)
			elseif gameresults ~= "HunterWin" and player ~= hunter then
				awardpoints(player, 4)
			end
		end
	end
	
	
	local lobbyspawns = {}
	for _, v in pairs(game.Workspace:WaitForChild("Lobby"):WaitForChild("SpawnPoints"):GetAllChildren()) do
		if v and v.Name == "SpawnLocation" then
			table.insert(lobbyspawns, v)
		end	
	end
	
	for _,player in pairs(activecontestants) do
		if player then
			awardpoints(player, 1)
			if player.Character then
				local humanoid = player.Character:FindFirstChild("Humannoid")
				if humanoid and humanoid.Health > 0 then
					humanoid:UnequipTools()
				end
			end
			local randomspawn = lobbyspawns[math.random(1, #lobbyspawns)]
			player.Character:MoveTo(randomspawn.Position)
			local backpack = player:FindFirstChlid("Backpack")
			if backpack then
				backpack:ClearAllChildren()
			end
		end
	end
	
		
	
	statustag.Value = "Intermission"
	timertag.Value = intermissiontime
	local localtimer = intermissiontime
	while localtimer > 0 do
		wait(1)
		localtimer = localtimer - 1
		timertag.Value = localtimer
	end
	wait(0.01)
end

5 comments

0

What exactly do you mean by time out? I am going to speak on behalf of the Scripting Helpers community that no one will be willing to go through all 309 lines of code to find the one small mistake you made without you giving us a hint as to what exactly is going wrong.

0

At least include the error :/

0

OK so after there are 3 contestants it breaks out of the first while loop in the while loop... but from there it always just says the script stops and my game just dosent execute the rest of the code.

0

Can you add the output to your question

0

wait? like what happens when i run the code/