Quick answer: Godot 4 emoji rendering as tofu boxes on Android? The default TextServer doesn't ship a color emoji font - bundle Noto Color Emoji as a fallback in the project's Font.

Chat in a multiplayer game shows ☐ in place of every emoji on Android. Desktop renders them fine.

Bundle the emoji font

Add Noto Color Emoji (or your preferred color emoji TTF) to res://fonts/. Assign it under the project's default Font > Fallbacks array. Android's system emoji isn't reachable from the godot text server.

Enable color font features

On the FontFile resource, enable Color > SDF off, Multi Channel on. The default monochrome SDF path doesn't draw bitmap glyphs.

Test against ZWJ sequences

Long emoji sequences (e.g. family glyphs) require ZWJ - validate your font shipped the joiners. Some stripped CDN versions of Noto drop them.

“Emoji is a font, not a feature. Ship one, or ship tofu.”

For chat-heavy games, your font fallback chain belongs in a single FontVariation resource that every TextEdit references. Keep the chain in one place.