Skip to main content

FontCreator Tutorials

OpenType Layout Features Unleashed

written by Erwin Denissen, published June 26, 2026

You'll need: FontCreator (Windows and macOS) and a font that already has some OpenType layout features. The more features your font has, the more this tutorial pays off.

Professional font designers know the internals of an OpenType font can get very complex — especially with numerous OpenType layout features. Glyph substitutions and glyph positioning are routinely needed for international and high-end typographic fonts so layout engines render text correctly. A font with a couple of substitution tables and one class-based kern lookup is easy to maintain. Add support for a complex script like Arabic and it soon becomes next to impossible to keep oversight of every feature and lookup working together. This font editor's interactive proofing unleashes those layout features: it shows you exactly which feature, which lookup, and which item turned your input into what you see.

From VOLT to live proofing

For years the tool of choice was Microsoft VOLT (Visual OpenType Layout Tool). It could step through features and lookups, but it wasn't a font editor — you paired it with one, then compiled and installed the font every time you wanted to test a change. That round-trip is the part FontCreator removes.

Advanced OpenType proofing in FontCreator

FontCreator combines a full font editor with a visual OpenType Designer — edit feature code in one window, see it shape live in the next, no compile-and-install loop. It can even import fonts that carry VOLT production data, so older projects come along for free. The interactive proofing tool lets you focus only on the features and lookups that need attention, driven by FontCreator's own shaping engine, which currently supports many scripts.

To open it:

  1. Open the OpenType Designer window.
  2. Click the second toolbar icon in the upper-left corner (Proofing) to open the proofing window.
The FontCreator OpenType Designer toolbar with the proofing button highlighted.

The OpenType Designer with the proofing icon highlighted in the toolbar

The proofing window uses the preview text and the script, language, and features set in the OpenType Designer. It then shows you precisely which features, lookups, and specific items were applied to turn your original input string into the visual result in the preview area.

Tip: For the most accurate trace, use FontCreator's internal shaping engine — select _shaper as the engine — and type the exact text you want to inspect into the text box above the preview area.

Trace which feature and lookup fired

Two interactions make tracing fast:

  • Click a glyph in the preview area. If that glyph is the result of a substitution, or had positioning applied, FontCreator shows the last applied lookup above it. This jumps you straight from "this glyph looks wrong" to "this lookup did it."
  • Click an item in the tree view. The selected feature, lookup, or item is shown within the OpenType Designer window, so you can inspect and fine-tune it immediately.

This interactive round-trip — preview to lookup, tree to designer — greatly speeds up understanding how features work together.

FontCreator proofing window showing the last applied lookup for a selected glyph.

The proofing window with a glyph clicked and the applied lookup shown above it

Step through the pipeline

The proofing window's top toolbar lets you process the OpenType layout features step-by-step, with the intermediate result shown in the preview area at the bottom.

  • Restart takes you back to the beginning of processing (your raw input).
  • Step forward one stage at a time to watch each lookup transform the glyph run.
  • Complete jumps to the final result.

Stepping through is the single best way to answer "when did this go wrong?" Watch the run change at each stage until the glyph you're debugging appears or moves — the stage that changed it is your culprit.

The FontCreator proofing toolbar showing step controls including Restart and Complete.

The proofing toolbar with Restart and Complete buttons, mid-pipeline

A debugging workflow

When something in a line of text renders wrong, work it like this:

  1. Reproduce it. Type the exact failing text into the proofing text box and select the same script and language the user had. A substitution that only fires under a specific language (a locl form, say) won't reproduce under the wrong language tag.
  2. Find the culprit lookup. Click the misbehaving glyph in the preview. The last applied lookup appears above it — that's your first suspect.
  3. Confirm with stepping. Press Restart, then step forward stage by stage and watch where the glyph changes. This tells you not just which lookup but when in the pipeline it acted.
  4. Check feature and lookup order. The order lookups are defined in is the order host applications process them; some features have a fixed processing order. A correct lookup applied too early or too late produces the wrong result — reorder lookups (Move up / Move down in the OpenType Designer) if the sequence is off.
  5. Jump to the source. Click the lookup in the tree view to open it in the OpenType Designer, then fix the substitution, the context, or the lookup flags.
  6. Re-proof. Step through again to confirm the fix — and that nothing downstream broke.

Note: Lookup flags matter here too. Ignore Marks, Ignore Base Glyphs, Ignore Ligatures, and a Mark Filtering Set change which glyphs a lookup even sees, so a lookup that "should" match but doesn't is often a flag problem, not a rule problem.

Zoom in on a busy line

Real fonts get large. The font in the manual's example has 33 features, 285 lookups, and over 24,000 lines of feature code. You don't want to wade through all of that to debug three characters.

To narrow the view, click and drag a rectangle within the proofing preview area. This enables a filter so only the OpenType layout features relevant to your selection are shown. To add more to the selection, drag another rectangle while holding Shift.

A selection rectangle in the FontCreator proofing preview filtering the feature and lookup list.

A dragged selection rectangle in the proofing preview filtering the feature tree

Once you've used proofing, you'll forget how much time you used to waste writing down feature and lookup names by hand just to track down one issue.

Watch out: FontCreator's preview relies on its internal shaping engine, which currently supports many but not all scripts. If the engine doesn't cover your script yet — or you need improvements — let High-Logic know, and always cross-check final output in the target applications.

Troubleshooting

SymptomLikely causeFix
Substitution doesn't appear in proofingWrong script/language selected, or wrong engineMatch the user's script and language; select the internal _shaper engine
Right glyph, wrong place in the runLookup order / feature processing orderReorder lookups (Move up / Move down); respect fixed feature order
Lookup never matches a glyph it shouldLookup flags exclude that glyphCheck Ignore Marks / Ignore Bases / Ignore Ligatures / Mark Filtering Set
Too many lookups to readWhole-line view is overwhelmingDrag a rectangle over the glyphs of interest to filter; Shift-drag to add more
Can't tell when a glyph changedLooking only at the final resultPress Restart and step forward stage by stage
Trace looks fine but app renders differentlyEngine/script coverage differenceConfirm the script is supported; verify in the target application

Frequently asked questions

How do I see which OpenType feature changed a glyph? Open the OpenType Designer, click the proofing (second) toolbar icon, type your text, then click the glyph in the preview area. FontCreator shows the last applied lookup above the glyph, and clicking an item in the tree opens it in the designer.

**How do I find out when in the pipeline a substitution happened?** Use the step controls in the proofing toolbar. Press Restart to go to the raw input, then step forward one stage at a time and watch the preview; the stage where your glyph changes is the lookup responsible. Complete jumps to the final result.

A lookup looks correct but never fires — why? Most often it's lookup flags (Ignore Marks, Ignore Bases, Ignore Ligatures, or a Mark Filtering Set) excluding the glyph, or the wrong script/language being active so the feature isn't reached. Check both before rewriting the rule.

How do I debug a huge font without scrolling through hundreds of lookups? Drag a selection rectangle over the glyphs you care about in the proofing preview. The feature and lookup list filters to only what's relevant to that selection; Shift-drag to add more glyphs to the filter.

What to read next