Formatting codes



Formatting codes, also known as color codes, add color and modifications to text in-game.

Text in Minecraft can be formatted with the section sign. $$, the section sign can be entered into signs, world names, renaming items and in the chat. $$, section signs may be used in server.properties, pack.mcmeta , world titles, and server names. External programs can be used to insert it in other locations.

Usage
Text can be formatted using the section sign (§) followed by a character. A § symbol followed by a hex digit in the message tells the client to switch colors while displaying text. $$, the § symbol can be used in any text input, while $$, it may be used in server.properties, pack.mcmeta , world titles, and server names.

$$, if a color code is used after a formatting code, the formatting code is disabled beyond the color code point. For example,  displays as X Y , whereas   displays as X Y. Therefore, when using a color code in tandem with a formatting code, ensure the color code is used first and reuse the formatting code when changing colors.

$$, formatting codes persist after a color code. Furthermore, if an obfuscated code is used and a reset code is not used before the end of the line, the client GUI continues to obfuscate text past the MOTD and into the version number display:

Color codes


Messages sent from the server to the client can contain color codes, which allow coloring of text for various purposes.

Formatting codes
The random characters placed after  are always the same width as the original characters. For example, any random character cycled through where the letter "m" would be wide characters while any random character in the spot of an "i" would be narrow characters.

resets the styles of following characters; e.g.,  displays as XXX YYY.

Typing

 * To enter "§" on Windows with most US/UK English keyboards type (alt code on cp437). For any other keyboard, the Windows ANSI version  often works. If   is enabled in the Windows registry,  (using the main keyboard for "A") works for any language due to it being Unicode.
 * On a Mac with a US keyboard, type (or  for US Extended). For any other keyboard, type.
 * On Linux with the compose key activated, type . The symbol can also be typed by using Unicode shortcuts:.

When part of JSON text, the symbol can be written as \u00A7 or \u00a7.

Alternatively $$, the character can be copied from this page, and (Windows) or  (macOS) can be pressed to paste the character into a book. Note that pasting does not work on everything (e.g. chat, command blocks, world names).

In early Java Edition Classic versions, the character used was instead of.

Sample text
The following text can be pasted into a Book and Quill (prior to 1.14) to produce what is shown in the picture:

§nMinecraft Formatting§r

§00 §11 §22 §33 §44 §55 §66 §77 §88 §99 §aa §bb §cc §dd §ee §ff

§rk §kThe Luca §rl §lMinecraft §rm §mMinecraft §rn §nMinecraft §ro §oMinecraft §rr §rMinecraft

Use in server.properties and pack.mcmeta
In order to get an MOTD colored or formatted,  must be used instead of  ; for example,   would be. The full list of them is listed below. Colors can be used in conjunction with formatting. The formatting must be done after the color.

Given that  files accept raw JSON text as descriptions, the usage of   can be replaced by text components with different color and style, though using   still works.

Compatibility with older versions
Formatting codes can be used in the  line in a  file, but the section signs must be escaped as. If a section sign is entered directly, the server replaces it with  ; clients display the   character as a question mark. Delete the  character in the MOTD if it comes with a bunch of question marks: this happens if something is not compatible.

Use in custom language packs
Formatting codes can be used to color names and description in language files by using § then any of the numbers/letters displayed above. This is also used in end.txt and credits.txt. An example of this is  to make the name of a diamond appear as  Diamond.

Since Java Edition 1.16,  can no longer be used to remove italics from custom translation tags within language files. For example, if the translation tag  is applied to the   display data of a custom item, it will still show up as   rather than simply. This is not true of any other formatting options.

Use in world names
With the use of external tools, such as NBTExplorer, world names can have custom colors and formatting codes. To modify the name, choose the LevelName tag in the world's level.dat. In this example, LevelName is set to.



Additionally, the player can rename the world's folder to contain one of the codes. In the world selection menu, the specified color or effect appears.

The player can also use a resource pack with a § already in the world name when creating a world and all the user has to do is to change or alter the color code after the §.

Use in server names
With the use of a third party tool such as NBTExplorer, server names can have custom colors. To utilize this functionality, select the attribute in the  file inside the  directory using a third party tool. In the following example, the tag is set to :



History
Obfuscated format  has changed 3 times $$ after being introduced in Beta 1.8. Below is an image of how the obfuscated text of  looks in 4 different versions:

Trivia

 * The color codes almost exactly match, in order, the 16 colors available using a Color Graphics Adapter (CGA), as released in 1981. Only color 6 differs; the value for color 6 in Minecraft – – differs from that made for CGA –.