Help With Sword Fighting Script

I’m quite new to scripting and has run into a problem with my current script.

Status.Value = "Waiting for more players"

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

Status.Value = "Intermission"

wait(15)

local plrs = {}

for i, player in pairs (game.Players:GetPlayers()) do
	if player then
		table.insert(plrs,player) -- Adding each player into plrs
	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 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 not 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


Status.Value = "Get ready to fight!"

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 game
			else
				if character:FindFirstChilld("GameTag") then
					-- They are still alive
					print(player.Name.." is still in the game!")
				else
					--they are dead
					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 = "The are "..i.." seconds remaining to right, and "..plrs.." players left"
	
	if #plrs == 1 then
		-- Last person standing
		Status.Value = "The winner is "..plrs[1].Name
		plrs[1].leaderstats.Coins.Value = plrs[1].leaderstats.Coins.Value + reward
		break
	elseif #plrs == 0 then
		Status.Value "Nobody has 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
		
		if character:FindFirstChild("Sword") then
			character.Sword:Destroy()
			
		end	
		
		
	end	
	
	player:LoadCharacter()	
end

ClonedMap:Destory()

Status.Value "Game is finished."

wait(2)

What happens: One person gets teleported, then it says “FightMaping Chosen” for the whole time.

What should happen: Both peoples should get teleported and also spawn with a sword, there will also be a count down and a players remaining.

Here is a screenshot of the problem.

Thanks for reading and investing you time into this post!

You don’t include the script where it says fightmap chosen.

1 Like

What do you mean by this, please explain more??

Where is the script that makes the text “Fightingmap chosen”

local AvailableMaps = MapsFolder:GetChildren()

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

Status.Value = ChosenMap.Name… " Chosen"

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

It should randomly pick a map.