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

Is my source code wrong? my Sword fighting game is stuck on intermission.

here is the source code my sword fighting game is stuck on Intermission the source code is down below i hope to get this fixed.




local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerStorage = game:GetService("ServerStorage")
local MapsFolder = ServerStorage:WaitForChild("Maps")
local Status = ReplicatedStorage:WaitForChild("Status")
local GameLength = 100

while true do
	Status.Value = "Waiting for more people"
	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)
	end
	end
	wait(2)
	local AvailableMaps = MapsFolder:GetChildern()
	local ChosenMap = AvailableMaps[math.random(1)]
	
	Status.Value =  ChosenMap.Name.." Chosen"
	local ClonedMap = ChosenMap:Clone()
	ClonedMap.Parent = workspace
	
	local SpawnPoints = ClonedMap:FindFirstChild("SpawnPoints")
	if not SpawnPoints then
	print("SpawnPoints AM!")
	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.backback
			local GameTag = Instance.new ("BoolValue")
			GameTag.Name = "GameTag"
			GameTag.Parent = player.Character
			else
				if not player then
					table.remove(plrs,i)
				end
			end
		end
		
	end
	
	Status.Value = "Get Ready To fight!"
	wait(2)
	for i = GameLength,0,-1 do
		for i, player in pairs(plrs) do
			if player then
				character = player.Character
				if not character then
				else
					if character:FindFirstChild("GameTag") then
						print (player.Name.."is still in the game")
					else
						table.remove(plrs,x)
							print(player.Name.."has been removed")
					end
				end
			else
				table.remove(plrs,x)
				print(player.Name.."has been removed")
			end
		end
		Status.Value = "There are "..i.."seconds remaining, and"..#plrs.."people left"
		
		if #plrs == 1 then
			Status.Value = "The Winner is"..plrs[1].Name
			plrs[1].leaderstats.wins.value = plrs[1].leaderstats.wins.Value + reward
			break
		elseif #plrs == 0 then
			Status.Value = "No one has survived and nobody won!"
			break
		elseif i == 0 then
			Status.value = "Time is up and nobody has won!"
			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
			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 = "This game has Ended"
wait (2)
end

3 comments

0

I hope this will help if not then i can help you with more info about this

0

It'll help if you post any errors

3 answers

Just change :GetChildern() on line 19 to :GetChildren().

3 comments

0

this could've been a comment anyways

0

we were talking on community chat and I solved it for him and wanted to post an answer here

0

Thank you soo much! I had the same problem and you fixed it!

I will try and see if I can help. So, I have this food fighting game I am working on, but the round system isn't finished yet. So I have a working Gui that displays the game status, and here is how I do it. I have a sting value in replicated storage and another script that checks to see what the string in the string value is and puts it on a gui. so this is what my intermission is like:

--Update the RoundStatus with new data of how the round is going and manage the rounds
local RoundStatus = game.ReplicatedStorage:WaitForChild("RoundStatus")
	local IntermissionTime = 45
	for i = 1, 45 do
		RoundStatus.Value = "Intermission "..IntermissionTime
		IntermissionTime = IntermissionTime - 1
		wait(1)
	end 
     while wait(1) do
        if #game.Players:GetPlayers() > 0 then
	        break
        else RoundStatus.Value = "Need "..(2 - #game.Players:GetPlayers()).." more players to start the round."
        end
    end

you could edit this code sample to make a very simple intermission and add everything else to it. If it doesn't work, please just comment and don't downvote me. I only have 91 reputation and am on a good track for it.

add

local reward = whatever amount of bucks you want to give to the play who wins

also change ":GetChildern()"":GetChildren() on line 19"

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