MC GUI Designer

A font generator that shows you the result

A custom Minecraft font is a JSON file, a few PNGs and three numbers per glyph. Getting the numbers right is the whole job - and the only way to check them used to be the game.

The three numbers

A bitmap provider declares the height a glyph is drawn at, the ascent that lifts it above the baseline, and gets an advance from the ink in its cell. Height and ascent are yours to choose; advance follows from the texture, plus one pixel of spacing the client adds behind every glyph.

One rule breaks everything when you get it wrong: the ascent may not exceed the height. A glyph that would float above its own box makes the client reject the entire font - not that glyph, the font. The editor refuses to export it and offers to extend the texture downwards instead.

Negative space, and why it is not a hack here

Moving something left means a glyph with a negative advance. The editor builds the space table for you and picks the characters; you place the image where you want it and the offsets follow.

Because the layout and the export are the same code, the spaces in the component are exactly the ones the preview drew with. There is no second calculation that could disagree.

Codepoints that do not collide

Codepoints are assigned per project, from the private use area, and the pool belongs to the project rather than to a module - two modules in the same font would otherwise hand out the same character twice.

Importing an existing pack reads every codepoint it already uses before a single new one is assigned.

What a font file alone does not tell you

That the title is three pixels wider than the box. That bold made the spaces wider. That the icon collides with the line below in chat. A generator that writes the JSON correctly can still hand you a design that looks wrong in game - see offsets by hand for where that usually goes.

Drop a PNG in, set the height, and read the ascent and advance off the design instead of out of a formula.

Open the editor Runs in the browser. No installation.