Quick answer: Godot 4 CJK text rendering tofu boxes despite a font with CJK support? Default TextServer caches font shaping; CJK glyphs need OpenType shaping - enable Advanced TextServer.

Japanese text renders as squares. Same TTF in another app renders correctly.

Switch to Advanced TextServer

Project Settings > Text Server. Set Active = Advanced. Includes HarfBuzz; correct CJK shaping.

Add fallback fonts

FontVariation > Fallbacks. Add a CJK-capable font. The renderer tries each fallback until a glyph resolves.

Verify with sample text

Render '日本語' and '한국어'. Both should display correctly. Tofu in either = the fallback chain failed.

“International text needs the advanced text server. Default is for Latin-only.”

If you ship to international markets, configure the text server at project start. Retrofitting fonts post-launch is painful.

Related reading