FontStruct Tutorials

by zephram

Download disabled

The designer of this FontStruction has chosen not to make it available for download from this website by choosing an “All Rights Reserved" license.

Please respect their decision and desist from requesting license changes in the comments.

If you would like to use the FontStruction for a specific project, you may be able to contact the designer directly about obtaining a license.

This is an unofficial forum I have made for FontStruct tutorials and educational materials. Want to know how to do something, or how to make a certain style or effect? This is the place to ask. I am not part of staff, and am far from being the most advanced user on here, but will pass on whatever I can.



I have been writing an FS video series for some time, but it has proven very time-consuming to make the series as comprehensive (and as high-quality) as I would like. It has also occurred to me that I can teach a lot through simple text and graphics. This is my attempt to create a knowledge hub for FS where all the good stuff is in one place.


When I eventually get around to completing FS videos, I will post them here. If you make a tutorial or expand on mine in some way, you're welcome to post those here as well. Please keep the discussion topical.

You are free to circulate any images I post here, so long as you credit me for them.

Have a request or a question? Post and let me know!


Related Forum: FontStruct Idea Soup

Info: Created on Wed, 12th June . Last edited on Mon, 17th June.
License Creative Commons
  • -
Fave Tags:
  • -


No.1: Shortcuts

Comment by zephram Thu, 13th June

No.2: Stacking

Comment by zephram Thu, 13th June

No.3: Composites

Comment by zephram Thu, 13th June

Other subjects to make tutorials on: Brickswaps, Filters, Nudging, Pixel Optimization

Lemme know if you have any suggestions, folks!

Comment by zephram Thu, 13th June

no brickswap is evil.

Comment by JingYo Thu, 13th June

No.4: Brickswaps

Comment by zephram Thu, 13th June

No.5: Filters

Comment by zephram Thu, 13th June

No.6: Nudging

Comment by zephram Fri, 14th June

That about covers the basics - or, the basics of FS techniques, at least. Teaching how to do typography or art is far beyond the scope of this...

Now, I will start delving into more advanced subjects. Since these subjects are often tied to a style, or to an individual way of constructing glyphs, the information will be more complicated to present. That presentation might take me a while to figure out. It will probably be a graphical one like those I've already posted, since this carries several advantages over video and PDF.

Comment by zephram Fri, 14th June

FS Expert Tips: Nine hints for saving time and work

Comment by zephram Fri, 14th June

Absolutely wonderful tutorials. You have summed up the very essence of fontstructing. Thank You.

Comment by Frodo7 Sat, 15th June

Cheers, @Frodo7!

I felt that something like this needed to be done. Lots of information is out there, but it's scattered among years of blog posts and projects by different users. If only one person manages to learn something they can use from this page, I'll be satisfied. :D

Comment by zephram Sat, 15th June

Even Frodo is resurrected from the depths of Offline to thank you! (So am I. Thank you)

Comment by Cookielord Sat, 15th June

I didn't realise you could erase in lines and areas, or that you could duplicate all glyphs to Latin accents; that should come in invariably useful in navigating the Fontstruct suite. I could really use a tutorial on spacing, kerning and eliding ligatures; how do I prevent glyphs from overlapping while maintaining consistent spacing, and modify glyphs depending on their collocation with certain other glyphs?

Comment by Dante (Dantemwalt) Sat, 15th June

When creating composites, you should use as few bricks as possible… Also, hello, Frodo

Comment by Qwerty399 Sat, 15th June

@Dantemwalt: Sure, I can make a tutorial about spacing. It's something that can be used to create not only good text spacing, but lots of novel effects and patterns. I'm working on a script for it now. :D

Comment by zephram Sat, 15th June
Comment by Sed4tives Sat, 15th June

Here is the tutorial:

A sed4-Type guide to ligatures

Comment by Sed4tives Sat, 15th June

Because Spacing is part of the artistic quality a font has, I'm not going to teach a "right" or "wrong" way to do it. I think it is best to start teaching about spacing by example. Here's an image with 5 examples of ways I have used spacing. The keys here are the vertical baseline, the letter width, and the value in the Spacing Dialog (shown in the Preview panel). The baseline is fixed, the width is adjustable, and the Spacing Dialog values are applied to all glyphs. The lowest spacing you can set in the Dialog is -1, so if you need more negative spacing than that, it must be applied to each individual glyph you want it on (or, you must move the glyphs to the left, as the case may be).

Kerning, another useful way to control spacing, is a more involved art... I'm still working on a way to condense that knowledge into a tutorial...


Links to the referenced designs (feel free to clone them and pick them apart):

Domino FarmEsperhandGremlin SkinsCybernetic LawnmowerEglantine

Eglantine isn't worth picking apart; its graphic explains everything there is to know about that technique. Finally, there are a few other ways to correct spacing and leading (such as with Filters), but the results they achieve can usually be reached through simpler means. These aspects of spacing, along with the artistic considerations of spacing itself, are highly abstract in nature so it is probably best to work them out through experience.

Comment by zephram Sat, 15th June

Most of the above techniques can also be expanded on or altered. For example, you can make a font like Gremlin Skins using patterns of varying width. In that case you would use a Global Spacing of 0 (not monospaced) and then drag the letter width for each pattern to its right edge.

There are a LOT of minor technique variations that will go unmentioned. This is so that I write tutorials instead of books. Besides, I gotta leave some room for users to experiment on their own. :D

Comment by zephram Sat, 15th June

In addition to what zephram wrote above, I also propose two other solution for this that doesn't require to replace actual glyphs within the grid, in case u absolutely don;'t want to or simply can't due to whatever given reason. A good example would be in the case of vintage game font revivals, and u want to remain faithful to the
original source font.

And would also prevent the comma from touching any glyphs located in the following line of text (as most likely is the case in Zephram's technique I think?).

But this is to navigate to the Menu>Advanced>"Unicode Letter Sets" and turning this on. Then go the the Unicode block named  "High private use and surogates" in the bottom left menu within the editor, this set is located near the bottom of that list. And make a glyph in here with just a single brick that occupies the same grid row as is done in Zephram's approach.

Another Technique for getting additional vertical space is to navigate to the Menu>View>"Filters" and change the values for Horizontal & Vertical grid scale to 1,01 for both. This adds the exact amount of a square grid unit of vertical space to the font as well,  Just keep in mind that this values should always be equal in order to maintain the aspect ratio for your font!

But I cant tell how this last technique would translate to the pixel optimization of the font in fact, since I have very little knowledge about pixel optimized fonts in general. Since this last techique is changing the initial font size as well.

Comment by Sed4tives Sat, 15th June
Comment by Sed4tives Sun, 16th June

@Sed4tives: Interestingly, with Eglantine I found a way to trick Notepad into calculating a different original size for the font. Notepad ordinarily does not support decimal values for font sizes, and Eglantine's original size is 4.5, but it looks pixel-perfect anyway. I didn't have to edit the metrics in software - it works like that right after being downloaded from FS. Sometime soon, I'm gonna give this a technique a go with other text editors. :D

Comment by zephram Sun, 16th June

WAIT!! Don't use the surrogate blocks, a high and a low renders 2-byte letters (e.g. 🍕). They will not render themselves! Before the surrogates were introduced, you were limited to plane 0 (BMP).

Comment by Qwerty399 Sun, 16th June

P.S. Putting 4 of the same pattern together in a square may create a 5th in the middle

Comment by Qwerty399 Sun, 16th June

P.P.S. Tangereen 2

Comment by Qwerty399 Sun, 16th June

This is all very useful, not to mention bewildering lol. Thanks.

Unfortunately, my current issue still persists. A font of mine is completely irregular. I need only certain glyphs to be indented and others to be inset, but I need to know which letters should I preliminarily adjust before kerning to optimise efficiency? Thanks again.

Comment by Dante (Dantemwalt) Sun, 16th June

@Qwerty399: As usual, you're not helping.

@Dantemwalt: There is no formal rule set for this. It's based on too many abstract things and things which are specific to the user. Try not to overthink it. The main rule is that whatever method you use (kerning, spacing adjustment, or modifying the design) is consistent.

Comment by zephram Sun, 16th June
Comment by zephram Sun, 16th June

As seen above, kerning efficiency is very much a matter of being able to apply a consistent value to the pairs. This is especially true in the case of negative kerning values (since you cannot type a - into that dialog and must copy-and-paste your -5 to duplicate it elsewhere). This is as efficient as it gets.

This is how I'd set things up.

Because the project used for the above example lets NOTHING project to the left, the relationships between letters are more constant, allowing the -5 value to be used on practically all of the f* and *j pairs.

The rest is specific to your design. The ratios and proportions you set, the lengths of lines, the sizes of serifs and brush strokes, all factor in to how a font is spaced and kerned.

Comment by zephram Sun, 16th June

Continuing on this subject:

This Combination Generator is very good for creating kerning tables. Feed it all the glyphs that you want to kern and it will generate the pairs. Then, use your text editor to turn this into a table where each "master letter" has its own line. Then, you can paste that into the Preview panel and scroll to see how the rows look.

Some letters tend to be more problematic than others (f, j, r, v) and you'll likely want to work on those rows first. Look for the rows with the most drastic problems and the greatest number of problems and work on them first. By eliminating the common problem pairs, you will make your font more useable right now. You can then split up the rest of the kerning work so it's less taxing to perform, and work on it over a larger span of time, while still having a very useable font since you already kerned the common pairs.

Comment by zephram Sun, 16th June

In addition to the comment by Zephram's above I like to provide another similar tool, but more aiming at creating repetitive strings of type. Very helpful for making type samples that are meant to showcase the kerning. But also very helpful to easily spot troublesome spots that need adjustment.


Comment by Sed4tives Sun, 16th June

And here is a multi-language dummy text generator that also features a number of typographic features, such as the option for repeating custom kerning pairs.

Just Another Test Text Generator

Comment by Sed4tives Sun, 16th June

@Zeph Actually, you CAN insert a minus in to the box (If the number is a non-negative and not zero OR if you type the - then a number quick enough)

Comment by FontGeek26 Mon, 17th June

Cheers. I have managed to type the - fast before, but it doesn't always work for me. A browser issue, maybe? Regardless, copy/pasting is always gonna be faster and more reliable. Remember that this is something the user may need to do thousands of times in a row, or more. They might also be copying exact decimal values such as -4.32109, and it's just better to paste values like that.

Same goes for adding - to a number. Doesn't work for me. So when I need to set a negative number, I either drag the slider to the negatives and edit that, or just type -1 in the search box and then copy/paste that.

Comment by zephram Mon, 17th June

Welp, FS ate my comment. Here it is again...


This tutorial is about a work-saving technique which I call "block jumping".

To put it simply: FontStruct has two different ways of organizing the glyphs into blocks. There are several glyphs that exist within two different blocks, and by having the right glyph selected when you enable or disable Unicode Letter Sets, you can have the editor instantly transport you to another block. This saves you the time and effort of navigating the drop-down list to select a block, and since a given glyph always transports you to the same spot within the destination block, you hunt less for the spot where you want to be. It sounds minor, but it can save you a LOT of grief.

Jumps I commonly use:

Basic Latin <-> General Punctuation
‘ ’ “ ”

More Latin <-> General Punctuation
† • … „ ‚ ‹ ›

More Latin <-> Currency Symbols

Google Fonts Basic -> Latin Extended A

These jumps work with the Google Fonts Basic band as well - you can jump from there. But, you cannot move back to Google Fonts Basic this way. If you try, you'll probably end up in Basic Latin or More Latin.

Finally, any glyph which is present in the Unicode set, but NOT in the standard FS set, will transport you back to Basic Latin when you select it and disable Unicode Letter Sets. This is probably the only jump you'll be able to use while editing the non-Latin languages.

Comment by zephram Mon, 17th June

I will be gone for a few days, but am glad to answer any questions I see when I get back. I hope this page is informative for people. This seemed like the best way for me to teach without using video. Video is a lot harder to make, and my teaching style causes me to ramble a lot in video. I don't want to overwhelm people with too many options or too many things to consider at once, which is why I've made these tutorials the way I have. Feedback on the tutorials is appreciated as well!

Comment by zephram Mon, 17th June

Will you do fonts from the Nintendo consoles?

Comment by FontGeek26 Mon, 17th June

Also of Interest

More from the Gallery

Microcosmosby zephram
FontStruct Tutorialsby zephram
Gremlin Skinsby zephram
Paradoxy Effectby zephram
Sketchby Qimplef
RM Oliverby p2pnut
Sixty-four Bricksby Atlantis L. (Jack Lee Jie)
fs pixel heartby opipik

From the Blog


New Bricks: Square Connectors


The Video Game Font Preservation Society


FontStruct goes open source!


New Bricks: Half Arcs