
Fonts are used for rendering text in Minecraft. Several fonts are used in the game; the primary font used is known as Mojangles.
Multiple fonts can be defined and referenced with resource packs.
Fonts available
Java Edition
In Java Edition, there are 4 default fonts.
- Mojangles – Minecraft's pixelated font for most in-game text.
- Standard Galactic Alphabet – The glyphs in the enchanting table GUI.
- GNU Unifont – Replaces Mojangles if the text contains unsupported characters.
- Illageralt – Unused, but text can be formatted with it through commands
Bedrock Edition
In Bedrock Edition, there are 6 default fonts. In the chat settings, the font for all text in chat messages (including closed captions) can be changed between Mojangles and Noto Sans[1].
- Mojangles – Minecraft's pixelated font for most in-game text.
- Noto Sans – Used in some large text bodies like Marketplace content.
- Minecraft Ten – Used for various header texts in menus.
- GNU Unifont – Replaces Mojangles if the text contains unsupported characters.
- Standard Galactic Alphabet – The glyphs in the enchanting table GUI.
- smooth/ – Unknown.
Legacy Console Edition
In Legacy Console Edition, there are 2 default fonts.
- Mojangles – Minecraft's pixelated font for most in-game text.
- Mojangles 11 – Used in various GUIs.
Other sources
Some sources, like the Minecraft website, contains different fonts in different pages.
- Minecraft Ten – Used mainly for top-level headers.
- Mojangles – Used mainly for mid-level headers.
- Minecraft Five – Used mainly for top-level headers in the Dungeons page.
- Noto Sans – Used for main content and descriptions.
- Minecraft Sixteen – Used mainly for top-level headers in the Dungeons II page.
Display modifications
Formatting
Any font can be formatted with the § sign in-game (deprecated in Java Edition), or the text component format in commands.[Java Edition only]
- A color code can change the color of the foreground text and the shadow (see below). There are 29 color codes[BE only], or both of these allow any HEX color.[JE only]
- Bold text (
§l) is rendered by drawing each character twice: once at its normal position and again one pixel to the right. This technique creates the appearance of thicker, bolder text without modifying the font itself. - Text can also be italicized (
§o), underlined (§n),[JE only] and striked (§m).[JE only] "Obfuscated" (§k) constantly replaces each character with a random character of the same width.
Experience bar text
The text on the experience bar is bright green Mojangles with a black outline in Java Edition. This is done by drawing the text in black (
#000000) offset by one scaled unit in each orthogonal direction, then drawing the text in green (
#80FF20) at the original position. Experience bar text has no unique effect in Bedrock Edition, only the green color.
Shadow
In most places text is rendered, a shadow appears beneath every character.
This shadow is a copy of the character's glyph, with the red, green, and blue values divided by 4 and positioned 12.5% south-east of the character, relative to its spacing.
Regardless of the resolution of the character's texture, the shadow is always moved by 12.5%.
In the default font (assets/minecraft/textures/font/ascii.png), the shadow position is moved 1 pixel down and to the right.
For pixels where the glyph overlaps with the shadow, the above glyph's channels have 1 subtracted from them. For example, in areas where a white (#FFFFFF) glyph's pixel overlaps a shadow's, the white pixel becomes #FEFEFE.
Glowing text

Glow ink sac applied on a sign causes a character to create eight copies of itself in all eight directions. This results in the font appearing to have a thick outline. Glowing text always renders with an emissive texture, so it appears bright in darkness. The text takes priority over the outline; outlines appear below a character's pixels if they conflict. However, it is a rendering effect that does not actually emit any light. The player can use a black ink sac on the sign to remove the glow.
In a sign's block data, [NBT Compound / JSON Object] front_text or [NBT Compound / JSON Object] back_text's [Boolean] has_glowing_text controls whether the text glows.
Emoji support

Minecraft has included support for a number of emoji. The game does not support modifiers, such as skin tone, joining, or emoji presentation. The skin tone modifiers 🏻, 🏼, 🏽, 🏾, and 🏿 (U+1F3FB..U+1F3FF) do not apply colored skin tones to their applicable emoji, and instead show tones as their Unifont glyphs. Joining multiple emoji via U+200D ZERO WIDTH JOINER to create 1 single emoji is not supported; multi-sequence emoji such as 👨👩👧 instead show as 👨👩👧 with dotted boxes showing ZWJ between them. Variation selectors, which control presentation, are displayed as dotted boxes with VSnumber.
For characters supported in the default font, as opposed to the fallback fonts, see Mojangles § Emoji.
Bedrock Edition does not support any character above U+FFFF, which includes many modern emoji. It does not include any textures for emoji below that either; only those provided by GNU Unifont below U+FFFF are included and visible.
Private-area emoji

Instead of emoji in font files, Bedrock Edition has several hard-coded Private Use Unicode symbols that it automatically converts to emoji-like symbols in any font, which can also be entered with a shortcode (:heart:). These are used by the game in How to Play and controller hints, but can also be used by the player anywhere where normal letters can, such as in signs, books, item names, chat, resource packs, etc. Emoji are not displayed by Ore UI menu screens.[2][3]
There exist 2 Private Use Area sheets: glyph_E0.png glyph_E1.png. E0 contains glyphs for control icons, such as
and
. E1 contains glyphs for miscellaneous icons, including the Minecoin and Agent icon. E0 characters are categorized in emoticons.json.[4]
Blocks & items
| Shortcode | Character | Unicode | Preview |
|---|---|---|---|
:wood_pickaxe:
|
| U+E108 | |
:wood_sword:
|
| U+E109 | |
:crafting_table:
|
| U+E10A | |
:furnace:
|
| U+E10B |
HUD
| Shortcode | Character | Unicode | Preview |
|---|---|---|---|
:armor:
|
| U+E101 | |
:tip_crosshair:
|
| U+E017 | |
:shank:
|
| U+E100 | |
:heart:
|
| U+E10C |
Marketplace
| Shortcode | Character | Unicode | Preview |
|---|---|---|---|
:minecoin:
|
| U+E102 | |
:minecoin:
|
| U+E105 |
- On non-PlayStation devices, both
:minecoin:and:token:will display the Minecoin emoji.
Recipe book
| Shortcode | Character | Unicode | Preview |
|---|---|---|---|
:craftable_toggle_on:
|
| U+E0A0 | |
:craftable_toggle_off:
|
| U+E0A1 |
Controls
Mouse
| Shortcode | Character | Unicode | Preview |
|---|---|---|---|
:mouse_left_button:
|
| U+E060 | |
:mouse_right_button:
|
| U+E061 | |
:mouse_middle_button:
|
| U+E062 | |
:mouse_button:
|
| U+E063 | |
:light_mouse_left_button:
|
| U+E070 | |
:light_mouse_right_button:
|
| U+E071 | |
:light_mouse_middle_button:
|
| U+E072 | |
:light_mouse_button:
|
| U+E073 |
Touch
| Shortcode | Character | Unicode | Preview |
|---|---|---|---|
:touch_forward:
|
| U+E080 | |
:touch_left:
|
| U+E081 | |
:touch_back:
|
| U+E082 | |
:touch_right:
|
| U+E083 | |
:touch_jump:
|
| U+E084 | |
:touch_sneak:
|
| U+E085 | |
| ? | | U+E089 |
|
:touch_chat:
|
| U+E08A |
|
| ? | | U+E08B |
|
:touch_sprint_double_tap:
|
| U+E064 |
|
:tip_virtual_button_jump:
|
| U+E014 | |
:tip_virtual_button_action_attack_or_destroy:
|
| U+E015 | |
:tip_virtual_joystick:
|
| U+E016 | |
:touch_virtual_joystick_forward:
|
| U+E08C | |
:touch_virtual_joystick_left:
|
| U+E08D | |
:touch_virtual_joystick_back:
|
| U+E08E | |
:touch_virtual_joystick_right:
|
| U+E08F | |
:tip_virtual_button_action_build_or_use:
|
| U+E018 | |
:tip_virtual_button_sneak:
|
| U+E019 | |
:tip_virtual_button_sprint:
|
| U+E01A | |
:tip_virtual_button_fly_up:
|
| U+E01B | |
:tip_virtual_button_fly_down:
|
| U+E01C | |
:tip_virtual_button_dismount:
|
| U+E01D | |
:touch_fly_up:
|
| U+E086 |
|
:touch_fly_down:
|
| U+E087 |
|
:touch_stop_flying:
|
| U+E088 |
|
:tip_touch_sneak:
|
| U+E05A | |
:tip_touch_jump:
|
| U+E059 | |
:tip_touch_inventory:
|
| U+E05B | |
:tip_touch_fly_up:
|
| U+E05C | |
:tip_touch_fly_down:
|
| U+E05D | |
:tip_touch_forward:
|
| U+E055 | |
:tip_touch_left:
|
| U+E056 | |
:tip_touch_back:
|
| U+E057 | |
:tip_touch_right:
|
| U+E058 |
Controller
| Shortcode | Character | Unicode | Preview |
|---|---|---|---|
:ps4_left_stick_up:
|
| U+E0D0 | |
:ps4_left_stick_left:
|
| U+E0D1 | |
:ps4_left_stick_down:
|
| U+E0D2 | |
:ps4_left_stick_right:
|
| U+E0D3 | |
:ps4_right_stick_up:
|
| U+E0D0 | (/assets/images/text/emojis/controller/right_stick_up.png) |
:ps4_right_stick_left:
|
| U+E0D1 | (/assets/images/text/emojis/controller/right_stick_left.png) |
:ps4_right_stick_down:
|
| U+E0D2 | (/assets/images/text/emojis/controller/right_stick_down.png) |
:ps4_right_stick_right:
|
| U+E0D3 | (/assets/images/text/emojis/controller/right_stick_right.png) |
Nintendo Switch
| Shortcode | Character | Unicode | Preview |
|---|---|---|---|
:switch_face_button_down:
|
| U+E040 | |
:switch_face_button_right:
|
| U+E041 | |
:switch_face_button_left:
|
| U+E042 | |
:switch_face_button_up:
|
| U+E043 | |
:switch_bumper_left:
|
| U+E044 | |
:switch_bumper_right:
|
| U+E045 | |
:switch_trigger_left:
|
| U+E046 | |
:switch_trigger_right:
|
| U+E047 | |
:switch_select:
|
| U+E048 | |
:switch_start:
|
| U+E049 | |
:switch_stick_left:
|
| U+E04A | |
:switch_stick_right:
|
| U+E04B | |
:switch_dpad_up:
|
| U+E04C | |
:switch_dpad_left:
|
| U+E04D | |
:switch_dpad_down:
|
| U+E04E | |
:switch_dpad_right:
|
| U+E04F |
PlayStation 4
| Shortcode | Character | Unicode | Preview |
|---|---|---|---|
:ps4_face_button_down:
|
| U+E020 | |
:ps4_face_button_right:
|
| U+E021 | |
:ps4_face_button_left:
|
| U+E022 | |
:ps4_face_button_up:
|
| U+E023 | |
:ps4_bumper_left:
|
| U+E024 | |
:ps4_bumper_right:
|
| U+E025 | |
:ps4_trigger_left:
|
| U+E026 | |
:ps4_trigger_right:
|
| U+E027 | |
:ps4_select:
|
| U+E028 | |
:ps4_start:
|
| U+E029 | |
:ps4_stick_left:
|
| U+E02A | |
:ps4_stick_right:
|
| U+E02B | |
:ps4_dpad_up:
|
| U+E02C | |
:ps4_dpad_left:
|
| U+E02D | |
:ps4_dpad_down:
|
| U+E02E | |
:ps4_dpad_right:
|
| U+E02F |
Oculus (Rift/Rift S)
| Name | Character | Unicode | Preview |
|---|---|---|---|
| 0 | | U+E0E0 |  |
| B | | U+E0E2 |  |
| A | | U+E0E1 |  |
| Y | | U+E0EA |  |
| X | | U+E0E9 |  |
| Left Grip | | U+E0E3 |  |
| Right Grip | | U+E0E4 |  |
| Left Trigger | | U+E0E7 |  |
| Right Trigger | | U+E0E8 |  |
| Left Stick | | U+E0E5 |  |
| Right Stick | | U+E0E6 |  |
Windows MR (Mixed Reality)
| Name | Character | Unicode | Preview |
|---|---|---|---|
| Menu | | U+E0C2 |  |
| Windows | | U+E0CD |  |
| Left Touchpad | | U+E0C5 |  |
| Left Horizontal Touchpad | | U+E0C6 |  |
| Left Vertical Touchpad | | U+E0C7 |  |
| Right Touchpad | | U+E0C8 |  |
| Right Horizontal Touchpad | | U+E0C9 |  |
| Right Vertical Touchpad | | U+E0CA |  |
| Left Trigger | | U+E0CB |  |
| Right Trigger | | U+E0CC |  |
| Left Grab | | U+E0C0 |  |
| Right Grab | | U+E0C1 |  |
| Left Stick | | U+E0C3 |  |
| Right Stick | | U+E0C4 |  |
Xbox
| Shortcode | Character | Unicode | Preview |
|---|---|---|---|
:xbox_face_button_down:
|
| U+E000 | |
:xbox_face_button_right:
|
| U+E001 | |
:xbox_face_button_left:
|
| U+E002 | |
:xbox_face_button_up:
|
| U+E003 | |
:xbox_bumper_left:
|
| U+E004 | |
:xbox_bumper_right:
|
| U+E005 | |
:xbox_trigger_left:
|
| U+E006 | |
:xbox_trigger_right:
|
| U+E007 | |
:xbox_select:
|
| U+E008 | |
:xbox_start:
|
| U+E009 | |
:xbox_stick_left:
|
| U+E00A | |
:xbox_stick_right:
|
| U+E00B | |
:xbox_dpad_up:
|
| U+E00C | |
:xbox_dpad_left:
|
| U+E00D | |
:xbox_dpad_down:
|
| U+E00E | |
:xbox_dpad_right:
|
| U+E00F |
Other
| Name | Shortcode | Character | Unicode | Preview |
|---|---|---|---|---|
| Non-Breaking Space | :nbsp:
|
| U+E0FF | |
| Agent | :code_builder_button:
|
| U+E103 |  |
| Immersive Reader | :immersive_reader_button:
|
| U+E104 |  |
| Hollow Star | :hollow_star:
|
| U+E106 |  |
| Solid Star | :solid_star:
|
| U+E107 |  |
| Camera | :camera:
|
| U+E10D |  |
Special glyphs
-
Side-by-side comparison of � and the notdef character
In Java Edition, there are 2 glyphs that are accessible only through technical means:
- The first is U+FFFD � REPLACEMENT CHARACTER, which appears when either the U+FFFD character is typed, or there is an invalid UTF-8 multi-byte sequence.
- The second is the "notdef" glyph, seen when a character that has no texture in the currently-used font is typed. It is hardcoded and cannot be modified through resource packs. It is sometimes called "tofu" in the typographical community because of it resembles a block of tofu. More information on this glyph can be found at Missing textures and models#Missing font character.
In Bedrock Edition, a character with no texture data appears as a blank space. The U+FFFD � REPLACEMENT CHARACTER shown belongs to GNU Unifont.
Providers
History
Java Edition
| Java Edition Classic | |||||||
|---|---|---|---|---|---|---|---|
| 0.0.2a | Added text to the game, and the default font as a result. | ||||||
| This font was originally used in Legend of the Chambered. | |||||||
| Java Edition Beta | |||||||
| 1.1 | The font.txt file was accidentally removed from client.jar, resulting in all in-game text being invisible. | ||||||
| 1.1_01 | Readded the font.txt file, which made in-game text display properly again. | ||||||
| Java Edition | |||||||
| 1.1 | 11w49a | Added GNU Unifont to fully support multi-languages. | |||||
| 1.5 | 13w09a | The font texture is now able to be changed in a resource pack. | |||||
| Added support for glyph resolutions above 16×16. | |||||||
| 1.6.2 | reupload | Fixed distorted font when HD font is used.[5] | |||||
| 1.13 | pre6 | Fonts are now saved as TrueType font files. | |||||
| pre7 | Reverted TrueType font. | ||||||
| Retroactively removed TrueType font file from pre-6. | |||||||
| 1.16 | 20w17a | Raw JSON text format now has a font key, which defines the font to use for that component. Default is minecraft:default.
| |||||
Added the unihex provider.
| |||||||
| The full range of Unicode is now supported in font definitions. | |||||||
| Pre-release 7 | The chars field of the bitmap provider can now specify UTF-16 codepoints. | ||||||
| 1.19 | 22w11a | Added the space provider.
| |||||
| Rendering of the space glyph is no longer hardcoded; it needs to be declared manually in the font. | |||||||
| 1.20 | 23w17a | Removed the legacy_unicode provider.
| |||||
Added the unihex provider.
| |||||||
Added the reference provider. | |||||||
| 1.20.5 | 24w06a | Added font variant filters to font providers. | |||||
| 1.21.4 | Pre-Release 1 | GNU Unifont updated to version 16.0.01. | |||||
| 1.21.6 | 25w18a | GNU Unifont updated to version 16.0.03. | |||||
| Added previously omitted Unifont glyphs for Private Use Areas. | |||||||
Unihex Font Provider: Field size_overrides is now optional (defaults to empty list). | |||||||
| 1.21.11 | 25w41a | uniform font has been updated to use Unifont 17.0.01. | |||||
Bedrock Edition
| Pocket Edition Alpha | |||||||
|---|---|---|---|---|---|---|---|
| v0.1.0 | Added the default ASCII font called default.png. | ||||||
| v0.11.0 | build 1 | Added GNU Unifont to fully support multi-languages. | |||||
| 26.60 | Preview 26.60.21 | Added extended Latin, Cyrillic, and Greek characters to the Mojangles font. | |||||
| Character size increased to 8x12px. | |||||||
Legacy Console Edition
| Legacy Console Edition | |||||||
|---|---|---|---|---|---|---|---|
| Xbox 360 | Xbox One | PS3 | PS4 | PS Vita | Wii U | Switch | |
| TU0 | CU1 | 1.00 | 1.00 | 1.00 | Patch 1 | 1.0.1 | Added text to the game, and the default font as a result. |
| TU1 | Updated the font with a clearer version. | ||||||
Issues
Issues relating to "Font" are maintained on the bug tracker. Issues should be reported and viewed there.
Trivia
- Although not in the changelog or specification, the default copy of the
unihexprovider also includes a [NBT List / JSON Array] __ranges field in the [NBT Compound / JSON Object] entries of [NBT List / JSON Array] size_overrides. It is a list of strings, being the Unicode block names of the applying range. - The New Nintendo 3DS Edition's font is a combination of the pre-1.12 JE font and some select characters from GNU Unifont. In addition, the ® sign was changed.
Gallery
-
Side-by-side comparison of glowing text versus normal text on a sign -
Formatted text in a book -
Formatted text in chat -
A diagram of typography terms and their relation to the font -
Example of how multi-sequence emoji do not render correctly. This is the emoji 👨👩👧. The [ZWJ] are U+200D ZERO WIDTH JOINER.
See also
References
- ↑ https://dafontstyle.io/download/noto-sans-font-family.html
- ↑ "Emojis & Symbols" – Bedrock Wiki, April 1, 2024.
- ↑ MCPE-185774 – New server UI does not show some characters – resolved as "Won't Fix".
- ↑ https://github.com/TwistedAsylumMC/bedrock-unicode-characters
- ↑ MC-17673 – Distorted fonts when using a converted texturepack on startup – resolved as "Fixed".










