NXT2 motors limitation? We are extending famous Dave Parker's nxtprograms.com 2 Touch Remote
I have added 2 extra "threads" - one to control 3rd motor (which is a frontal "claw") and another one to use 4th touch sensor to reverse the robot. Please see screenshot enclosed. The issue we are experiencing is that the robot does not reverse when we press 4th touch sensor, although it does make sound. I am wondering if there's some kind of limitation - eg. you can't control same motors from different threads?
In the middle "thead" all of your motor blocks are "unlimited" or "stop". These blocks change the motor state and immediately continue to the next block. These are inside a loop that loops forever, so these blocks are running continuously in the loop. The motor blocks in the top thread may have an effect for a split second until the middle thread loops again and changes what the motor is doing.

I suggest writing to a variable in the top thread instead of using motor blocks. Then read from that variable in the middle thread. For example, you could use a numeric variable and give it a value of '1' for forwards and -1 for reverse. Then in the middle thread, use a multiply math block to multiply the desired motor speed by the variable to change the direction.

Or, for that matter, you could read the 4th touch sensor value in the middle thread and remove the top thread.