@WillC1991 Two ideas:

Use M226 in your G-code to pause the file at a given position, then swap the mill, and resume, or Set up different tools in config.g, use a blocking M291 dialog in tpostN.g, and use T0/T1/T2 etc. in your G-code file. See https://docs.duet3d.com/en/User_manual/Tuning/Tool_changing and https://docs.duet3d.com/User_manual/Reference/Gcodes#m291-display-message-and-optionally-wait-for-response