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:
- Open the OpenType Designer window.
- Click the second toolbar icon in the upper-left corner (Proofing) to open the proofing window.
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.
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 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:
- 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
loclform, say) won't reproduce under the wrong language tag. - Find the culprit lookup. Click the misbehaving glyph in the preview. The last applied lookup appears above it — that's your first suspect.
- 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.
- 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.
- 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.
- 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 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
| Symptom | Likely cause | Fix |
|---|---|---|
| Substitution doesn't appear in proofing | Wrong script/language selected, or wrong engine | Match the user's script and language; select the internal _shaper engine |
| Right glyph, wrong place in the run | Lookup order / feature processing order | Reorder lookups (Move up / Move down); respect fixed feature order |
| Lookup never matches a glyph it should | Lookup flags exclude that glyph | Check Ignore Marks / Ignore Bases / Ignore Ligatures / Mark Filtering Set |
| Too many lookups to read | Whole-line view is overwhelming | Drag a rectangle over the glyphs of interest to filter; Shift-drag to add more |
| Can't tell when a glyph changed | Looking only at the final result | Press Restart and step forward stage by stage |
| Trace looks fine but app renders differently | Engine/script coverage difference | Confirm 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
- Enrich Your Fonts with OpenType Features — generate ligatures, stylistic sets, swashes and alternates automatically.
- Font Inspection — catch structural and naming problems before they reach proofing.
- Glyph Name Convention — correct names are what the feature generator and shaper rely on.