Bukkit Color Codes
The full list of Bukkit color codes and format codes — chat codes (§0–§f), MOTD / unicode codes (\u00A70–\u00A7f), ChatColor enum names, hex and RGB — plus a live code generator.
Reference and conversion tool for Bukkit / Spigot / Paper color codes and format codes — for chat messages, the server MOTD and in-game text. The chat code (§0–§f) is what the client renders; the MOTD code (\u00A70–\u00A7f) is the unicode-escape form for server.properties. In plugin YAML most people write the ampersand form (&0) and call ChatColor.translateAlternateColorCodes('&', text).
Bukkit color codes
| Color name | Chat code | MOTD code | Hex | RGB | |
|---|---|---|---|---|---|
| Black | 0, 0, 0 | ||||
| Dark Blue | 0, 0, 170 | ||||
| Dark Green | 0, 170, 0 | ||||
| Dark Aqua | 0, 170, 170 | ||||
| Dark Red | 170, 0, 0 | ||||
| Dark Purple | 170, 0, 170 | ||||
| Gold | 255, 170, 0 | ||||
| Gray | 170, 170, 170 | ||||
| Dark Gray | 85, 85, 85 | ||||
| Blue | 85, 85, 255 | ||||
| Green | 85, 255, 85 | ||||
| Aqua | 85, 255, 255 | ||||
| Red | 255, 85, 85 | ||||
| Light Purple | 255, 85, 255 | ||||
| Yellow | 255, 255, 85 | ||||
| White | 255, 255, 255 |
Format codes
| Format | Chat code | MOTD code | Effect |
|---|---|---|---|
| Obfuscated | Randomly cycling characters | ||
| Bold | Bold text | ||
| Strikethrough | Line through text (Bedrock: not supported) | ||
| Underline | Underlined text (Bedrock: not supported) | ||
| Italic | Italic text | ||
| Reset | Clears all colour and formatting |
Color code generator
Type your message, put the caret where you want a code, then click a color or format below. The preview shows how it renders in game; copy the code string into a sign, book, MOTD, plugin config or chat.
Toggle to § section sign for in-game chat, signs and /tellraw; use \u00A7 unicode for server.properties and Java .properties files that can't hold the § character.
ChatColor API
The 16 colours as the Bukkit ChatColor enum, with the ampersand code used in config files.
| Enum | Config code | Color | Hex |
|---|---|---|---|
ChatColor.BLACK | Black | ||
ChatColor.DARK_BLUE | Dark Blue | ||
ChatColor.DARK_GREEN | Dark Green | ||
ChatColor.DARK_AQUA | Dark Aqua | ||
ChatColor.DARK_RED | Dark Red | ||
ChatColor.DARK_PURPLE | Dark Purple | ||
ChatColor.GOLD | Gold | ||
ChatColor.GRAY | Gray | ||
ChatColor.DARK_GRAY | Dark Gray | ||
ChatColor.BLUE | Blue | ||
ChatColor.GREEN | Green | ||
ChatColor.AQUA | Aqua | ||
ChatColor.RED | Red | ||
ChatColor.LIGHT_PURPLE | Light Purple | ||
ChatColor.YELLOW | Yellow | ||
ChatColor.WHITE | White |
Using color in a plugin
In config.yml: prefix: "&8[&bServer&8]". In code:
String msg = ChatColor.translateAlternateColorCodes('&',
config.getString("prefix"));
player.sendMessage(msg);
On Paper / Spigot 1.16+ you can also use full hex with &#RRGGBB, or net.md_5.bungee.api.ChatColor.of("#RRGGBB"). The 16 classic codes above work on every version.
Bukkit, Spigot and Paper — same codes
Bukkit, Spigot and Paper all share the same color-code system, because it comes from Minecraft itself. Spigot is a fork of Bukkit and Paper is a fork of Spigot; each adds performance and API features on top, but org.bukkit.ChatColor, the § codes and translateAlternateColorCodes behave identically across all three. That means a plugin config written with & codes, or a permissions prefix, or an Essentials nickname, works the same whether the server runs CraftBukkit, Spigot or Paper. The one meaningful split is hex support: full #RRGGBB colors need a 1.16+ server, and the exact helper differs — Paper adopts the modern Adventure Component API, while Spigot uses the BungeeCord ChatColor.of() method.
The ampersand convention
Almost every plugin asks you to write colors with & rather than § in YAML and JSON config, because the section sign is awkward to type and easy for a text editor to corrupt. The plugin then calls ChatColor.translateAlternateColorCodes('&', text) to swap every & followed by a valid code character into a real § before sending the message. If your colors show up as literal &a text in game, that translate call is missing or the config value was not passed through it. The MOTD in server.properties is the exception — it is read by the vanilla server, not a plugin, so it needs the \u00A7 unicode form, which the generator above produces.
Bukkit color code FAQ
Why are my color codes showing as &a in chat?
The plugin isn't translating them. Wrap the config string in ChatColor.translateAlternateColorCodes('&', text), or check that the feature is enabled — some plugins have a "use color codes" permission or config toggle.
How do I use hex colors in a Bukkit plugin?
On 1.16+: Spigot uses net.md_5.bungee.api.ChatColor.of("#RRGGBB"); Paper recommends the Adventure API with Component.text("...").color(TextColor.color(0xRRGGBB)). Some config-driven plugins accept &#RRGGBB directly.
Is ChatColor.BLUE the same as §9?
Yes. The ChatColor enum maps one-to-one to the § codes: ChatColor.BLUE is §9, ChatColor.DARK_BLUE is §1, and so on. The ChatColor API table above lists every pairing.
Do these codes work on Spigot and Paper too?
Yes — the 16 colors and 6 format codes are identical on CraftBukkit, Spigot and Paper. Only the newer hex-color helper methods differ between platforms.