Pig Pen Cipher

438 Downloads Last Updated: Jul 25, 2021 Game Version: 1.17.1

This mod adds the Pig Pen Cipher to Minecraft as a new font. This can be used for books, fonts, chat messages, tooltips, and virtually any other text in the game.



The Pig Pen Cipher is a simple substitution cipher used to encode messages which use the English alphabet.


User Guide

Using the Cipher

The Pigpen Cipher is sometimes referred to as a tic-tac-toe cipher. This is because the key used to encode/decode characters looks like a tic-tac-toe board.


To write a character using the Pigpen Cipher you simply replace the character with the lines that surround the character. For example if you want to write the letter A you would draw a backwards L shape and an E would be drawn as a square. If the symbol contains a dot you would use the version on the right, so a square with a dot inside of it is an N. The eight lower characters follow the same rules, T would be an arrow pointing right and W would be an arrow pointing down with a dot in it.

While the cipher may seem complicated at first it will become a lot easier to understand with some practice.



If this mod is installed on a Forge server you will be able to use some custom commands to help you use this mod. These commands can also be used in single player if the mod is installed.

  • /pigpen say - Posts a message in chat using the cipher. All players can use this command. The plaintext version is logged in the server console.
  • /pigpen hand - Renames the held item with cipher. Limited to lvl 2 ops.
  • /pigpen book (encode|decode) - Rewrites a held book to use cipher. Can also turn encoded books into plaintext books. Limited to lvl 2 ops.
  • /pigpen tile (encode|decode) <pos> - Rewrites a tile entity such as a sign to use cipher. Limited to lvl 2 ops.



If you're developing a mod or have access to code/scripting tools you can apply the cipher to an ITextComponent by modifying the style of the component.

// MCP names not yet available
// func_240703_c_ = setStyle
// func_240719_a_ = setFontId
IFormattableTextComponent text = new StringTextComponent("Hello World");
text.func_240703_c_(text.getStyle().func_240719_a_(new ResourceLocation("pigpen", "pigpen")));


Vanilla Commands & NBT

Any vanilla command which allows you to specify a text component can use cipher by defining the font ID in the text properties. For example it can be used in the give command, or in the title command.


/give @p stone{display:{Name:"[{\"text\":\"Hello\",\"italic\":false,\"color\":\"gold\",\"font\":\"pigpen:pigpen\"}]"}} 1

/title @a title {"text":"Hello","font":"pigpen:pigpen"}