Woops haha, it took me a bit of practise and fine tuning but the M600 command is pretty good, you may need to manually enable it in Marlin though. Then I just slice the model like normal and then manually add "M600" into the G-code right before each layer that I want the colour to change. It pauses at that height and will retract the current filament out (distance it retracts can be changed in marlin) and then it waits for you to notice. You can then change the colour and tell it to start printing again, it will prime the nozzle, let you wipe off the excess and then when you tell it to resume, off it goes. It's a cool way to make a multi-colour print with only 1 extruder, you can see what it looks like in the pics I uploaded to thingi.
But it's just an option, I kinda like that the layers are staggered anyway as you can still see the details even when it is printed in one colour
Awesome

You really shouldn't need anything other than the printer and some filament to get started. The Ender 3 should be more than good enough out of the box that they don't really need upgrades to print well, it's all about nailing down the slicer settings!