🎉 10,000 users and counting! Thank you for being part of the Printaro Tools community and helping us grow!

3D print stringing: causes and fixes

Why thin strings form between the parts of a print, and the order to fix it in: dry filament, temperature, retraction, then travel.

Updated 2026-10-16

Short answer

Stringing comes from plastic oozing out of the nozzle while it moves between two parts of the print. Fix it in this order: dry the filament, lower the nozzle temperature by 5–10 °C, then tune retraction with a test print. Travel settings in the slicer help last.

Change one setting at a time and print the same test after each change. Otherwise you can't tell which change helped.

What stringing is

Strings are thin hairs of plastic stretched between parts of a print, for example between two towers or across the hole of a letter. Bigger blobs and threads are sometimes called oozing. Both have the same cause.

When the nozzle stops printing and moves to another spot, the plastic inside is still hot and liquid. Some of it leaks out and gets pulled along as a thread. The slicer fights this with retraction: it pulls the filament back a little before each travel move to take the pressure off the nozzle.

Prusa's guide names the main causes: a nozzle temperature that is too high, retraction settings that don't suit the printer, and filament that has taken up moisture. Each of these has its own fix, and they are worth trying in the order below. Some materials string more than others. PETG and TPU string more than PLA, so expect a few fine hairs with them.

Wet filament

Start here, because no slicer setting fixes it. Water in the filament turns to steam in the hot nozzle and pushes plastic out when it shouldn't come out. The retraction test generator says it plainly in its tips: wet filament strings a lot, so dry it first.

A quick check from Prusa's guide is to load a different spool of the same material. If the strings go away, the first spool is the problem. Other signs are bubbles, rough surfaces and bubbling or smoke at the nozzle.

Drying times and temperatures differ by material and by maker. Our guide on how to dry filament lists them and explains how to keep spools dry afterwards.

Temperature

Hotter plastic is runnier and leaks more. Prusa suggests lowering the nozzle temperature by 5–10 °C and checking whether the strings get fewer. Don't go too low: below the right range, layers bond badly and the part gets weak.

To find the right value instead of guessing, print a temperature tower. It prints one labeled block per temperature, hottest at the bottom, each with an overhang and a bridge. The tool has presets you can start from:

  • The default range runs from 230 °C down to 190 °C, which covers the 190–230 °C range Polymaker gives for PolyLite PLA.
  • PETG: 250 °C down to 220 °C.
  • ABS / ASA: 260 °C down to 230 °C.
  • TPU: 235 °C down to 205 °C.

Reading the tower

In the slicer, add a temperature change at the start of each block, as the tool page explains. Then pick the coolest block that still has a clean overhang, a straight bridge and solid layers. That is usually the block with the fewest strings that is still strong.

Set that temperature in your filament profile before you start on retraction. Retraction values that work at one temperature may not work at another.

For PETG, our PETG guide covers the trade-off: hotter PETG bonds better, cooler PETG strings less.

Retraction

Retraction has two main settings: distance (how far the filament is pulled back) and speed (how fast). Too little distance leaves pressure in the nozzle. Too much can pull molten plastic up into the cold part of the hot end and cause a clog.

The right distance depends mostly on the extruder. A direct drive extruder, with its gears right above the nozzle, needs less. A Bowden extruder, which pushes the filament through a long tube, needs more, because the tube takes up some of the movement. Prusa's guide shows the difference on its own printers: at most 2 mm on the direct drive MK3, and 3.2 mm by default on the Bowden MINI. Polymaker gives 1–3 mm at 20–40 mm/s for its PolyLite PLA and PETG. Prusa notes that a higher retraction speed reduces stringing, but too high a speed makes the motor skip.

Your slicer's profile for your printer is the right starting point. From there, use the retraction test:

  • Print it with the default two towers 50 mm apart. That gap gives the nozzle a long travel move, which shows strings clearly.
  • For a harder test, pick the "Long travel" preset (90 mm apart) or the "Four towers" preset.
  • Look at the space between the towers. Many strings: raise the retraction distance a little. Clean, but gaps or a weak start after each travel: lower it.
  • Change only one value per print: first distance, then speed.
  • Stop when the strings are gone or only a few fine hairs are left.

Travel settings

Once temperature and retraction are right, a few slicer settings reduce stringing further by changing how the nozzle travels. The names here are PrusaSlicer's. Other slicers have similar settings under other names.

  • Avoid crossing perimeters: the nozzle avoids crossing the outer walls where it can, so fewer strings end up on the visible surface.
  • Wipe while retracting and retract on layer change: Prusa recommends keeping both on.
  • Minimum travel after retraction: below this distance the slicer doesn't retract. Prusa's preset is 1 mm, and a higher value means more oozing.
  • Lift Z (Z hop): lifting the nozzle on every travel move can add stringing. Prusa notes that a lower value helps, but turning it off can let the nozzle hit the print.
  • Sequential printing: printing several objects one after the other, instead of all at once, removes the travel between them. Watch for collisions with the print head.
  • Coasting: Simplify3D describes it as stopping extrusion just before the end of a line to let the pressure drop. Some slicers offer it.

Common mistakes

  • Tuning retraction on wet filament. The test never comes out clean. Dry the spool first.
  • Changing several settings at once. You can't tell which one helped. Change one, print, compare.
  • Very long retraction on a direct drive extruder. It can pull soft plastic into the cold part of the hot end and clog it.
  • Turning the temperature down too far. The strings stop, but the layers no longer bond. Use the coolest block on the tower that still looks solid.
  • Expecting PETG or TPU to look like PLA. A few fine hairs are normal with these materials.
  • Leftover residue in the nozzle. Prusa notes that a thin layer of an old material in the nozzle can also cause strings. Clean the nozzle when you change materials.
  • Cutting strings with a hot tool for too long. Prusa describes a heat gun at about 200 °C aimed at the strings for one or two seconds. Longer and the part deforms.

Frequently asked questions

What causes stringing in 3D prints?

Plastic oozing from the nozzle during travel moves. The main causes are wet filament, a nozzle temperature that is too high and retraction that doesn't suit the printer.

Should I fix temperature or retraction first?

Dry the filament, then temperature, then retraction. Retraction values found at one temperature may not hold at another.

How much retraction do I need?

It depends on the extruder. Prusa uses at most 2 mm on its direct drive MK3 and 3.2 mm on its Bowden MINI. Start from your slicer profile and tune with a retraction test.

Why does PETG string more than PLA?

PETG stays runny longer at printing temperature, so more of it leaks out during travel. Dry filament and a slightly lower temperature help most. See the PETG guide.

How do I remove strings from a finished print?

Pull or cut off the thick ones. Fine hairs can be melted away with a heat gun, aimed for only a second or two so the part doesn't deform.

Make it

Sources

  1. Prusa Knowledge Base: stringing and oozing
  2. Polymaker: PolyLite PLA technical data
  3. Polymaker: PolyLite PETG technical data
  4. Simplify3D: flexible filament materials guide
  5. Bambu Lab Wiki: filament drying recommendations

Related guides

All guides → Browse all tools →