Do bitmap fonts (.fnt) support non-English characters?

Godot Version

Godot mono 4.4.1

Question

I’m trying to use a bitmap (.fnt) font for some text in my game due to Godot’s built-in text rendering not really looking good with outlines at small scale. I’m gonna have multi-lingual text in the game, but it seems like using a bitmap font doesn’t support Japanese characters.

Using a font with hiragana, katakana, and roman characters (alternatively a hiragana/katakana-only font with a roman character font fallback or vice versa) results in this when trying to render the string “かめりあ (Camellia)”:
Capto_Capture 2025-05-02_07-54-02_PM

Is this a known issue that has a workaround, or is something up with the engine? I can’t fully upload the fonts due to forum limitations but I can paste them as text if needed.

…I think I may have found the problem. At some point this randomly filled up the log:

It looks like Godot’s BMFont implementation just…does not support any characters beyond the standard ASCII set? That feels like a massive oversight, and is gonna make my game look noticeably worse…

I’ve found the solution! To anyone who runs into this issue in the future (non-ASCII characters not showing up in a BMFont or the “Invalid BMFont OEM character” warning in your editor), open up the .fnt file in your text editor of choice and change unicode=0 to unicode=1 on the first line. BMFont may enable unicode mode automatically, but BMGlyph for Mac does not, and you will have to enable it by hand!

3 Likes