Apparently some variables are not attached to a hook

I cant figure it out but apparently all the ones about see if catch after the see if catch randomizer are not attached to a variable and wont work.

$PlayClock.$PlayClock2(if: $PlayClock2 is 0)[0]

(set: $TestCBCatchup to 30 + $TestWRSpeed - $TestCBSpeed)
(set: $Catchup to (random: 1,100))
(set: $Tackle to (random: 1,100))
(if: $Catch is true)[(if: $TestCBTackle >= $Tackle)][(set: $Tackled to true)]
(set: $AccuratePassChance to (random: 1,100))(if: $TestQBAccuracy >= $AccuratePassChance)[(set: $Accurate to true)](if: $TestQBAccuracy <= $AccuratePassChance)[(set: $InAccurate to true)](set: $OpenChance to (random: 1,100))(if: $TestWROpenChance >= $OpenChance)[(set: $Open to true)](if: $TestWROpenChance <= $OpenChance)[(set: $Open to false)](if: $Open is false)[(set: $CatchChance to $TestWRCatching - $TestCBMan / 1.5)](if: $Open is false)[(set: $SeeIfCatch to (random: 1,100))](if: $Open is true)[(set: $SeeIfCatch to (random: 1,100))](if: $Open is false)[(if: $CatchChance < $SeeIfCatch)][(set: $Catch to false)](if: $Open is false)[(if: $CatchChance >= $SeeIfCatch)][(set: $Catch to true)](if: $Open is true)[(if: $TestWRCatching >= $SeeIfCatch)][(set: $Catch to true)](if: $Open is true)[(if: $TestWRCatching < $SeeIfCatch)][(set: $Catch to false)](if: $Catch is true)[(if: $Catchup <= $TestCBCatchup)][(set: $TackleBattle to true)](if: $Catch is true)[(if: $Catchup > $TestCBCatchup)][(set: $TackleBattle to false)](if: $TackleBattle is true)[(if: $TestCBTackle >= $Tackle)][(set: $Tackled to true)](if: $TackleBattle is true)[(if: $TestCBTackle < $Tackle)][(set: $Tackled to false)](if: $Tackled is false)[(set: $Yards to 100)](if: $Tackled is false)[(set: $Yards to (random: -3, 99))](if: $Catch is true)[It was completed for $Yards yards!](if: $Catch is false)[It was incomplete!](set: $PlayClock2 to $PlayClock2 - (either: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12))(set: $PlayClock2 to $PlayClock2 - 30)(set: $Yards to 0)

(if: $PlayClock2 >= 60)[(set: $PlayClock2 to 59)]
(if: $PlayClock2 < 0)[(set: $PlayClock to $PlayClock - 1)]
(if: $PlayClock2 < 0)[(set: $PlayClock2 to 59)]
(if: $TestCBCatchup > 80)[(set: $TestCBCatchup to 80)]
[[Next Play]]

There are a number of issues with your example:

1: Your (if: $Catch is true) check of the Boolean $Catch variable is unnecessarily using the is keyword operator to determine if the variable’s value equals true. The following examples shows the correct way to check if a Boolean variable is true or false.

(if: $variable)[..the variable currently equals true...]

(if: not $variable)[..the variable currently equals false...](if: not 

2: The same (if:) macro call & its Associated Hook…

(if: $Catch is true)[(if: $TestCBTackle >= $Tackle)][(set: $Tackled to true)]

…has a syntax error, which you can see if you temporarily use line-breaks to reformat the code…

(if: $Catch is true)[
	(if: $TestCBTackle >= $Tackle)
][(set: $Tackled to true)]

…to reveal that the (set:) macro call is outside the Associated Hooks of both the (if:) macros. If I understand the intent of that code correctly you only wanted to update $Tackled if:
a. the current value of $Catch equals true AND
b. the current value of $TestCBTackle is greater than or equal to the current value of $Tackle.

You can use the and keyword join operator to achieve that outcome…

(if: $Catch and $TestCBTackle >= $Tackle)[(set: $Tackled to true)]

3: There is a potential logic issue with the following two (if:) macro calls…

(if: $TestQBAccuracy >= $AccuratePassChance)[(set: $Accurate to true)]
(if: $TestQBAccuracy <= $AccuratePassChance)[(set: $InAccurate to true)]

…if the current value of $TestQBAccuracy equals the current value of $AccuratePassChance then both of the Boolean variables will be set to true.

4: There is a similar potential logic issue with the two (if:) macros calls that are comparing the current value of $TestWROpenChance with that of $OpenChance …

(if: $TestWROpenChance >= $OpenChance)[(set: $Open to true)]
(if: $TestWROpenChance <= $OpenChance)[(set: $Open to false)]

…except in that use-case that value of these two variables being equal will result in the $Open variable first being set to true and then being re-set to false.

5: The sequence of (if:) macro calls that compare the current value of $Open have the syntax issues mentioned in points 1 & 2, as well as using a structure that uses multiple (if:) macro calls when the whole sequence could be simplified to something like the following…

{
(if: $Open)[
	(set: $SeeIfCatch to (random: 1,100))
	(set: $Catch to false)
	(if: $TestWRCatching >= $SeeIfCatch)[
		(set: $Catch to true)
	]
]
(else:)[
	(set: $CatchChance to $TestWRCatching - $TestCBMan / 1.5)
	(set: $SeeIfCatch to (random: 1,100))
	(set: $Catch to false)
	(if: $CatchChance >= $SeeIfCatch)[
		(set: $Catch to true)
	]
]

(set: $TackleBattle to false)
(if: $Catch and $Catchup <= $TestCBCatchup)[
	(set: $TackleBattle to true)
]

(set: $Tackled to false)
(if: $TackleBattle and $TestCBTackle >= $Tackle)[
	(set: $Tackled to true)
]
		
(if: not $Tackled)[
	(set: $Yards to 100)
	(set: $Yards to (random: -3, 99))
]
	
(if: $Catch)[It was completed for $Yards yards!]
(else:)[It was incomplete!]
}

6: Something similar to point 5 can be done to the two instances of (if: $PlayClock2 < 0)

(if: $PlayClock2 < 0)[
	(set: $PlayClock to $PlayClock - 1)
	(set: $PlayClock2 to 59)
]

Thank you so much! This worked perfectly, if only i knew this before.