Minecraft:Font
More actions
Fonts are used for rendering text in Minecraft. Several fonts are used in the game; the primary font used is known as either Minecraft:Mojangles or Minecraft Seven.
Multiple fonts can be defined and referenced with Minecraft:resource packs.
Fonts available
Java Edition
In Minecraft:Java Edition, there are 4 default fonts.
- Minecraft:Mojangles – MinecraftTemplate:'s pixelated font for most in-game text.
- Minecraft:Standard Galactic Alphabet – The glyphs in the Minecraft:enchanting table GUI.
- Minecraft:GNU Unifont – Replaces Mojangles if the text contains unsupported characters.
- Minecraft:Illageralt – Unused.
Bedrock Edition
In Minecraft:Bedrock Edition, there are 6 default fonts. In the Minecraft:chat settings, the font for all text in chat messages (including Minecraft:closed captions) can be changed between Mojangles and Noto Sans.
- Mojangles – MinecraftTemplate:'s pixelated font for most in-game text.
- Minecraft:Noto Sans – Used in some large text bodies like Minecraft:Marketplace content.
- Minecraft: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 Minecraft:Legacy Console Edition, there are 2 default fonts.
- Mojangles – MinecraftTemplate:'s pixelated font for most in-game text.
- Minecraft: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:Minecraft Five – Used mainly for top-level headers in the Dungeons page.
- Noto Sans – Used for main content and descriptions.
- Minecraft:Minecraft Sixteen – Used mainly for top-level headers in the Dungeons II page.
Display modifications
Bold text
Bold text 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.
Experience bar text
The text on the experience bar is bright green Minecraft:Mojangles with a black outline. This is done by drawing the text in black (Template:Color) offset by one scaled unit in each orthogonal direction, then drawing the text in green (Template:Color) at the original position.
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 (Template:Code), 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 (Template:Mono) glyph's pixel overlaps a shadow's, the white pixel becomes Template:Mono.
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 Minecraft:light. The player can Template:Control a black ink sac on the sign to remove the glow.
In a sign's block data, Template:Nbt or Template:Nbt's Template:Nbt controls whether the text glows.
Emoji support
Minecraft has included textures for a number of emojis. The earliest emoji textures were for Template:Mono. Since 1.15, this support has expanded. Emojis are monochromatic and behave just as any other character. The game does not support modifiers, such as skin tone, joining, or emoji presentation. The skin tone modifiers Template:Mono do not apply colored skin tones to their applicable emojis, and instead show tones as their Unifont glyphs. Joining multiple emojis via Template:Mono to create 1 single emoji is not supported; multi-sequence emoji such as Template:Mono instead show as Template:Mono with dotted boxes showing Template:Mono between them. Variation selectors, which control presentation, are displayed as dotted boxes with Template:Mono.
For characters supported in the default font, as opposed to the fallback fonts, see Minecraft:Mojangles#Emoji.
Bedrock Edition does not support any character above Template:Mono, which includes many modern emoji. It does not include any textures for emojis below that either; only those provided by GNU Unifont below Template:Mono are included and visible.
Private-area emojis
Template:ExclusiveTemplate:More imagesInstead of emojis in font files, Bedrock Edition has several hard-coded Template:W that it automatically converts to emoji-like symbols in any font, which can also be entered with a shortcode (:heart:). These are used in in-game texts including Minecraft:How to Play and controller hints, but can also be used by the player anywhere where normal letters can, such as in Minecraft:signs, Minecraft:books, Minecraft:item names, Minecraft:chat, etc. Emojis are not supported by Minecraft:Ore UI menu screens.<ref>Template:Cite</ref><ref>Template:Bug</ref>
There exist 2 Private Use Area sheets: Template:Code. Template:Mono contains glyphs for control icons, such as Template:Xbutton and Template:Nsbutton. Template:Mono contains glyphs for miscellaneous icons, including the minecoin and Minecraft:Agent icon. E0 characters are categorized in Template:Cd.<ref>https://github.com/TwistedAsylumMC/bedrock-unicode-characters</ref>
Blocks & items
| Name | Shortcode | Character | Unicode | Preview |
|---|---|---|---|---|
| Wooden Pickaxe | :wood_pickaxe:
|
| U+E108 | File:Wooden Pickaxe emoji.png |
| Wooden Sword | :wood_sword:
|
| U+E109 | File:Wooden Sword emoji.png |
| Crafting Table | :crafting_table:
|
| U+E10A | File:Crafting Table emoji.png |
| Furnace | :furnace:
|
| U+E10B | File:Furnace emoji.png |
HUD
| Name | Shortcode | Character | Unicode | Preview |
|---|---|---|---|---|
| Armor | :armor:
|
| U+E101 | File:Armor emoji.png |
| Crosshair | :tip_crosshair:
|
| U+E017 | File:Crosshair emoji.png |
| Food | :shank:
|
| U+E100 | File:Shank emoji.png |
| Heart | :heart:
|
| U+E10C | File:Heart emoji.png |
Marketplace
| Name | Shortcode | Character | Unicode | Preview |
|---|---|---|---|---|
| Minecoin | :minecoin:
|
| U+E102 | File:Minecoin emoji.png |
| Token | :minecoin:
|
| U+E105 | File:Token emoji.png |
- On non-PlayStation devices, both
:minecoin:and:token:will display the Minecoin emoji.
Recipe book
| Name | Shortcode | Character | Unicode | Preview |
|---|---|---|---|---|
| Craftable Toggle On | :craftable_toggle_on:
|
| U+E0A0 | File:Craftable Toggle On emoji.png |
| Craftable Toggle Off | :craftable_toggle_off:
|
| U+E0A1 | File:Craftable Toggle Off emoji.png |
Controls
Mouse
| Name | Shortcode | Character | Unicode | Preview |
|---|---|---|---|---|
| Mouse Left Button | :mouse_left_button:
|
| U+E060 | File:Left Button emoji.png |
| Mouse Right Button | :mouse_right_button:
|
| U+E061 | File:Right Button emoji.png |
| Mouse Middle Button | :mouse_middle_button:
|
| U+E062 | File:Middle Button emoji.png |
| Mouse Button | :mouse_button:
|
| U+E063 | File:Button emoji.png |
| Light Mouse Left Button | :light_mouse_left_button:
|
| U+E070 | File:Light Left Button emoji.png |
| Light Mouse Right Button | :light_mouse_right_button:
|
| U+E071 | File:Light Right Button emoji.png |
| Light Mouse Middle Button | :light_mouse_middle_button:
|
| U+E072 | File:Light Middle Button emoji.png |
| Light Mouse Button | :light_mouse_button:
|
| U+E073 | File:Light Button emoji.png |
Touch
| Name | Shortcode | Character | Unicode | Preview |
|---|---|---|---|---|
| Forward | :touch_forward:
|
| U+E080 | File:Forward emoji.png |
| Left | :touch_left:
|
| U+E081 | File:Left emoji.png |
| Back | :touch_back:
|
| U+E082 | File:Back emoji.png |
| Right | :touch_right:
|
| U+E083 | File:Right emoji.png |
| Jump | :touch_jump:
|
| U+E084 | File:Jump emoji.png |
| Sneak | :touch_sneak:
|
| U+E085 | File:Sneak emoji.png |
| Emote | ? | | U+E089 | File:Emote emoji.png |
| Chat | :touch_chat:
|
| U+E08A | File:Chat emoji.png |
| Pause | ? | | U+E08B | File:Pause emoji.png |
| Sprint (Double Tap) | :touch_sprint_double_tap:
|
| U+E064 | File:Sprint Double Tap emoji.png |
| Jump | :tip_virtual_button_jump:
|
| U+E014 | File:Jump emoji.png |
| Attack | :tip_virtual_button_action_attack_or_destroy:
|
| U+E015 | File:Attack emoji.png |
| Joystick | :tip_virtual_joystick:
|
| U+E016 | File:Joystick emoji.png |
| Joystick Forward | :touch_virtual_joystick_forward:
|
| U+E08C | File:Joystick Forward emoji.png |
| Joystick Left | :touch_virtual_joystick_left:
|
| U+E08D | File:Joystick Left emoji.png |
| Joystick Back | :touch_virtual_joystick_back:
|
| U+E08E | File:Joystick Back emoji.png |
| Joystick Right | :touch_virtual_joystick_right:
|
| U+E08F | File:Joystick Right emoji.png |
| Place | :tip_virtual_button_action_build_or_use:
|
| U+E018 | File:Place emoji.png |
| Sneak | :tip_virtual_button_sneak:
|
| U+E019 | File:Sneak emoji.png |
| Sprint | :tip_virtual_button_sprint:
|
| U+E01A | File:Sprint emoji.png |
| Fly Up | :tip_virtual_button_fly_up:
|
| U+E01B | File:Fly Up emoji.png |
| Fly Down | :tip_virtual_button_fly_down:
|
| U+E01C | File:Fly Down emoji.png |
| Dismount | :tip_virtual_button_dismount:
|
| U+E01D | File:Dismount emoji.png |
| Fly Up | :touch_fly_up:
|
| U+E086 | File:Fly Up Old emoji.png |
| Fly Down | :touch_fly_down:
|
| U+E087 | File:Fly Down Old emoji.png |
| Stop Flying | :touch_stop_flying:
|
| U+E088 | File:Stop Flying emoji.png |
| Small Sneak | :tip_touch_sneak:
|
| U+E05A | File:Small Sneak emoji.png |
| Small Jump | :tip_touch_jump:
|
| U+E059 | File:Small Jump emoji.png |
| Small Inventory | :tip_touch_inventory:
|
| U+E05B | File:Small Inventory emoji.png |
| Small Fly Up | :tip_touch_fly_up:
|
| U+E05C | File:Small Fly Up emoji.png |
| Small Fly Down | :tip_touch_fly_down:
|
| U+E05D | File:Small Fly Down emoji.png |
| Small Up Arrow | :tip_touch_forward:
|
| U+E055 | File:Small Up Arrow emoji.png |
| Small Left Arrow | :tip_touch_left:
|
| U+E056 | File:Small Left Arrow emoji.png |
| Small Down Arrow | :tip_touch_back:
|
| U+E057 | File:Small Down Arrow emoji.png |
| Small Right Arrow | :tip_touch_right:
|
| U+E058 | File:Small Right Arrow emoji.png |
Controller
| Name | Shortcode | Character | Unicode | Preview |
|---|---|---|---|---|
| Left Stick Up | :ps4_left_stick_up:
|
| U+E0D0 | (/assets/images/text/emojis/controller/left_stick_up.png) |
| Left Stick Left | :ps4_left_stick_left:
|
| U+E0D1 | (/assets/images/text/emojis/controller/left_stick_left.png) |
| Left Stick Down | :ps4_left_stick_down:
|
| U+E0D2 | (/assets/images/text/emojis/controller/left_stick_down.png) |
| Left Stick Right | :ps4_left_stick_right:
|
| U+E0D3 | (/assets/images/text/emojis/controller/left_stick_right.png) |
| Right Stick Up | :ps4_right_stick_up:
|
| U+E0D0 | (/assets/images/text/emojis/controller/right_stick_up.png) |
| Right Stick Left | :ps4_right_stick_left:
|
| U+E0D1 | (/assets/images/text/emojis/controller/right_stick_left.png) |
| Right Stick Down | :ps4_right_stick_down:
|
| U+E0D2 | (/assets/images/text/emojis/controller/right_stick_down.png) |
| Right Stick Right | :ps4_right_stick_right:
|
| U+E0D3 | (/assets/images/text/emojis/controller/right_stick_right.png) |
Nintendo Switch
| Name | Shortcode | Character | Unicode | Preview |
|---|---|---|---|---|
| A | :switch_face_button_down:
|
| U+E040 |  |
| B | :switch_face_button_right:
|
| U+E041 |  |
| X | :switch_face_button_left:
|
| U+E042 |  |
| Y | :switch_face_button_up:
|
| U+E043 |  |
| Left Bumper | :switch_bumper_left:
|
| U+E044 |  |
| Right Bumper | :switch_bumper_right:
|
| U+E045 |  |
| Left Trigger | :switch_trigger_left:
|
| U+E046 |  |
| Right Trigger | :switch_trigger_right:
|
| U+E047 |  |
| - | :switch_select:
|
| U+E048 |  |
| + | :switch_start:
|
| U+E049 |  |
| Left Stick | :switch_stick_left:
|
| U+E04A |  |
| Right Stick | :switch_stick_right:
|
| U+E04B |  |
| D-pad Up | :switch_dpad_up:
|
| U+E04C |  |
| D-pad Left | :switch_dpad_left:
|
| U+E04D |  |
| D-pad Down | :switch_dpad_down:
|
| U+E04E |  |
| D-pad Right | :switch_dpad_right:
|
| U+E04F |  |
PlayStation
| Name | Shortcode | Character | Unicode | Preview |
|---|---|---|---|---|
| Cross | :ps4_face_button_down:
|
| U+E020 |  |
| Circle | :ps4_face_button_right:
|
| U+E021 |  |
| Square | :ps4_face_button_left:
|
| U+E022 |  |
| Triangle | :ps4_face_button_up:
|
| U+E023 |  |
| Left Bumper | :ps4_bumper_left:
|
| U+E024 |  |
| Right Bumper | :ps4_bumper_right:
|
| U+E025 |  |
| Left Trigger | :ps4_trigger_left:
|
| U+E026 |  |
| Right Trigger | :ps4_trigger_right:
|
| U+E027 |  |
| Touch Pad | :ps4_select:
|
| U+E028 |  |
| Options/Share | :ps4_start:
|
| U+E029 |  |
| Left Stick | :ps4_stick_left:
|
| U+E02A |  |
| Right Stick | :ps4_stick_right:
|
| U+E02B |  |
| D-pad Up | :ps4_dpad_up:
|
| U+E02C |  |
| D-pad Left | :ps4_dpad_left:
|
| U+E02D |  |
| D-pad Down | :ps4_dpad_down:
|
| U+E02E |  |
| D-pad Right | :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
| Name | Shortcode | Character | Unicode | Preview |
|---|---|---|---|---|
| A | :xbox_face_button_down:
|
| U+E000 |  |
| B | :xbox_face_button_right:
|
| U+E001 |  |
| X | :xbox_face_button_left:
|
| U+E002 |  |
| Y | :xbox_face_button_up:
|
| U+E003 |  |
| Left Bumper | :xbox_bumper_left:
|
| U+E004 |  |
| Right Bumper | :xbox_bumper_right:
|
| U+E005 |  |
| Left Trigger | :xbox_trigger_left:
|
| U+E006 |  |
| Right Trigger | :xbox_trigger_right:
|
| U+E007 |  |
| Select | :xbox_select:
|
| U+E008 |  |
| Start | :xbox_start:
|
| U+E009 |  |
| Left Stick | :xbox_stick_left:
|
| U+E00A |  |
| Right Stick | :xbox_stick_right:
|
| U+E00B |  |
| D-Pad Up | :xbox_dpad_up:
|
| U+E00C |  |
| D-Pad Left | :xbox_dpad_left:
|
| U+E00D |  |
| D-Pad Down | :xbox_dpad_down:
|
| U+E00E |  |
| D-Pad Right | :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 characters
Template:IN, there are 2 characters that are accessible only through technical means:
- The first is Template:Mono, 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" character,Template:Fn 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 Template:W. More information on this character can be found at Minecraft:Missing textures and models#Missing font character.
Template:IN, a character with no texture data appears as a blank space. The Template:Mono shown belongs to GNU Unifont.
Providers
A font is constructed from a list of providers, sources that provide characters to use. Different providers use different formats and methods of constructing characters. The default font uses all except for ttf.
A font file uses the following format:
- Template:Nbt: The root object.
- Template:Nbt: A list of providers.
- Template:Nbt: A provider. Each type of provider is elaborated below.
- Template:Nbt: The type of provider.
- Template:Nbt: Options in Language -> Font Settings that must be in the given state for the provider to be used. Right now, these buttons are hardcoded, preventing the extension of these font filtering capabilities beyond the preset options provided.
- Template:Nbt: Optional. The value that the "Force Uniform" option must be for this font provider to be enabled.
- Template:Nbt: Optional. The value that the "Japanese Glyph Variants" option must be for this font provider to be enabled.
- Template:Nbt: A provider. Each type of provider is elaborated below.
- Template:Nbt: A list of providers.
Bitmap provider
The bitmap provider defines simple bitmap glyphs – glyphs from textures.
- Template:Nbt: The provider.
- Template:Nbt:
bitmap. - Template:Nbt: The amount of vertical shifting is applied to the glyph. In typography, the ascent is the distance above the baseline to the cap height (top of glyph). The baseline in a glyph is the line where the descender begins. For example, in the lowercase letter Template:Mono, the bottom end of the Template:Mono extends past the baseline. In Vanilla, when the height is 8, the ascent is most often 7, as the descender is 1.
- Template:Nbt: The characters associated with each glyph in the texture file. The characters inside each string entry inside this list are mapped to the corresponding positions in the referenced file. The texture is divided evenly according to the number of strings in the list, and the length of the longest string in that list.
- Template:Nbt: One line of characters.
- Template:Nbt: The PNG file used for the characters of this provider. Textures may be any size, and glyphs may be any color. White glyphs can be colored any other color in-game. Other colors retain that tint when re-colored. Black glyphs always appear black. The glyphs' widths are automatically determined based on the last right-most column of pixels containing any alpha value above 0. Glyphs themselves must not be larger than 256×256 pixels.
- Template:Nbt: The scale of the resulting glyph. This scale should generally match the glyph's individual height, or be a power of it. While heights outside of this recommended range are allowed and are valid, the resulting glyphs declared inside the provider appears warped when rendered in-game. The height field is optional. When not defined, it defaults to 8, regardless of the underlying texture resolution.
- Template:Nbt:
UTF-16 codepoints encoded in UTF-8 sequences can be used by use of surrogate pairs. To convert a character into a surrogate pair, one can use the following equations, where C is the codepoint in decimal:
- High Surrogate (first codepoint): Template:Math
- Low Surrogate (second codepoint): Template:Math
When the length of either chars or its strings is not a divisor of the resource's dimensions, it can result in an unexpected division of glyphs. The Unicode escape Template:Mono can be used to add padding in the list. Padding acts as a "dummy character", so that the glyph data at that corresponding position in the file is not assigned a character.
Space provider
The space provider defines the width of a character's glyph.
- Template:Nbt: The provider.
- Template:Nbt:
space. - Template:Nbt: Object that specifies the width of each character. The keys are the characters. The keys must be only 1 grapheme long (multi-byte character still count as one character, like Template:Mono, which is encoded as
0xF0 0x9F 0x94 0xA5). Although it is intended to be used for whitespace characters (characters that have "WSpace=Y" in Unicode), it can be used for any character, as long as there is no prior definition of that character's glyph.- Template:Nbt: The width of the character specified by the key. Values must be an integer whose absolute value is less than or equal to 256. Negative values are forced to 0 when typed in Minecraft:chat.
- Template:Nbt:
By default, the game has two widths defined:
- U+0020 <SPACE> SPACE is 4
- U+200C <ZWNJ> ZERO WIDTH NON-JOINER is 0
TTF provider
The ttf provider embeds already-compiled TrueType and OpenType fonts.Template:Fn
- Template:Nbt: The provider.
- Template:Nbt:
ttf. - Template:Nbt: A Minecraft:resource location to a file ending in
.ttf. Path is relative to the Template:Code directory. - Template:Nbt: The resolution to render at. Values that don't match the glyph's native em sizing division or DPI cause it to be anti-aliased.
- Template:Nbt: An array of two integers. It defines how much each glyph contained in this TrueType font is to be moved horizontally and vertically.
- Template:Nbt: The horizontal shifting (positive is leftward, negative is rightward).
- Template:Nbt: The vertical shifting (positive is downward, negative is upward).
- Template:Nbt: This field is similar to a bitmap provider's height field. This is a divisor by which the em-size of the font's glyphs are to be divided and then fitted into the bitmap grid. This value can vary greatly across different fonts.
- Template:NbtTemplate:Nbt: A list of strings or a string of the characters to which this font has no assignment. If it is a list of strings, the strings are concatenated together and then act as if it were originally a string. This allows the same input as a bitmap provider's chars.
- Template:Nbt:
Unihex provider
The unihex provider is a replacement for the Legacy Unicode provider. It uses the GNU Unifont .hex format. It references a ZIP archive that contains a number of .hex files.
- Template:Nbt: The provider.
- Template:Nbt:
unihex. - Template:Nbt: A Minecraft:resource location to a .ZIP archive file. It must be openable by Java's ZipFile. Inside, there must be at least 1
.hexfile at the root of the archive. Subdirectories are not walked through and filenames with an extension different from.hexare ignored. Filenames must follow normal file resource name rules.- Template:Nbt: Each .hex file in the .ZIP archive contains one or more glyph definitions. Each line has one glyph definition, and follows the format
<codepoint>:<data>.<codepoint>is the Unicode codepoint, without the U+ or 0x. It must have four, five, or six digits. The<data>is a hexadecimal number that encodes the glyph data. Glyphs are always sixteen pixels high. Glyphs can be eight, sixteen, 24, or 32 pixels wide.Template:Fn
- Template:Nbt: Each .hex file in the .ZIP archive contains one or more glyph definitions. Each line has one glyph definition, and follows the format
- Template:Nbt: Defines custom widths for a range of characters.
- Template:Nbt: One range.
- Template:Nbt: The starting character for the range at which this size override applies to.
- Template:Nbt: The ending character for this range. Both
fromandtomust be one character. - Template:Nbt: The position of the left-most column of glyphs in range.
- Template:Nbt: The position of the right-most column of glyphs in range. Both
leftandrightmust be between 0 and 32, inclusive.
- Template:Nbt: One range.
- Template:Nbt:
Reference provider
The reference provider serves one purpose: to include another provider only once. It can be used to include providers from other fonts in other resource packs.
Referenced providers are guaranteed to be loaded only once, no matter how many times they are included.
- Template:Nbt: The provider.
- Template:Nbt:
reference. - Template:Nbt: A Minecraft:resource location to another font file.
- Template:Nbt:
Legacy Unicode provider
The legacy_unicode provider is similar to the bitmap provider in that it loads glyphs from only textures. This format is deprecated, and is prioritized only when the "Force Unicode Font" option is turned on. It acts as a "fallback" for glyphs that no other provider has defined a texture for.
- Template:Nbt: The provider.
- Template:Nbt:
legacy_unicode. - Template:Nbt: A reference to a set of files. The string
%smust be included in this field.%sis replaced with every valid page number, in hexadecimal. - Template:Nbt: A reference to a binary resource that contains the widths of each glyph. Most often, this file is called
glyph_sizes.bin; this is its default name.
- Template:Nbt:
Templates, specified by the template field, are name-based, and are all PNG files. Each template file must have equal width and height. The template numbering scheme works based off of the Unicode BMP. The number used is equal to a BMP codepoint's high byte.Template:FnTemplate:Fn These template textures are called "pages". Template page "22" must cover characters Template:Mono to Template:Mono. Page numbers go from 00 to FF. Characters beyond Template:Mono cannot be changed through this provider. By default, each glyph is 16×16 pixels wide, so each individual template page is 256×256 pixels (16 glyphs on each line, 16 lines). Its default textures are an outdated version of GNU Unifont.<ref>Template:Bug</ref>
The file referenced by the sizes field must have the following format. Each character width is one byte large. The high nibbleTemplate:Fn records the starting position, while the lower nibble records the ending position in the 16×16 glyph grid. For this reason, the file must be 0xFFFF bytes long (65535 in decimal).
A specific character's width is determined by finding its codepoints byte. The character 'A' has a codepoint of Template:Mono, so byte offset Template:Mono (65 in decimal) would be addressed. A square character occupying the entire grid (pixel width #1 [0, 0x0] through #16 [15, 0xF]) would have a value of 0x0F (15 in decimal).
Widths cannot extend past 16 pixels, and characters whose codepoints are greater than Template:Mono are not handled. Some codepoints are invalid on their own. These are the surrogate pairs; they are used to encode codepoints higher than Template:Mono in UTF-16. This means that the template pages Template:Code are invalid and cannot be used.
History
Java Edition
Bedrock Edition
Legacy Console Edition
Issues
Trivia
- Although not in the changelog or specification, the default copy of the Template:Cd provider also includes a Template:Nbt field in the Template:Nbt entries of Template:Nbt. It is a list of strings, being the Unicode block names of the applying range.
- The Minecraft: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 Template:Mono 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.
-
The collection of the emojis in Java Edition.
-
A diagram of typography terms and their relation to the font.
-
Example of how multi-sequence emojis do not render correctly. This is the emoji Template:Mono. The [ZWJ] are Template:Mono
-
Side-by-side comparison of � and the notdef character.
-
The 43 supported emojis as they appear in-game.
-
Private-area emojis written in a Minecraft:book in Bedrock Edition.