In order to test script 3, I fed the simulator values corresponding to half joystick throw at various points around a circle and recorded the output values with or without speed scaling, turn scaling and motor compensation. I did this with the 3 GoSubs that assume that the _CIx values read by the program are M1 and M2 (post mixing), and then I did it all again with the other GoSubs that assume that the inputs are THROTTLE and STEER (pre mixing) active.
In the first case (M2/M2) all scaling should affect both motors: speed scaling in the same sense for both, turn scaling in opposite directions for the two motors. Compensation gets independently applied to each motor.
If the inputs are THROTTLE and STEER, speed scaling only affects THROTTLE and turn scaling only affects STEER. To do compensation, the THROTTLE and STEER values are mixed to get M1 and M2 values, compensation is done on those, and then they are un-mixed to get back to the compensated THROTTLE and STEER.
Here's a table of the results. The input values are the cartesion coordinates of the joystick positions. I've hidden the columns that do the trigonometry for this, but if people want the actual spreadsheet I can provide that; both as the original QuattroPro and as an Excel export. I am more a numbers than visual type, but maybe Woody will come up with a way to graph these for those who think visually.

- script 3 testing.jpg (153.76 KiB) Viewed 21972 times
I think that all of these numbers make sense, but would certainly welcome other checking them too.
I'll now upload the script file. As before, it says "zip". After downloading, change that suffix to "mbs" and you will be able to open it in the Roboteq software. I've changed some variable names: for example what was vLeft is now vC1 because "command 1" can be either "left motor" or "throttle" depending on which interpretation of _CIx,1 is chosen. I've added separate forward and reverse turn scaling factors, and tried to make some things a bit more mnemonic so it's easier to read. Happy testing.