3D print text
in a different colour
The simplest way to print text in a different colour is raised letters on a plate plus one filament change at the layer where the letters start. It works on any FDM printer and takes about a minute. With an AMS or MMU, a 3MF with two colour slots does the swap for you.
By Philipp Baldauf · Updated September 29, 2026
The idea: split the colours by height
A single-nozzle printer can only print one colour at a time, but it prints layer by layer. So if the background sits in the lower layers and the text in the upper layers, you only need to swap filament once. That is what raised text on a plate gives you: a plate about 2.5 mm high in colour A, then 1 mm or more of letters on top in colour B.
Text in the same layers as the background (a flat sign where the letters are flush) is a different job. It needs a colour swap on every layer, which only makes sense with an AMS, MMU or tool changer. Designing the text as raised letters avoids that problem on any printer.
Five ways to get coloured text, compared
Times are typical for a keychain or a small sign on a Bambu A1 mini or similar printer.
| Method | Printer needed | Extra time | Waste | Result | Best for |
|---|---|---|---|---|---|
| AMS or MMU with a 3MF (2 slots assigned) | Multi-material unit | 1 to 2 min per swap | About 1 g purge per swap | Clean, repeatable | Many prints, sellers, any design |
| Pause at height or filament change | Any printer | 1 minute of your time | None | Clean, sharp colour line | Raised text on a plate, one-offs and small batches |
| Painting raised text | Any printer | 5 to 15 minutes | None | Good with a steady hand | Small text, several colours, fixing a print |
| Paint marker or pen | Any printer | 2 to 5 minutes | None | OK, can rub off | Quick one-offs, engraved text |
| Inlay (separate letters glued in) | Any printer | 10 to 20 minutes | None | Very clean, flush text | Coasters, signs with flush lettering |
Purge amounts depend on your flush settings and colours. Dark to light needs more purge than light to dark.
Design a two-colour name
In the 3MF, the letters and the plate sit on separate filament slots. Bambu Studio and OrcaSlicer open it with two colours already assigned.
With an AMS or MMU: open the 3MF and print
NameSTL exports a 3MF where the letters and the plate are separate parts on separate filament slots. Open it in Bambu Studio or OrcaSlicer and both colours are already assigned, so you only check that slot 1 and slot 2 hold the filaments you want, then slice.
Because the plate and the letters are in different layers, the AMS swaps only once per print. That keeps the purge to about a gram, compared with the hundreds of swaps a flat multi-colour logo can need. On a plate full of keychains, all of them switch at the same layer, so ten tags cost one swap, not ten.
With an STL instead, you get one merged mesh with no colour information. You can still print it in two colours with a filament change at a layer, which is the next section.
Pause at height, step by step
This works on every printer and slicer. The example uses a NameSTL outline sign at the default settings, where the plate ends at 2.5 mm.
- 1
Scale first, then find the swap height
Set the final size in the slicer before anything else, since scaling changes the plate height too. In NameSTL outline and keychain files the plate ends at 2.5 mm when the Thickness setting is 5 mm or less: a 2 mm plate plus 0.5 mm that reaches up into the letters so both fuse into one solid. Above 5 mm Thickness it ends at 40% of the Thickness plus 0.5 mm (4.5 mm at 10 mm). Scale only X and Y and these heights stay valid; scale Z and they scale with it.
- 2
Slice and open the layer slider
Drag the layer slider up until the plate ends and only letters are left. With the plate ending at 2.5 mm, that is about layer 13 or 14 at 0.2 mm layers (2.5 mm falls in the middle of a layer, and slicers round it either way) and about layer 21 at 0.12 mm layers. Always confirm in the preview: the right layer is the first one that shows only letters.
- 3
Add the pause or colour change on that layer
Bambu Studio and OrcaSlicer: right-click the plus icon on the slider and choose Add pause (or Change filament with an AMS). PrusaSlicer: click the plus icon for a colour change. Cura: Extensions, Post Processing, Modify G-Code, add Pause at height or Filament Change, and enter the layer number from the preview.
- 4
Check the preview
The colour or pause marker should sit exactly where the letters start. One layer too early and the top of the plate shows the text colour. One layer too late and the letters get a band of the plate colour at the bottom.
- 5
Print and swap when it stops
The printer parks the head. Unload the first filament, load the second, and push some through until the new colour runs clean, about 50 to 100 mm. Remove the purge blob from the nozzle, then resume.
- 6
Don't wait too long
A pause of a few minutes is fine. Leave it for an hour and the part can cool and shrink, or lose bed adhesion. On a heated bed, the bed stays on during the pause.
Paint, markers and inlays
No filament change at all. Good for one-offs, for more than two colours, or for rescuing a print.
Painting raised text
Acrylic paint on a small flat brush, or dab the letter tops on a sponge loaded with paint. Keep the paint thin so it doesn't run down the sides. 1 mm raised letters are much easier than 0.4 mm.
Paint markers
Acrylic paint pens like Posca cover PLA well and dry in minutes. A permanent marker works but can rub off on a keychain; a coat of clear varnish helps. Fill engraved text, then wipe the surface with alcohol.
Inlays
Print the letters separately in colour B and press or glue them into an engraved pocket in colour A. Leave 0.1 to 0.2 mm gap on each side. Gives flush text without a multi-material printer, at the cost of more work.
Filling engraved text
For engraved text, wipe acrylic paint or wax into the pocket and scrape the surface clean. Tinted epoxy looks the best and takes a day to cure.
Colour combinations that read well
Contrast matters more than colour choice. These pairings are readable from a few metres away.
| Plate | Text | Notes |
|---|---|---|
| Black | White | Maximum contrast. The NameSTL outline default is a dark plate with light letters. |
| White | Black | Same contrast, looks cleaner on light walls |
| Navy or dark blue | Yellow or gold | Good for school and sports colours |
| Wood PLA | Black | Warm look for door signs, hides layer lines |
| Clear or translucent | Any dark colour | Nice on windows and night lights, but the plate shows every flaw |
Silk and matte filaments of the same colour next to each other look very different; mixing them is a subtle effect, not a readable one.
Limits worth knowing
A filament change at a layer only colours what is above that layer. It can't make one letter red and the next blue, and it can't colour the sides of the plate differently from its top. For that you need an AMS or paint.
NameSTL's files are built so the colours split by height, which is why one swap is enough. If you have no AMS, the multicolour keychain guide walks through the whole print on a single-nozzle printer, and the keychain slicer settings cover the rest of the profile.
Questions people ask
How do I 3D print text in a different colour?
Design the text as raised letters on a plate, then add a pause or filament change in the slicer at the first layer where only letters remain. When the printer stops, swap the filament and resume. With an AMS or MMU, assign the letters and the plate to different slots instead.
How do I change filament for text without an AMS?
Use your slicer's pause or colour change on the layer slider: right-click the plus icon in Bambu Studio or OrcaSlicer, click it in PrusaSlicer, or use the Pause at height script in Cura. Pick the first layer that shows only letters, just above 2.5 mm on a NameSTL file at default settings.
At what layer should I change colour for raised text?
At the first layer that contains only letters. On a NameSTL outline or keychain file with 5 mm Thickness or less, the plate ends at 2.5 mm: about layer 13 or 14 at 0.2 mm layers, or layer 21 at 0.12 mm. Check the preview, since slicers round a layer that falls exactly on the boundary differently.
Can I print multicolour text with an STL file?
Yes, with a filament change at a layer, because the colours split by height. The STL has no colour data, so an AMS can't assign colours automatically. A 3MF with separate parts and filament slots does that for you.
How much filament does an AMS waste on text?
It depends on how often it swaps. Raised text on a plate needs one swap, about a gram of purge. A flat multi-colour design that changes colour on every layer can waste more filament than the part itself.
What is the easiest way to colour 3D printed letters?
A filament change at one layer if you are printing anyway. After printing, a paint pen on the tops of raised letters takes a few minutes. Paint works best on letters raised about 1 mm.