Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Minecraft:Font: Difference between revisions

From SAS Gaming Wiki
SyncBot (talk | contribs)
Sync: new page from Minecraft
 
SyncBot (talk | contribs)
Sync: updated from Minecraft
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{See also|Formatting codes|Text component format}}
[[File:Minecraft font specimen.png|thumb|The Mojangles font]]
 
'''Fonts''' are used for rendering text in ''Minecraft''. Several fonts are used in the game; the primary font used is known as [[Minecraft:Mojangles]].
'''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 pack]]s.
Multiple fonts can be defined and referenced with [[Minecraft:resource pack]]s.
Line 11: Line 10:
* [[Minecraft:Standard Galactic Alphabet]] – The glyphs in the [[Minecraft:enchanting table]] GUI.
* [[Minecraft:Standard Galactic Alphabet]] – The glyphs in the [[Minecraft:enchanting table]] GUI.
* [[Minecraft:GNU Unifont]] – Replaces Mojangles if the text contains unsupported characters.
* [[Minecraft:GNU Unifont]] – Replaces Mojangles if the text contains unsupported characters.
* [[Minecraft:Illageralt]] – Unused.
* [[Minecraft:Illageralt]] – Unused, but text can be formatted with it through commands


=== ''Bedrock Edition'' ===
=== ''Bedrock Edition'' ===
Line 40: Line 39:
== Display modifications ==
== Display modifications ==


=== Bold text ===
=== Formatting ===
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.
{{Main|Formatting codes}}
Any font can be formatted with the <code>§</code> sign in-game (deprecated in {{JE}}), or the [[Minecraft:text component format]] in commands.{{Only|je}}
 
* A color code can change the color of the foreground text and the shadow (see below). There are 29 color codes{{Only|be|short=1}}, or both of these allow any HEX color.{{Only|je|short=1}}
 
* Bold text (<code>§l</code>) 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 (<code>§o</code>), underlined (<code>§n</code>),{{Only|je|short=1}} and striked (<code>§m</code>).{{Only|je|short=1}} "Obfuscated" (<code>§k</code>) constantly replaces each character with a random character of the same width.


=== Experience bar text ===
=== 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 ({{Color|#000000}}) offset by one scaled unit in each orthogonal direction, then drawing the text in green ({{Color|#80FF20}}) at the original position.
The text on the experience bar is bright green [[Minecraft:Mojangles]] with a black outline in ''Java Edition''. This is done by drawing the text in black ({{Color|#000000}}) offset by one scaled unit in each orthogonal direction, then drawing the text in green ({{Color|#80FF20}}) at the original position. Experience bar text has no unique effect in ''Bedrock Edition'', only the green color.


=== Shadow ===
=== Shadow ===
Line 55: Line 60:


=== Glowing text ===
=== Glowing text ===
[[File:Glow text.gif|right|thumb|Comparison of all the dyed glowing texts.]]
[[File:Glow text.gif|thumb|Comparison of all the dyed glowing texts|width=325x325]]


[[Minecraft:Glow Ink Sac|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 {{Control|use}} a black ink sac on the sign to remove the glow.
[[Minecraft:Glow Ink Sac|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 {{Control|use}} a black ink sac on the sign to remove the glow.
Line 62: Line 67:


== Emoji support ==
== Emoji support ==
''Minecraft'' has included textures for a number of emojis. The earliest emoji textures were for {{mono|☺☻}}.
[[File:Emojis.png|thumb|The Mojangles emoji in {{JE}}]]
Since [[Minecraft:Java Edition 1.15|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 [[Minecraft:wikipedia:Emoji#Emoji_versus_text_presentation|emoji presentation]]. The skin tone modifiers {{mono|U+1F3FB..U+1F3FF 🏻 🏼 🏽 🏾 🏿}}<!-- Be careful when changing these, as your text input likely treats the skin tone modifiers as 'unselectable' or innately part of the prior space. --> do not apply colored skin tones to their applicable emojis, and instead show tones as their Unifont glyphs. Joining multiple emojis via {{mono|U+200D &zwj; ZERO WIDTH JOINER}} to create 1 single emoji is not supported; multi-sequence emoji such as {{mono|👨‍👩‍👧}} instead show as {{mono|👨&zwnj;👩&zwnj;👧}} with dotted boxes showing {{mono|ZWJ}} between them. Variation selectors, which control presentation, are displayed as dotted boxes with {{mono|VS''number''}}.
''Minecraft'' has included support for a number of emoji. The game does not support modifiers, such as skin tone, joining, or [[Minecraft:wikipedia:Emoji#Emoji_versus_text_presentation|emoji presentation]]. The skin tone modifiers {{unicode|🏻}}, {{unicode|🏼}}, {{unicode|🏽}}, {{unicode|🏾}}, and {{unicode|🏿}}<!-- Be careful when changing these, as your text input likely treats the skin tone modifiers as 'unselectable' or innately part of the prior space. --> ({{mono|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 {{mono|U+200D &zwj; ZERO WIDTH JOINER}} to create 1 single emoji is not supported; multi-sequence emoji such as {{mono|👨‍👩‍👧}} instead show as {{mono|👨&zwnj;👩&zwnj;👧}} with dotted boxes showing {{mono|ZWJ}} between them. Variation selectors, which control presentation, are displayed as dotted boxes with {{mono|VS''number''}}.


For characters supported in the default font, as opposed to the fallback fonts, see [[Minecraft:Mojangles#Emoji]].
For characters supported in the default font, as opposed to the fallback fonts, see {{Slink|Mojangles|Emoji}}.


''Bedrock Edition'' does not support any character above {{mono|U+FFFF}}, which includes many modern emoji. It does not include any textures for emojis below that either; only those provided by GNU Unifont below {{mono|U+FFFF}} are included and visible.
''Bedrock Edition'' does not support any character above {{mono|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 {{mono|U+FFFF}} are included and visible.


=== Private-area emojis ===
=== Private-area emoji ===
{{Exclusive|bedrock|section=1}}{{More images|Add previews from controller emojis|section=1}}Instead of emojis in font files, ''Bedrock Edition'' has several hard-coded {{W|Private Use Areas|Private Use Unicode symbols}} that it automatically converts to emoji-like symbols in any font, which can also be entered with a shortcode (<code>:heart:</code>). 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>{{cite|url=https://wiki.bedrock.dev/concepts/emojis|title=Emojis & Symbols|website=Bedrock Wiki|date=April 1, 2024}}</ref><ref>{{bug|MCPE-185774|MCPE-185774|New server UI does not show some characters|WF}}</ref>
{{Exclusive|bedrock|section=1}}
[[File:Emojis in book.png|thumb|Emoji in a book]]
Instead of emoji in font files, ''Bedrock Edition'' has several hard-coded {{W|Private Use Areas|Private Use Unicode symbols}} that it automatically converts to emoji-like symbols in any font, which can also be entered with a shortcode (<code>:heart:</code>). These are used by the game in [[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]], [[Minecraft:resource packs]], etc. Emoji are not displayed by [[Minecraft:Ore UI]] menu screens.<ref>{{cite|url=https://wiki.bedrock.dev/concepts/emojis|title=Emojis & Symbols|website=Bedrock Wiki|date=April 1, 2024}}</ref><ref>{{bug|MCPE-185774||New server UI does not show some characters|WF}}</ref>


There exist 2 [[Minecraft:w:Private Use Areas|Private Use Area]] sheets: {{code|glyph_E0.png|glyph_E1.png}}. {{mono|E0}} contains glyphs for control icons, such as {{Xbutton|onea}} and {{Nsbutton|dpad-right}}. {{mono|E1}} contains glyphs for miscellaneous icons, including the minecoin and [[Minecraft:Agent]] icon. E0 characters are categorized in {{cd|emoticons.json}}.<ref>https://github.com/TwistedAsylumMC/bedrock-unicode-characters</ref>
There exist 2 [[Minecraft:w:Private Use Areas|Private Use Area]] sheets: {{code|glyph_E0.png|glyph_E1.png}}. {{mono|E0}} contains glyphs for control icons, such as {{Xbutton|onea}} and {{Nsbutton|dpad-right}}. {{mono|E1}} contains glyphs for miscellaneous icons, including the Minecoin and Agent icon. E0 characters are categorized in {{cd|emoticons.json}}.<ref>https://github.com/TwistedAsylumMC/bedrock-unicode-characters</ref>


==== Blocks & items ====
==== Blocks & items ====
{| class="wikitable"
{| class="wikitable"
!Name
!Shortcode
!Shortcode
!Character
!Character
Line 82: Line 88:
!Preview
!Preview
|-
|-
|Wooden Pickaxe
|<code>:wood_pickaxe:</code>
|<code>:wood_pickaxe:</code>
|&#xE108;
|&#xE108;
Line 88: Line 93:
|[[File:Wooden_Pickaxe_emoji.png]]
|[[File:Wooden_Pickaxe_emoji.png]]
|-
|-
|Wooden Sword
|<code>:wood_sword:</code>
|<code>:wood_sword:</code>
|&#xE109;
|&#xE109;
Line 94: Line 98:
|[[File:Wooden_Sword_emoji.png]]
|[[File:Wooden_Sword_emoji.png]]
|-
|-
|Crafting Table
|<code>:crafting_table:</code>
|<code>:crafting_table:</code>
|&#xE10A;
|&#xE10A;
Line 100: Line 103:
|[[File:Crafting_Table_emoji.png]]
|[[File:Crafting_Table_emoji.png]]
|-
|-
|Furnace
|<code>:furnace:</code>
|<code>:furnace:</code>
|&#xE10B;
|&#xE10B;
Line 109: Line 111:
==== HUD ====
==== HUD ====
{| class="wikitable"
{| class="wikitable"
!Name
!Shortcode
!Shortcode
!Character
!Character
Line 115: Line 116:
!Preview
!Preview
|-
|-
|Armor
|<code>:armor:</code>
|<code>:armor:</code>
|&#xE101;
|&#xE101;
Line 121: Line 121:
|[[File:Armor_emoji.png]]
|[[File:Armor_emoji.png]]
|-
|-
|Crosshair
|<code>:tip_crosshair:</code>
|<code>:tip_crosshair:</code>
|&#xE017;
|&#xE017;
Line 127: Line 126:
|[[File:Crosshair_emoji.png]]
|[[File:Crosshair_emoji.png]]
|-
|-
|Food
|<code>:shank:</code>
|<code>:shank:</code>
|&#xE100;
|&#xE100;
Line 133: Line 131:
|[[File:Shank_emoji.png]]
|[[File:Shank_emoji.png]]
|-
|-
|Heart
|<code>:heart:</code>
|<code>:heart:</code>
|&#xE10C;
|&#xE10C;
Line 142: Line 139:
==== Marketplace ====
==== Marketplace ====
{| class="wikitable"
{| class="wikitable"
!Name
!Shortcode
!Shortcode
!Character
!Character
Line 148: Line 144:
!Preview
!Preview
|-
|-
|Minecoin
|<code>:minecoin:</code>
|<code>:minecoin:</code>
<code>:token:</code>
<code>:token:</code>
Line 155: Line 150:
|[[File:Minecoin_emoji.png]]
|[[File:Minecoin_emoji.png]]
|-
|-
|Token
|<code>:minecoin:</code>
|<code>:minecoin:</code>
<code>:token:</code>
<code>:token:</code>
Line 167: Line 161:
==== Recipe book ====
==== Recipe book ====
{| class="wikitable"
{| class="wikitable"
!Name
!Shortcode
!Shortcode
!Character
!Character
Line 173: Line 166:
!Preview
!Preview
|-
|-
|Craftable Toggle On
|<code>:craftable_toggle_on:</code>
|<code>:craftable_toggle_on:</code>
|&#xE0A0;
|&#xE0A0;
Line 179: Line 171:
|[[File:Craftable_Toggle_On_emoji.png]]
|[[File:Craftable_Toggle_On_emoji.png]]
|-
|-
|Craftable Toggle Off
|<code>:craftable_toggle_off:</code>
|<code>:craftable_toggle_off:</code>
|&#xE0A1;
|&#xE0A1;
Line 187: Line 178:


==== Controls ====
==== Controls ====
<div class="mw-collapsible mw-collapsed">
 
===== Mouse =====
===== Mouse =====
{| class="wikitable"
{| class="wikitable collapsible collapsed"
!Name
!Shortcode
!Shortcode
!Character
!Character
Line 196: Line 186:
!Preview
!Preview
|-
|-
|Mouse Left Button
|<code>:mouse_left_button:</code>
|<code>:mouse_left_button:</code>
|&#xE060;
|&#xE060;
Line 202: Line 191:
|[[File:Left_Button_emoji.png]]
|[[File:Left_Button_emoji.png]]
|-
|-
|Mouse Right Button
|<code>:mouse_right_button:</code>
|<code>:mouse_right_button:</code>
|&#xE061;
|&#xE061;
Line 208: Line 196:
|[[File:Right_Button_emoji.png]]
|[[File:Right_Button_emoji.png]]
|-
|-
|Mouse Middle Button
|<code>:mouse_middle_button:</code>
|<code>:mouse_middle_button:</code>
|&#xE062;
|&#xE062;
Line 214: Line 201:
|[[File:Middle_Button_emoji.png]]
|[[File:Middle_Button_emoji.png]]
|-
|-
|Mouse Button
|<code>:mouse_button:</code>
|<code>:mouse_button:</code>
|&#xE063;
|&#xE063;
Line 220: Line 206:
|[[File:Button_emoji.png]]
|[[File:Button_emoji.png]]
|-
|-
|Light Mouse Left Button
|<code>:light_mouse_left_button:</code>
|<code>:light_mouse_left_button:</code>
|&#xE070;
|&#xE070;
Line 226: Line 211:
|[[File:Light_Left_Button_emoji.png]]
|[[File:Light_Left_Button_emoji.png]]
|-
|-
|Light Mouse Right Button
|<code>:light_mouse_right_button:</code>
|<code>:light_mouse_right_button:</code>
|&#xE071;
|&#xE071;
Line 232: Line 216:
|[[File:Light_Right_Button_emoji.png]]
|[[File:Light_Right_Button_emoji.png]]
|-
|-
|Light Mouse Middle Button
|<code>:light_mouse_middle_button:</code>
|<code>:light_mouse_middle_button:</code>
|&#xE072;
|&#xE072;
Line 238: Line 221:
|[[File:Light_Middle_Button_emoji.png]]
|[[File:Light_Middle_Button_emoji.png]]
|-
|-
|Light Mouse Button
|<code>:light_mouse_button:</code>
|<code>:light_mouse_button:</code>
|&#xE073;
|&#xE073;
Line 246: Line 228:


===== Touch =====
===== Touch =====
{| class="wikitable"
{| class="wikitable collapsible collapsed"
!Name
!Shortcode
!Shortcode
!Character
!Character
Line 253: Line 234:
!Preview
!Preview
|-
|-
|Forward
|<code>:touch_forward:</code>
|<code>:touch_forward:</code>
|&#xE080;
|&#xE080;
Line 259: Line 239:
|[[File:Forward_emoji.png]]
|[[File:Forward_emoji.png]]
|-
|-
|Left
|<code>:touch_left:</code>
|<code>:touch_left:</code>
|&#xE081;
|&#xE081;
Line 265: Line 244:
|[[File:Left_emoji.png]]
|[[File:Left_emoji.png]]
|-
|-
|Back
|<code>:touch_back:</code>
|<code>:touch_back:</code>
|&#xE082;
|&#xE082;
Line 271: Line 249:
|[[File:Back_emoji.png]]
|[[File:Back_emoji.png]]
|-
|-
|Right
|<code>:touch_right:</code>
|<code>:touch_right:</code>
|&#xE083;
|&#xE083;
Line 277: Line 254:
|[[File:Right_emoji.png]]
|[[File:Right_emoji.png]]
|-
|-
|Jump
|<code>:touch_jump:</code>
|<code>:touch_jump:</code>
|&#xE084;
|&#xE084;
Line 283: Line 259:
|[[File:Jump_emoji.png]]
|[[File:Jump_emoji.png]]
|-
|-
|Sneak
|<code>:touch_sneak:</code>
|<code>:touch_sneak:</code>
|&#xE085;
|&#xE085;
Line 289: Line 264:
|[[File:Sneak_emoji.png]]
|[[File:Sneak_emoji.png]]
|-
|-
|Emote
|?
|?
|&#xE089;
|&#xE089;
Line 295: Line 269:
|[[File:Emote_emoji.png]]
|[[File:Emote_emoji.png]]
|-
|-
|Chat
|<code>:touch_chat:</code>
|<code>:touch_chat:</code>
|&#xE08A;
|&#xE08A;
Line 301: Line 274:
|[[File:Chat_emoji.png]]
|[[File:Chat_emoji.png]]
|-
|-
|Pause
|?
|?
|&#xE08B;
|&#xE08B;
Line 307: Line 279:
|[[File:Pause_emoji.png]]
|[[File:Pause_emoji.png]]
|-
|-
|Sprint (Double Tap)
|<code>:touch_sprint_double_tap:</code>
|<code>:touch_sprint_double_tap:</code>
|&#xE064;
|&#xE064;
Line 313: Line 284:
|[[File:Sprint_Double_Tap_emoji.png]]
|[[File:Sprint_Double_Tap_emoji.png]]
|-
|-
|Jump
|<code>:tip_virtual_button_jump:</code>
|<code>:tip_virtual_button_jump:</code>
|&#xE014;
|&#xE014;
Line 319: Line 289:
|[[File:Jump_emoji.png]]
|[[File:Jump_emoji.png]]
|-
|-
|Attack
|<code>:tip_virtual_button_action_attack_or_destroy:</code>
|<code>:tip_virtual_button_action_attack_or_destroy:</code>
|&#xE015;
|&#xE015;
Line 325: Line 294:
|[[File:Attack_emoji.png]]
|[[File:Attack_emoji.png]]
|-
|-
|Joystick
|<code>:tip_virtual_joystick:</code>
|<code>:tip_virtual_joystick:</code>
|&#xE016;
|&#xE016;
Line 331: Line 299:
|[[File:Joystick_emoji.png]]
|[[File:Joystick_emoji.png]]
|-
|-
|Joystick Forward
|<code>:touch_virtual_joystick_forward:</code>
|<code>:touch_virtual_joystick_forward:</code>
|&#xE08C;
|&#xE08C;
Line 337: Line 304:
|[[File:Joystick_Forward_emoji.png]]
|[[File:Joystick_Forward_emoji.png]]
|-
|-
|Joystick Left
|<code>:touch_virtual_joystick_left:</code>
|<code>:touch_virtual_joystick_left:</code>
|&#xE08D;
|&#xE08D;
Line 343: Line 309:
|[[File:Joystick_Left_emoji.png]]
|[[File:Joystick_Left_emoji.png]]
|-
|-
|Joystick Back
|<code>:touch_virtual_joystick_back:</code>
|<code>:touch_virtual_joystick_back:</code>
|&#xE08E;
|&#xE08E;
Line 349: Line 314:
|[[File:Joystick_Back_emoji.png]]
|[[File:Joystick_Back_emoji.png]]
|-
|-
|Joystick Right
|<code>:touch_virtual_joystick_right:</code>
|<code>:touch_virtual_joystick_right:</code>
|&#xE08F;
|&#xE08F;
Line 355: Line 319:
|[[File:Joystick_Right_emoji.png]]
|[[File:Joystick_Right_emoji.png]]
|-
|-
|Place
|<code>:tip_virtual_button_action_build_or_use:</code>
|<code>:tip_virtual_button_action_build_or_use:</code>
|&#xE018;
|&#xE018;
Line 361: Line 324:
|[[File:Place_emoji.png]]
|[[File:Place_emoji.png]]
|-
|-
|Sneak
|<code>:tip_virtual_button_sneak:</code>
|<code>:tip_virtual_button_sneak:</code>
|&#xE019;
|&#xE019;
Line 367: Line 329:
|[[File:Sneak_emoji.png]]
|[[File:Sneak_emoji.png]]
|-
|-
|Sprint
|<code>:tip_virtual_button_sprint:</code>
|<code>:tip_virtual_button_sprint:</code>
<code>:touch_sprint:</code>
<code>:touch_sprint:</code>
Line 374: Line 335:
|[[File:Sprint_emoji.png]]
|[[File:Sprint_emoji.png]]
|-
|-
|Fly Up
|<code>:tip_virtual_button_fly_up:</code>
|<code>:tip_virtual_button_fly_up:</code>
|&#xE01B;
|&#xE01B;
Line 380: Line 340:
|[[File:Fly_Up_emoji.png]]
|[[File:Fly_Up_emoji.png]]
|-
|-
|Fly Down
|<code>:tip_virtual_button_fly_down:</code>
|<code>:tip_virtual_button_fly_down:</code>
|&#xE01C;
|&#xE01C;
Line 386: Line 345:
|[[File:Fly_Down_emoji.png]]
|[[File:Fly_Down_emoji.png]]
|-
|-
|Dismount
|<code>:tip_virtual_button_dismount:</code>
|<code>:tip_virtual_button_dismount:</code>
|&#xE01D;
|&#xE01D;
Line 392: Line 350:
|[[File:Dismount_emoji.png]]
|[[File:Dismount_emoji.png]]
|-
|-
|Fly Up
|<code>:touch_fly_up:</code>
|<code>:touch_fly_up:</code>
|&#xE086;
|&#xE086;
Line 398: Line 355:
|[[File:Fly_Up_Old_emoji.png]]
|[[File:Fly_Up_Old_emoji.png]]
|-
|-
|Fly Down
|<code>:touch_fly_down:</code>
|<code>:touch_fly_down:</code>
|&#xE087;
|&#xE087;
Line 404: Line 360:
|[[File:Fly_Down_Old_emoji.png]]
|[[File:Fly_Down_Old_emoji.png]]
|-
|-
|Stop Flying
|<code>:touch_stop_flying:</code>
|<code>:touch_stop_flying:</code>
|&#xE088;
|&#xE088;
Line 410: Line 365:
|[[File:Stop_Flying_emoji.png]]
|[[File:Stop_Flying_emoji.png]]
|-
|-
|Small Sneak
|<code>:tip_touch_sneak:</code>
|<code>:tip_touch_sneak:</code>
|&#xE05A;
|&#xE05A;
Line 416: Line 370:
|[[File:Small_Sneak_emoji.png]]
|[[File:Small_Sneak_emoji.png]]
|-
|-
|Small Jump
|<code>:tip_touch_jump:</code>
|<code>:tip_touch_jump:</code>
|&#xE059;
|&#xE059;
Line 422: Line 375:
|[[File:Small_Jump_emoji.png]]
|[[File:Small_Jump_emoji.png]]
|-
|-
|Small Inventory
|<code>:tip_touch_inventory:</code>
|<code>:tip_touch_inventory:</code>
|&#xE05B;
|&#xE05B;
Line 428: Line 380:
|[[File:Small_Inventory_emoji.png]]
|[[File:Small_Inventory_emoji.png]]
|-
|-
|Small Fly Up
|<code>:tip_touch_fly_up:</code>
|<code>:tip_touch_fly_up:</code>
|&#xE05C;
|&#xE05C;
Line 434: Line 385:
|[[File:Small_Fly_Up_emoji.png]]
|[[File:Small_Fly_Up_emoji.png]]
|-
|-
|Small Fly Down
|<code>:tip_touch_fly_down:</code>
|<code>:tip_touch_fly_down:</code>
|&#xE05D;
|&#xE05D;
Line 440: Line 390:
|[[File:Small_Fly_Down_emoji.png]]
|[[File:Small_Fly_Down_emoji.png]]
|-
|-
|Small Up Arrow
|<code>:tip_touch_forward:</code>
|<code>:tip_touch_forward:</code>
|&#xE055;
|&#xE055;
Line 446: Line 395:
|[[File:Small_Up_Arrow_emoji.png]]
|[[File:Small_Up_Arrow_emoji.png]]
|-
|-
|Small Left Arrow
|<code>:tip_touch_left:</code>
|<code>:tip_touch_left:</code>
|&#xE056;
|&#xE056;
Line 452: Line 400:
|[[File:Small_Left_Arrow_emoji.png]]
|[[File:Small_Left_Arrow_emoji.png]]
|-
|-
|Small Down Arrow
|<code>:tip_touch_back:</code>
|<code>:tip_touch_back:</code>
|&#xE057;
|&#xE057;
Line 458: Line 405:
|[[File:Small_Down_Arrow_emoji.png]]
|[[File:Small_Down_Arrow_emoji.png]]
|-
|-
|Small Right Arrow
|<code>:tip_touch_right:</code>
|<code>:tip_touch_right:</code>
|&#xE058;
|&#xE058;
Line 466: Line 412:


===== Controller =====
===== Controller =====
{| class="wikitable"
{| class="wikitable collapsible collapsed"
!Name
!Shortcode
!Shortcode
!Character
!Character
Line 473: Line 418:
!Preview
!Preview
|-
|-
|Left Stick Up
|<code>:ps4_left_stick_up:</code>
|<code>:ps4_left_stick_up:</code>
<code>:switch_left_stick_up:</code>
<code>:switch_left_stick_up:</code>
Line 479: Line 423:
|&#xE0D0;
|&#xE0D0;
|U+E0D0
|U+E0D0
|(/assets/images/text/emojis/controller/left_stick_up.png)
|[[File:Ps4 left stick up.png]]
|-
|-
|Left Stick Left
|<code>:ps4_left_stick_left:</code>
|<code>:ps4_left_stick_left:</code>
<code>:switch_left_stick_left:</code>
<code>:switch_left_stick_left:</code>
Line 487: Line 430:
|&#xE0D1;
|&#xE0D1;
|U+E0D1
|U+E0D1
|(/assets/images/text/emojis/controller/left_stick_left.png)
|[[File:Ps4 left stick left.png]]
|-
|-
|Left Stick Down
|<code>:ps4_left_stick_down:</code>
|<code>:ps4_left_stick_down:</code>
<code>:switch_left_stick_down:</code>
<code>:switch_left_stick_down:</code>
Line 495: Line 437:
|&#xE0D2;
|&#xE0D2;
|U+E0D2
|U+E0D2
|(/assets/images/text/emojis/controller/left_stick_down.png)
|[[File:Ps4 left stick down.png]]
|-
|-
|Left Stick Right
|<code>:ps4_left_stick_right:</code>
|<code>:ps4_left_stick_right:</code>
<code>:switch_left_stick_right:</code>
<code>:switch_left_stick_right:</code>
Line 503: Line 444:
|&#xE0D3;
|&#xE0D3;
|U+E0D3
|U+E0D3
|(/assets/images/text/emojis/controller/left_stick_right.png)
|[[File:Ps4 left stick right.png]]
|-
|-
|Right Stick Up
|<code>:ps4_right_stick_up:</code>
|<code>:ps4_right_stick_up:</code>
<code>:switch_right_stick_up:</code>
<code>:switch_right_stick_up:</code>
Line 513: Line 453:
|(/assets/images/text/emojis/controller/right_stick_up.png)
|(/assets/images/text/emojis/controller/right_stick_up.png)
|-
|-
|Right Stick Left
|<code>:ps4_right_stick_left:</code>
|<code>:ps4_right_stick_left:</code>
<code>:switch_right_stick_left:</code>
<code>:switch_right_stick_left:</code>
Line 521: Line 460:
|(/assets/images/text/emojis/controller/right_stick_left.png)
|(/assets/images/text/emojis/controller/right_stick_left.png)
|-
|-
|Right Stick Down
|<code>:ps4_right_stick_down:</code>
|<code>:ps4_right_stick_down:</code>
<code>:switch_right_stick_down:</code>
<code>:switch_right_stick_down:</code>
Line 529: Line 467:
|(/assets/images/text/emojis/controller/right_stick_down.png)
|(/assets/images/text/emojis/controller/right_stick_down.png)
|-
|-
|Right Stick Right
|<code>:ps4_right_stick_right:</code>
|<code>:ps4_right_stick_right:</code>
<code>:switch_right_stick_right:</code>
<code>:switch_right_stick_right:</code>
Line 539: Line 476:


====== Nintendo Switch ======
====== Nintendo Switch ======
{| class="wikitable"
{| class="wikitable collapsible collapsed"
!Name
!Shortcode
!Shortcode
!Character
!Character
Line 546: Line 482:
!Preview
!Preview
|-
|-
|A
|<code>:switch_face_button_down:</code>
|<code>:switch_face_button_down:</code>
|&#xE040;
|&#xE040;
|U+E040
|U+E040
|![](/assets/images/text/emojis/switch/a_button.png)
|[[File:Switch face button right.png]]
|-
|-
|B
|<code>:switch_face_button_right:</code>
|<code>:switch_face_button_right:</code>
|&#xE041;
|&#xE041;
|U+E041
|U+E041
|![](/assets/images/text/emojis/switch/b_button.png)
|[[File:Switch face button down.png]]
|-
|-
|X
|<code>:switch_face_button_left:</code>
|<code>:switch_face_button_left:</code>
|&#xE042;
|&#xE042;
|U+E042
|U+E042
|![](/assets/images/text/emojis/switch/x_button.png)
|[[File:Switch face button up.png]]
|-
|-
|Y
|<code>:switch_face_button_up:</code>
|<code>:switch_face_button_up:</code>
|&#xE043;
|&#xE043;
|U+E043
|U+E043
|![](/assets/images/text/emojis/switch/y_button.png)
|[[File:Switch face button left.png]]
|-
|-
|Left Bumper
|<code>:switch_bumper_left:</code>
|<code>:switch_bumper_left:</code>
|&#xE044;
|&#xE044;
|U+E044
|U+E044
|![](/assets/images/text/emojis/switch/left_bumper.png)
|[[File:Switch bumper left.png]]
|-
|-
|Right Bumper
|<code>:switch_bumper_right:</code>
|<code>:switch_bumper_right:</code>
|&#xE045;
|&#xE045;
|U+E045
|U+E045
|![](/assets/images/text/emojis/switch/right_bumper.png)
|[[File:Switch bumper right.png]]
|-
|-
|Left Trigger
|<code>:switch_trigger_left:</code>
|<code>:switch_trigger_left:</code>
|&#xE046;
|&#xE046;
|U+E046
|U+E046
|![](/assets/images/text/emojis/switch/left_trigger.png)
|[[File:Switch left trigger.png]]
|-
|-
|Right Trigger
|<code>:switch_trigger_right:</code>
|<code>:switch_trigger_right:</code>
|&#xE047;
|&#xE047;
|U+E047
|U+E047
|![](/assets/images/text/emojis/switch/right_trigger.png)
|[[File:Switch right trigger.png]]
|-
|-
| -
|<code>:switch_select:</code>
|<code>:switch_select:</code>
|&#xE048;
|&#xE048;
|U+E048
|U+E048
|![](/assets/images/text/emojis/switch/minus.png)
|[[File:Switch select button.png]]
|-
|-
| +
|<code>:switch_start:</code>
|<code>:switch_start:</code>
|&#xE049;
|&#xE049;
|U+E049
|U+E049
|![](/assets/images/text/emojis/switch/plus.png)
|[[File:Switch start button.png]]
|-
|-
|Left Stick
|<code>:switch_stick_left:</code>
|<code>:switch_stick_left:</code>
|&#xE04A;
|&#xE04A;
|U+E04A
|U+E04A
|![](/assets/images/text/emojis/switch/left_stick.png)
|[[File:Switch stick left.png]]
|-
|-
|Right Stick
|<code>:switch_stick_right:</code>
|<code>:switch_stick_right:</code>
|&#xE04B;
|&#xE04B;
|U+E04B
|U+E04B
|![](/assets/images/text/emojis/switch/right_stick.png)
|[[File:Switch stick right.png]]
|-
|-
|D-pad Up
|<code>:switch_dpad_up:</code>
|<code>:switch_dpad_up:</code>
|&#xE04C;
|&#xE04C;
|U+E04C
|U+E04C
|![](/assets/images/text/emojis/switch/dpad_up.png)
|[[File:Switch dpad up.png]]
|-
|-
|D-pad Left
|<code>:switch_dpad_left:</code>
|<code>:switch_dpad_left:</code>
|&#xE04D;
|&#xE04D;
|U+E04D
|U+E04D
|![](/assets/images/text/emojis/switch/dpad_left.png)
|[[File:Switch dpad left.png]]
|-
|-
|D-pad Down
|<code>:switch_dpad_down:</code>
|<code>:switch_dpad_down:</code>
|&#xE04E;
|&#xE04E;
|U+E04E
|U+E04E
|![](/assets/images/text/emojis/switch/dpad_down.png)
|[[File:Switch dpad down.png]]
|-
|-
|D-pad Right
|<code>:switch_dpad_right:</code>
|<code>:switch_dpad_right:</code>
|&#xE04F;
|&#xE04F;
|U+E04F
|U+E04F
|![](/assets/images/text/emojis/switch/dpad_right.png)
|[[File:Switch dpad right.png]]
|}
|}


====== PlayStation ======
====== PlayStation 4 ======
{| class="wikitable"
{| class="wikitable collapsible collapsed"
!Name
!Shortcode
!Shortcode
!Character
!Character
Line 651: Line 570:
!Preview
!Preview
|-
|-
|Cross
|<code>:ps4_face_button_down:</code>
|<code>:ps4_face_button_down:</code>
|&#xE020;
|&#xE020;
|U+E020
|U+E020
|![](/assets/images/text/emojis/playstation/cross.png)
|[[File:Ps4 face button down.png]]
|-
|-
|Circle
|<code>:ps4_face_button_right:</code>
|<code>:ps4_face_button_right:</code>
|&#xE021;
|&#xE021;
|U+E021
|U+E021
|![](/assets/images/text/emojis/playstation/circle.png)
|[[File:Ps4 face button right.png]]
|-
|-
|Square
|<code>:ps4_face_button_left:</code>
|<code>:ps4_face_button_left:</code>
|&#xE022;
|&#xE022;
|U+E022
|U+E022
|![](/assets/images/text/emojis/playstation/square.png)
|[[File:Ps4 face button left.png]]
|-
|-
|Triangle
|<code>:ps4_face_button_up:</code>
|<code>:ps4_face_button_up:</code>
|&#xE023;
|&#xE023;
|U+E023
|U+E023
|![](/assets/images/text/emojis/playstation/triangle.png)
|[[File:Ps4 face button up.png]]
|-
|-
|Left Bumper
|<code>:ps4_bumper_left:</code>
|<code>:ps4_bumper_left:</code>
|&#xE024;
|&#xE024;
|U+E024
|U+E024
|![](/assets/images/text/emojis/playstation/left_bumper.png)
|[[File:Ps4 bumper left.png]]
|-
|-
|Right Bumper
|<code>:ps4_bumper_right:</code>
|<code>:ps4_bumper_right:</code>
|&#xE025;
|&#xE025;
|U+E025
|U+E025
|![](/assets/images/text/emojis/playstation/right_bumper.png)
|[[File:Ps4 bumper right.png]]
|-
|-
|Left Trigger
|<code>:ps4_trigger_left:</code>
|<code>:ps4_trigger_left:</code>
|&#xE026;
|&#xE026;
|U+E026
|U+E026
|![](/assets/images/text/emojis/playstation/left_trigger.png)
|[[File:Ps4 left trigger.png]]
|-
|-
|Right Trigger
|<code>:ps4_trigger_right:</code>
|<code>:ps4_trigger_right:</code>
|&#xE027;
|&#xE027;
|U+E027
|U+E027
|![](/assets/images/text/emojis/playstation/right_trigger.png)
|[[File:Ps4 right trigger.png]]
|-
|-
|Touch Pad
|<code>:ps4_select:</code>
|<code>:ps4_select:</code>
|&#xE028;
|&#xE028;
|U+E028
|U+E028
|![](/assets/images/text/emojis/playstation/touch_pad.png)
|[[File:Ps4 select button.png]]
|-
|-
|Options/Share
|<code>:ps4_start:</code>
|<code>:ps4_start:</code>
|&#xE029;
|&#xE029;
|U+E029
|U+E029
|![](/assets/images/text/emojis/playstation/options_share.png)
|[[File:Ps4 start button.png]]
|-
|-
|Left Stick
|<code>:ps4_stick_left:</code>
|<code>:ps4_stick_left:</code>
|&#xE02A;
|&#xE02A;
|U+E02A
|U+E02A
|![](/assets/images/text/emojis/playstation/left_stick.png)
|[[File:Ps4 stick left.png]]
|-
|-
|Right Stick
|<code>:ps4_stick_right:</code>
|<code>:ps4_stick_right:</code>
|&#xE02B;
|&#xE02B;
|U+E02B
|U+E02B
|![](/assets/images/text/emojis/playstation/right_stick.png)
|[[File:Ps4 stick right.png]]
|-
|-
|D-pad Up
|<code>:ps4_dpad_up:</code>
|<code>:ps4_dpad_up:</code>
|&#xE02C;
|&#xE02C;
|U+E02C
|U+E02C
|![](/assets/images/text/emojis/playstation/dpad_up.png)
|[[File:Ps4 dpad up.png]]
|-
|-
|D-pad Left
|<code>:ps4_dpad_left:</code>
|<code>:ps4_dpad_left:</code>
|&#xE02D;
|&#xE02D;
|U+E02D
|U+E02D
|![](/assets/images/text/emojis/playstation/dpad_left.png)
|[[File:Ps4 dpad left.png]]
|-
|-
|D-pad Down
|<code>:ps4_dpad_down:</code>
|<code>:ps4_dpad_down:</code>
|&#xE02E;
|&#xE02E;
|U+E02E
|U+E02E
|![](/assets/images/text/emojis/playstation/dpad_down.png)
|[[File:Ps4 dpad down.png]]
|-
|-
|D-pad Right
|<code>:ps4_dpad_right:</code>
|<code>:ps4_dpad_right:</code>
|&#xE02F;
|&#xE02F;
|U+E02F
|U+E02F
|![](/assets/images/text/emojis/playstation/dpad_right.png)
|[[File:Ps4 dpad right.png]]
|}
|}


====== Oculus (Rift/Rift S) ======
====== Oculus (Rift/Rift S) ======
{| class="wikitable"
{| class="wikitable collapsible collapsed"
!Name
!Name
!Character
!Character
Line 812: Line 715:


====== Windows MR (Mixed Reality) ======
====== Windows MR (Mixed Reality) ======
{| class="wikitable"
{| class="wikitable collapsible collapsed"
!Name
!Name
!Character
!Character
Line 890: Line 793:


====== Xbox ======
====== Xbox ======
{| class="wikitable"
{| class="wikitable collapsible collapsed"
!Name
!Shortcode
!Shortcode
!Character
!Character
Line 897: Line 799:
!Preview
!Preview
|-
|-
|A
|<code>:xbox_face_button_down:</code>
|<code>:xbox_face_button_down:</code>
|&#xE000;
|&#xE000;
|U+E000
|U+E000
|![](/assets/images/text/emojis/xbox/a_button.png)
|[[File:Xbox face button down.png]]
|-
|-
|B
|<code>:xbox_face_button_right:</code>
|<code>:xbox_face_button_right:</code>
|&#xE001;
|&#xE001;
|U+E001
|U+E001
|![](/assets/images/text/emojis/xbox/b_button.png)
|[[File:Xbox face button right.png]]
|-
|-
|X
|<code>:xbox_face_button_left:</code>
|<code>:xbox_face_button_left:</code>
|&#xE002;
|&#xE002;
|U+E002
|U+E002
|![](/assets/images/text/emojis/xbox/x_button.png)
|[[File:Xbox face button left.png]]
|-
|-
|Y
|<code>:xbox_face_button_up:</code>
|<code>:xbox_face_button_up:</code>
|&#xE003;
|&#xE003;
|U+E003
|U+E003
|![](/assets/images/text/emojis/xbox/y_button.png)
|[[File:Xbox face button up.png]]
|-
|-
|Left Bumper
|<code>:xbox_bumper_left:</code>
|<code>:xbox_bumper_left:</code>
|&#xE004;
|&#xE004;
|U+E004
|U+E004
|![](/assets/images/text/emojis/xbox/left_bumper.png)
|[[File:Xbox bumper left.png]]
|-
|-
|Right Bumper
|<code>:xbox_bumper_right:</code>
|<code>:xbox_bumper_right:</code>
|&#xE005;
|&#xE005;
|U+E005
|U+E005
|![](/assets/images/text/emojis/xbox/right_bumper.png)
|[[File:Xbox bumper right.png]]
|-
|-
|Left Trigger
|<code>:xbox_trigger_left:</code>
|<code>:xbox_trigger_left:</code>
|&#xE006;
|&#xE006;
|U+E006
|U+E006
|![](/assets/images/text/emojis/xbox/left_trigger.png)
|[[File:Xbox left trigger.png]]
|-
|-
|Right Trigger
|<code>:xbox_trigger_right:</code>
|<code>:xbox_trigger_right:</code>
|&#xE007;
|&#xE007;
|U+E007
|U+E007
|![](/assets/images/text/emojis/xbox/right_trigger.png)
|[[File:Xbox right trigger.png]]
|-
|-
|Select
|<code>:xbox_select:</code>
|<code>:xbox_select:</code>
|&#xE008;
|&#xE008;
|U+E008
|U+E008
|![](/assets/images/text/emojis/xbox/select.png)
|[[File:Xbox select button.png]]
|-
|-
|Start
|<code>:xbox_start:</code>
|<code>:xbox_start:</code>
|&#xE009;
|&#xE009;
|U+E009
|U+E009
|![](/assets/images/text/emojis/xbox/start.png)
|[[File:Xbox start button.png]]
|-
|-
|Left Stick
|<code>:xbox_stick_left:</code>
|<code>:xbox_stick_left:</code>
|&#xE00A;
|&#xE00A;
|U+E00A
|U+E00A
|![](/assets/images/text/emojis/xbox/left_stick.png)
|[[File:Xbox stick left.png]]
|-
|-
|Right Stick
|<code>:xbox_stick_right:</code>
|<code>:xbox_stick_right:</code>
|&#xE00B;
|&#xE00B;
|U+E00B
|U+E00B
|![](/assets/images/text/emojis/xbox/right_stick.png)
|[[File:Xbox stick right.png]]
|-
|-
|D-Pad Up
|<code>:xbox_dpad_up:</code>
|<code>:xbox_dpad_up:</code>
|&#xE00C;
|&#xE00C;
|U+E00C
|U+E00C
|![](/assets/images/text/emojis/xbox/dpad_up.png)
|[[File:Xbox dpad up.png]]
|-
|-
|D-Pad Left
|<code>:xbox_dpad_left:</code>
|<code>:xbox_dpad_left:</code>
|&#xE00D;
|&#xE00D;
|U+E00D
|U+E00D
|![](/assets/images/text/emojis/xbox/dpad_left.png)
|[[File:Xbox dpad left.png]]
|-
|-
|D-Pad Down
|<code>:xbox_dpad_down:</code>
|<code>:xbox_dpad_down:</code>
|&#xE00E;
|&#xE00E;
|U+E00E
|U+E00E
|![](/assets/images/text/emojis/xbox/dpad_down.png)
|[[File:Xbox dpad down.png]]
|-
|-
|D-Pad Right
|<code>:xbox_dpad_right:</code>
|<code>:xbox_dpad_right:</code>
|&#xE00F;
|&#xE00F;
|U+E00F
|U+E00F
|![](/assets/images/text/emojis/xbox/dpad_right.png)
|[[File:Xbox dpad right.png]]
|}
|}
}}
</div>


==== Other ====
==== Other ====
Line 1,042: Line 926:


== Special characters ==
== Special characters ==
<div class="tright"><gallery class="pixel-image">
File:Font U+FFFD and notdef JE1.png|Side-by-side comparison of � and the notdef character
</gallery></div>
{{IN|java}}, there are 2 characters that are accessible only through technical means:
{{IN|java}}, there are 2 characters that are accessible only through technical means:
* The first is {{mono|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 first is {{mono|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" character,{{fn|Is not an actual Unicode character. "notdef" refers to the name given to it in font formats.}} 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 {{w|tofu}}. More information on this character can be found at [[Minecraft:Missing textures and models#Missing font character]].
* The second is the "notdef" character,{{fn|Is not an actual Unicode character. "notdef" refers to the name given to it in font formats.}} 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 {{w|tofu}}. More information on this character can be found at [[Minecraft:Missing textures and models#Missing font character]].
{{IN|bedrock}}, a character with no texture data appears as a blank space. The {{mono|U+FFFD � REPLACEMENT CHARACTER}} shown belongs to GNU Unifont.
{{IN|bedrock}}, a character with no texture data appears as a blank space. The {{mono|U+FFFD � REPLACEMENT CHARACTER}} shown belongs to GNU Unifont.


== Providers ==
== Providers ==
{{exclusive|java|section=1}}
{{exclusive|java|section=1}}{{Split|Font definition|section=1}}
 
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 <code>ttf</code>.
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 <code>ttf</code>.


Line 1,091: Line 976:
** {{nbt|string|type}}: <code>space</code>.
** {{nbt|string|type}}: <code>space</code>.
** {{nbt|compound|advances}}: 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 {{mono|U+1F525 🔥 FIRE}}, which is encoded as <code>0xF0 0x9F 0x94 0xA5</code>). 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.
** {{nbt|compound|advances}}: 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 {{mono|U+1F525 🔥 FIRE}}, which is encoded as <code>0xF0 0x9F 0x94 0xA5</code>). 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.
*** {{nbt|int|''<a codepoint>''}}: 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]].  
*** {{nbt|int|''<a codepoint>''}}: The width of the character specified by the key. Values must be an integer. Negative values are forced to 0 when typed in [[Minecraft:chat]].  
</div>
</div>


Line 1,100: Line 985:


=== TTF provider ===
=== TTF provider ===
The <code>ttf</code> provider embeds already-compiled TrueType and OpenType fonts.{{fn|Despite its name, the TTF provider accepts OpenType ("otf") fonts.}}
The <code>ttf</code> provider embeds already-compiled TrueType and OpenType fonts.{{fn|Despite its name, the TTF provider accepts OpenType ("otf") fonts.}} The font files added using this method are stripped from any font properties other than the glyphs themselves (like kerning or ligatures).


<div class="treeview">
<div class="treeview">
Line 1,167: Line 1,052:
{{HistoryTable
{{HistoryTable
|{{HistoryLine|Java classic}}
|{{HistoryLine|Java classic}}
|{{HistoryLine||0.0.2a|Added text to the game, and the default font as a result.}}
|{{HistoryLine||0.0.2a|Added text to the game, and the [[Minecraft:Mojangles|default font]] as a result.
|This font was originally used in ''[[Minecraft:Legend of the Chambered]]''.}}
|{{HistoryLine|Java beta}}
|{{HistoryLine|Java beta}}
|{{HistoryLine||1.1|The <code>font.txt</code> file was accidentally removed from [[Minecraft:client.jar]], resulting in all in-game text being invisible.}}
|{{HistoryLine||1.1|The <code>font.txt</code> file was accidentally removed from [[Minecraft:client.jar]], resulting in all in-game text being invisible.}}
Line 1,199: Line 1,085:
|{{HistoryLine||v0.1.0|Added the default ASCII font called {{cd|default.png}}.}}
|{{HistoryLine||v0.1.0|Added the default ASCII font called {{cd|default.png}}.}}
|{{HistoryLine||v0.11.0|dev=build 1|Added GNU Unifont to fully support multi-languages.}}
|{{HistoryLine||v0.11.0|dev=build 1|Added GNU Unifont to fully support multi-languages.}}
|{{HistoryLine|Bedrock upcoming}}
|{{HistoryLine||26.60|dev=26.60.21|Added extended Latin, Cyrillic, and Greek characters to the Mojangles font.|Character size increased to 8x12px.}}
}}
}}


Line 1,217: Line 1,105:
== Gallery ==
== Gallery ==
<gallery class="pixel-image">
<gallery class="pixel-image">
File:Lit vs unlit signs.png|Side-by-side comparison of glowing text versus normal text on a sign.
File:Lit vs unlit signs.png|Side-by-side comparison of glowing text versus normal text on a sign
File:Minecraft Formatting.gif|Formatted text in a book.
File:Minecraft Formatting.gif|Formatted text in a book
File:Textformatting.png|Formatted text in chat.
File:Textformatting.png|Formatted text in chat
File:Font emojis JE1.png|The collection of the emojis in ''Java Edition''.
File:Font typography diagram JE1.png|A diagram of typography terms and their relation to the font
File:Font typography diagram JE1.png|A diagram of typography terms and their relation to the font.
File:Font ZWJ example JE1.png|Example of how multi-sequence emoji do not render correctly. This is the emoji {{mono|👨‍👩‍👧}}. The [ZWJ] are {{mono|U+200D &zwj; ZERO WIDTH JOINER}}.
File:Font ZWJ example JE1.png|Example of how multi-sequence emojis do not render correctly. This is the emoji {{mono|👨‍👩‍👧}}. The [ZWJ] are {{mono|U+200D &zwj; ZERO WIDTH JOINER}}
File:Font U+FFFD and notdef JE1.png|Side-by-side comparison of � and the notdef character.
File:Emojis.png|The 43 supported emojis as they appear in-game.
File:Emojis in book.png|Private-area emojis written in a [[Minecraft:book]] in ''Bedrock Edition''.
</gallery>
</gallery>


Line 1,242: Line 1,126:


== Navigation ==
== Navigation ==
{{Navbox gameplay}}
{{Navbox gameplay}}{{Navbox fonts}}
 
[[Category:Font| ]]
[[Category:Font| ]]


[[Minecraft:de:Schriftdaten]]
[[Minecraft:de:Schriftdaten]]
[[Minecraft:ja:フォント]]
[[Minecraft:ja:フォント]]
[[Minecraft:ru:Шрифт]]
[[Minecraft:zh:字体]]
[[Minecraft:zh:字体]]

Latest revision as of 11:07, 7 September 2026

File:Minecraft font specimen.png
The Mojangles font

Fonts are used for rendering text in Minecraft. Several fonts are used in the game; the primary font used is known as Minecraft:Mojangles.

Multiple fonts can be defined and referenced with Minecraft:resource packs.

Fonts available

Java Edition

In Minecraft:Java Edition, there are 4 default fonts.

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.

Legacy Console Edition

In Minecraft:Legacy Console Edition, there are 2 default fonts.

Other sources

Some sources, like the Minecraft website, contains different fonts in different pages.

Display modifications

Formatting

Template:Main Any font can be formatted with the § sign in-game (deprecated in Template:JE), or the Minecraft:text component format in commands.Template:Only

  • A color code can change the color of the foreground text and the shadow (see below). There are 29 color codesTemplate:Only, or both of these allow any HEX color.Template: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),Template:Only and striked (§m).Template: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 Minecraft:Mojangles with a black outline in Java Edition. 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. 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 (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

File:Glow text.gif
width=325x325

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

File:Emojis.png
The Mojangles emoji in Template:JE

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 Template:Unicode, Template:Unicode, Template:Unicode, Template:Unicode, and Template:Unicode (Template:Mono) do not apply colored skin tones to their applicable emoji, and instead show tones as their Unifont glyphs. Joining multiple emoji 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 Template:Slink.

Bedrock Edition does not support any character above Template:Mono, which includes many modern emoji. It does not include any textures for emoji below that either; only those provided by GNU Unifont below Template:Mono are included and visible.

Private-area emoji

Template:Exclusive

File:Emojis in book.png
Emoji in a book

Instead of emoji 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 by the game in 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, Minecraft:resource packs, etc. Emoji are not displayed 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 Agent icon. E0 characters are categorized in Template:Cd.<ref>https://github.com/TwistedAsylumMC/bedrock-unicode-characters</ref>

Blocks & items

Shortcode Character Unicode Preview
:wood_pickaxe: U+E108 File:Wooden Pickaxe emoji.png
:wood_sword: U+E109 File:Wooden Sword emoji.png
:crafting_table: U+E10A File:Crafting Table emoji.png
:furnace: U+E10B File:Furnace emoji.png

HUD

Shortcode Character Unicode Preview
:armor: U+E101 File:Armor emoji.png
:tip_crosshair: U+E017 File:Crosshair emoji.png
:shank: U+E100 File:Shank emoji.png
:heart: U+E10C File:Heart emoji.png

Marketplace

Shortcode Character Unicode Preview
:minecoin:

:token:

U+E102 File:Minecoin emoji.png
:minecoin:

:token:

U+E105 File:Token emoji.png
  • On non-PlayStation devices, both :minecoin: and :token: will display the Minecoin emoji.

Recipe book

Shortcode Character Unicode Preview
:craftable_toggle_on: U+E0A0 File:Craftable Toggle On emoji.png
:craftable_toggle_off: U+E0A1 File:Craftable Toggle Off emoji.png

Controls

Mouse
Touch
Controller
Nintendo Switch
PlayStation 4
Oculus (Rift/Rift S)
Windows MR (Mixed Reality)
Xbox

Other

Name Shortcode Character Unicode Preview
Non-Breaking Space :nbsp: U+E0FF
Agent :code_builder_button: U+E103 ![](/assets/images/text/emojis/other/agent.png)
Immersive Reader :immersive_reader_button: U+E104 ![](/assets/images/text/emojis/other/immersive_reader.png)
Hollow Star :hollow_star: U+E106 ![](/assets/images/text/emojis/other/hollow_star.png)
Solid Star :solid_star: U+E107 ![](/assets/images/text/emojis/other/solid_star.png)
Camera :camera: U+E10D ![](/assets/images/text/emojis/other/camera.png)

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

Template:ExclusiveTemplate:Split 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.

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: 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.

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:

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. Negative values are forced to 0 when typed in Minecraft:chat.

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 The font files added using this method are stripped from any font properties other than the glyphs themselves (like kerning or ligatures).

  • 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.

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 .hex file at the root of the archive. Subdirectories are not walked through and filenames with an extension different from .hex are 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: 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 from and to must 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 left and right must be between 0 and 32, inclusive.

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.

Legacy Unicode provider

Template:Outdated feature

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 %s must be included in this field. %s is 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.

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

Template:Info needed section

Java Edition

Template:HistoryTable

Bedrock Edition

Template:HistoryTable

Legacy Console Edition

Template:HistoryTable

Issues

Template:Issue list

Trivia

Gallery

See also

Notes

Template:Fnlist

References

Template:Reflist

External links

Navigation

Template:Navbox gameplayTemplate:Navbox fonts

Minecraft:de:Schriftdaten Minecraft:ja:フォント Minecraft:ru:Шрифт Minecraft:zh:字体