I think I understand how to do a filament change now with Sailfish on a QiDi under S3D. The M322 command works, but you have to define the Z height where the change is to occur, and insert the "M322 Z2.0" command before that layer is printed.

For example, plugging the M322 Z2.0 command as the last line of the starting script would cause the print process to pause at 2.0mm. Further, if multiple pauses were required then multiple M322 Zx.y commands may be inserted, but they must be placed at the correct locations within the print file.

The REPLACE command sequence works well for that process when placed in the post processing field. For example, assuming a .2 layer height, to change filament at 1.0 and 2.0 into the print the following post processing commands would suffice:

{REPLACE "; layer 2" "M322 z1.0\n; layer 2"}
{REPLACE "; layer 6" "M322 z2.0\n; layer 6"}

This is with the QiDi Tech dual extruder flavor printer. I have no info about the X-one.