ArduSub’s flight modes are set up around a motion-direction abstraction, where they specify thrust components for forward, lateral, roll, etc, and the underlying motors code handles the conversion into individual motor outputs. Having looked at the relevant motors code, you would presumably need to override output_armed_stabilizing (where the final thrust output for each motor is stored as a -1 to 1 float in the _thrust_rpyt_out array), but it may be quite involved to try to make that swappable via a flight mode, since that’s not how the other flight modes operate.