The following characters have special behavior in Minecraft, and care should be taken when retexturing them in a custom font:
Unusable
\u0000
: NULL �- This character cannot be included in a bitmap font, since it's used as a placeholder to skip certain cells of the texture grid.
\u000a
: LINE FEED ⏎- This character can be retextured and appear in text that does not support multiple lines. In chat, it will be invisible and cause a line break.
\u0025
: PERCENT SIGN %- This character is used for text insertions when using
translate
andwith
, so it could be unexpectedly replaced if used unintentionally.
- This character is used for text insertions when using
\u00a7
: SECTION SIGN §- This character is never displayed. It also prevents the next character from displaying, and activates legacy formatting.
Surrogates
\ud800
-\udbff
: High Surrogates- When these characters appear in a font provider, the game expects a following low surrogate character. If one is found, then the texture will apply whenever the pair are together. If none is found, it's treated like
\u0000
. Either way, the surrogate character by itself cannot be retextured.
- When these characters appear in a font provider, the game expects a following low surrogate character. If one is found, then the texture will apply whenever the pair are together. If none is found, it's treated like
\udc00
-\udfff
: Low Surrogates- As above, these characters should be used after a high surrogate. They cannot be retextured by themselves.
Right to Left
Some characters render from right to left, which can be desired but is usually unexpected. All characters with the Unicode Bidirectional Class "AL" (Arabic Letter) or "R" (Right to Left) render this way, but also several characters that aren't defined in Unicode.
\u0590
\u05be
\u05c0
\u05c3
\u05c6
\u05c8
-\u05d2
\u05e8
-\u05ff
\u0608
\u060b
\u060d
\u061b
-\u0620
\u0648
-\u065f
\u066d
-\u066f
\u070b
-\u0710
\u0712
\u072d
-\u072f
\u074b
-\u074f
\u07a4
-\u07a5
\u07b1
-\u07c2
\u07f4
-\u07f5
\u07fa
-\u07fc
\u07fe
-\u0800
\u081a
\u0824
\u0828
\u082e
-\u0832
\u083c
-\u0842
\u0856
-\u0858
\u085c
-\u0862
\u0868
-\u0897
\u08a0
-\u08a2
\u08b2
-\u08b8
\u08c5
-\u08c9
\u200f
\ufb1d
\ufb1f
\ufb34
-\ufb48
\ufbbf
-\ufbd5
\ufd8d
-\ufd94
\ufdc5
-\ufdce
\ufdf0
-\ufdf2
\ufe72
-\ufe78
\ufefa
-\ufefe
Thank you! A very useful and informative gist.
Added it to the list of resources on this page:
https://septicuss.notion.site/Fonts-ce8c8c12c313463ea01ac9b16d7e6bbb