I have a game, and it includes two teams. There are some values I'm not sure about, but anywho, the game without this first localscript placed in the StarterGUI will not make the entire game work. I received two errors when trying to use a tool where I wanted to clone a GUI.

Errors:

Error

Warning

I also have the scripts that correlate to each.

Error Script:

local tool = script.Parent
local plr = game.Players.LocalPlayer
local gui1 = game.ReplicatedStorage.ControlsGui
local controlsGui = plr.PlayerGui:FindFirstChild("ControlsGui")

tool.Equipped:connect(function()
	tool.rMovement.Disabled=true
	tool.lMovement.Disabled=true
	if plr and tool.Parent:findFirstChild("Humanoid") and not controlsGui then
		controlsGui=gui1:Clone()
		controlsGui.Parent=plr.PlayerGui --considered Line 29
	end
    controlsGui:WaitForChild('TextButton').Visible = true
	if tool.HandValue.Value==1 then
		tool.lMovement.Disabled=false
	else tool.rMovement.Disabled=false 
	end
end)

Warning Script:

local player = game.Players.LocalPlayer
local playerTool = script.Parent
local playerGui = player:WaitForChild('PlayerGui')
local controlGui = playerGui:WaitForChild('ControlsGui')
local txtBttn = controlGui:WaitForChild('TextButton')
local Debounce = true
local Active = false -- Rewritten

local CoolDown = 0.01
function Start()
playerTool.rMovement.Disabled=true
    playerTool.lMovement.Disabled=true
    playerTool.HandValue.Value = 1
        playerTool.GripPos = Vector3.new(0.5, -0.5, -0.3)
        wait(0.01)
        playerTool.GripPos = Vector3.new(0.5, -1, 0)
        wait(0.01)
        playerTool.GripPos = Vector3.new(0.5, -1.5, 0.5)
        wait(0.01)
        playerTool.GripPos = Vector3.new(0.5, -1.5, 1)
        wait(0.01)
        playerTool.GripPos = Vector3.new(0.5, -1.5, 1.5)
        wait(0.01)
        playerTool.GripPos = Vector3.new(0.5, -1, 2)
        wait(0.01)
        playerTool.GripPos = Vector3.new(1, -0.5, 2.5)
        wait(0.01)
        playerTool.GripPos = Vector3.new(1.5, 0, 3)
        wait(0.01)
        playerTool.GripPos = Vector3.new(2, 0.5, 3)
        wait(0.01)
        playerTool.GripPos = Vector3.new(2.5, 1, 3)
        wait(0.01)
        playerTool.GripPos = Vector3.new(3, 1.5, 3)
        wait(0.01)
        playerTool.GripPos = Vector3.new(2.5, 2, 2.5)
        wait(0.01)
        playerTool.GripPos = Vector3.new(2, 2.5, 2)
        wait(0.01)
        playerTool.GripPos = Vector3.new(1.5, 3, 1.5)
        wait(0.01)
        playerTool.GripPos = Vector3.new(1, 3.5, 1)
        wait(0.01)
        playerTool.GripPos = Vector3.new(0.5, 3, 0.5)
        wait(0.01)
        playerTool.GripPos = Vector3.new(0.5, 2.5, 0)
        wait()
    playerTool.lMovement.Disabled=false
end

playerTool.Unequipped:Connect(function()
	if controlGui and controlGui:FindFirstChild('TextButton') then
      -- constantly update it so that it's accurate.
		controlGui.TextButton.Visible = false
	end
end)

txtBttn.MouseButton1Down:connect(function()
    if Debounce then 
    Debounce = false
        Start()
    wait(CoolDown)
    Debounce = true
  end
end)


function onKeyPress(actionName, userInputState, inputObject)
    if userInputState == Enum.UserInputState.Begin then
        if Active and Debounce then
        Debounce = false
            Start()
        wait(CoolDown)
        Debounce = true
    end
    end
end

game.ContextActionService:BindAction("keyPress", onKeyPress, false, Enum.KeyCode.G)

And here's the script that runs the entire game:

PLAYERS=workspace.PLAYERS
player=script.Parent.Parent
gui=game.StarterGui

wait(1)
if player:findFirstChild("inhere") then
	wait()
else
	local d=Instance.new("ObjectValue") --might have an importance due to why the GUI won't show up.
	d.Parent=player
	d.Name="inhere"
	local s=Instance.new("NumberValue")
	s.Parent=player
	s.Name="playernumber"
	gui.AllPoints:clone().Parent=player
	gui.Points:clone().Parent=player
	gui.ShotsA:clone().Parent=player
	gui.ShotsM:clone().Parent=player
	wait()
	if player.TeamColor==BrickColor.new("Bright red") then
		gui.Red:clone().Parent=player.Character.Torso
		if PLAYERS.RED.one.Value~="" then
			if PLAYERS.RED.two.Value~="" then
				if PLAYERS.RED.three.Value~="" then
					if PLAYERS.RED.four.Value~="" then
						wait(1)
					else
						PLAYERS.RED.four.Value=player.Name
						player.playernumber.Value=4
					end
				else
					PLAYERS.RED.three.Value=player.Name
					player.playernumber.Value=3
				end
			else
				PLAYERS.RED.two.Value=player.Name
				player.playernumber.Value=2
			end
		else
			PLAYERS.RED.one.Value=player.Name
			player.playernumber.Value=1
		end
	elseif player.TeamColor==BrickColor.new("Bright blue") then
		gui.Blue:Clone().Parent=player.Character.Torso
		if PLAYERS.BLUE.one.Value~="" then
			if PLAYERS.BLUE.two.Value~="" then
				if PLAYERS.BLUE.three.Value~="" then
					if PLAYERS.BLUE.four.Value~="" then
						wait()
					else
						PLAYERS.BLUE.four.Value=player.Name
						player.playernumber.Value=4
					end
				else
					PLAYERS.BLUE.three.Value=player.Name
					player.playernumber.Value=3
				end
			else
				PLAYERS.BLUE.two.Value=player.Name
				player.playernumber.Value=2
			end
		else
			PLAYERS.BLUE.one.Value=player.Name
			player.playernumber.Value=1
		end
	end
end

If none of these scripts helped, please contact me, I am really in need of fixing this GUI so that it can pop up in-game.

Sincerely, LukeGabrieI aka EnergyBrickz