For some reason this always fires the "else" portion in lines 89-93. I can't figure out why. I printed out "term.owner.Value" right before this line of code and it prints out "none" which is exactly the condition that should make it fire the first part, not the else part.
Btw, I set the StringValue owner to "none" by default.
timer1 = game.Workspace.Timer1 timer2 = game.Workspace.Timer2 clickable = true term = script.Parent team_color = nil function refresh_term() -- is this needed? end function find_team(color) for i,v in pairs(game.Teams:GetChildren()) do if v.TeamColor == color then return v else -- n/a end end end function cappable(player) if tostring(player.TeamColor) ~= team_color and player.TeamColor ~= "Black" then team_color = tostring(player.TeamColor) return true else return false end end function proper_grammar_lol(team) if tostring(team) == "FEAR" or tostring(team) == "fear" then return "s" else return "" end end function start_timer() end function stop_timer(Owner, capturer) -- needs to go backwards end function cap_term_first_time(team) local gui = game.Workspace.GUIpart.SurfaceGui.Frame.MovingFrame local limit = 350 -- size of underlying frame local i = 0 local pixels = 3.5 -- pixels per .1 second gui.BackgroundColor3 = team.TeamColor.Color while i <= limit do gui.Size = gui.Size + UDim2.new(0, pixels, 0, 0) i = i + pixels wait(.1) end term.owner.Value = tostring(team) timer1.change1.BrickColor = team.TeamColor timer1.change2.BrickColor = team.TeamColor timer1.change3.BrickColor = team.TeamColor timer1.change4.BrickColor = team.TeamColor timer2.change1.BrickColor = team.TeamColor timer2.change2.BrickColor = team.TeamColor timer2.change3.BrickColor = team.TeamColor timer2.change4.BrickColor = team.TeamColor gui.Parent.TextLabel.Text = tostring(team).." own"..proper_grammar_lol(team).." the terminal." gui.Parent.TextLabel.TextColor3 = team.TeamColor.Color end function cap_term(team) local m = Instance.new("Message", workspace) m.Text = "YES" end script.Parent.ClickDetector.MouseClick:connect(function(hit) if clickable == true then clickable = false local player = game.Players:findFirstChild(tostring(hit)) if cappable(player) then if term.owner.Value == "none" then cap_term_first_time(find_team(player.TeamColor)) -- CAP TERM FIRST TIME else cap_term(find_team(player.TeamColor)) -- CAP TERM ANY OTHER TIME end else -- not cappable end else print("nah b") end clickable = true end)