Compatibility
Minecraft: Java Edition
Tags
Creators
Details
Pixel perfect Twemoji (18x18 version)
This resource pack adds all of Twemoji, redrawn by hand as pixel art at 18x18 pixels, to the default font in Minecraft: Java Edition version 1.16 or later. Twemoji is the emoji set used by Discord and Twitter.
Just some of the emoji in the pack
Installation
Please download the .zip file from the Versions section, put it in your resource packs folder and select it for use in-game.
You can also embed this pack into another pack, for use on a server or custom world for example. Please remember to credit the project as it is one of the requirements of the project license.
Basic usage

Most standard emoji characters will just work if you copy and paste them in or use some kind of emoji input. For example, try copying emoji from this site or using the Windows emoji picker (Win+.).
However, emoji that consist of sequences of multiple character are not supported by vanilla and will show up as multiple, separate characters. Sorry. See below for ways to develop around this.
Sample of Emoji to Copy-Paste
ยฉ ยฎ โผ โ โข โน โ โ โ โ โ โ โฉ โช โ โ โจ โ โฉ โช โซ โฌ โญ โฎ โฏ โฐ โฑ โฒ โณ โธ โน โบ โ โช โซ โถ โ โป โผ โฝ โพ โ โ โ โ โ โ โ โ โ โ โ โ โข โฃ โฆ โช โฎ โฏ โธ โน โบ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โ โฃ โฅ โฆ โจ โป โพ โฟ โ โ โ โ โ โ โ โ โ โ โก โง โช โซ โฐ โฑ โฝ โพ โ โ โ โ โ โ โ โ โฉ โช โฐ โฑ โฒ โณ โด โต โท โธ โน โบ โฝ โ โ โ โ โ โ โ โ โ โ โ โ โ โก โจ โณ โด โ โ โ โ โ โ โ โ โฃ โค โ โ โ โก โฐ โฟ โคด โคต โฌ โฌ โฌ โฌ โฌ โญ โญ ใฐ ใฝ ใ ใ ๐ ๐ ๐ ฐ ๐ ฑ ๐ พ ๐ ฟ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ฆ ๐ง ๐จ ๐ฉ ๐ช ๐ซ ๐ฌ ๐ญ ๐ฎ ๐ฏ ๐ฐ ๐ฑ ๐ฒ ๐ณ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ ๐ป ๐ผ ๐ฝ ๐พ ๐ฟ ๐ ๐ ๐ ๐ฏ ๐ฒ ๐ณ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ค ๐ฅ ๐ฆ ๐ง ๐จ ๐ฉ ๐ช ๐ซ ๐ฌ ๐ญ ๐ฎ ๐ฏ ๐ฐ ๐ฑ ๐ฒ ๐ณ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ ๐ป ๐ผ ๐ฝ ๐พ ๐ฟ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ข ๐ฃ ๐ค ๐ฅ ๐ฆ ๐ง ๐จ ๐ฉ ๐ช ๐ซ ๐ฌ ๐ญ ๐ฎ ๐ฏ ๐ฐ ๐ฑ ๐ฒ ๐ณ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ ๐ป ๐ผ ๐ฝ ๐พ ๐ฟ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ข ๐ฃ ๐ค ๐ฅ ๐ฆ ๐ง ๐จ ๐ฉ ๐ช ๐ซ ๐ฌ ๐ญ ๐ฎ ๐ฏ ๐ฐ ๐ฑ ๐ฒ ๐ณ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ ๐ป ๐ผ ๐ฝ ๐พ ๐ฟ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ข ๐ฃ ๐ค ๐ฅ ๐ฆ ๐ง ๐จ ๐ฉ ๐ช ๐ซ ๐ฌ ๐ญ ๐ฎ ๐ฏ ๐ฐ ๐ณ ๐ด ๐ต ๐ท ๐ธ ๐น ๐บ ๐ป ๐ผ ๐ฝ ๐พ ๐ฟ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ข ๐ฃ ๐ค ๐ฅ ๐ฆ ๐ง ๐จ ๐ฉ ๐ช ๐ซ ๐ฌ ๐ญ ๐ฎ ๐ฏ ๐ฐ ๐ฑ ๐ฒ ๐ณ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ ๐ป ๐ผ ๐ฝ ๐พ ๐ฟ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ข ๐ฃ ๐ค ๐ฅ ๐ฆ ๐ง ๐จ ๐ฉ ๐ช ๐ซ ๐ฌ ๐ญ ๐ฎ ๐ฏ ๐ฐ ๐ฑ ๐ฒ ๐ณ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ ๐ป ๐ผ ๐ฝ ๐พ ๐ฟ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ข ๐ฃ ๐ค ๐ฅ ๐ฆ ๐ง ๐จ ๐ฉ ๐ช ๐ซ ๐ฌ ๐ญ ๐ฎ ๐ฏ ๐ฐ ๐ฑ ๐ฒ ๐ณ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ ๐ป ๐ผ ๐ฝ ๐พ ๐ฟ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ข ๐ฃ ๐ค ๐ฅ ๐ฆ ๐ง ๐จ ๐ฉ ๐ช ๐ซ ๐ฌ ๐ญ ๐ฎ ๐ฏ ๐ฐ ๐ฑ ๐ฒ ๐ณ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ ๐ป ๐ผ ๐ฝ ๐ฟ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ข ๐ฃ ๐ค ๐ฅ ๐ฆ ๐ง ๐จ ๐ฉ ๐ช ๐ซ ๐ฌ ๐ญ ๐ฎ ๐ฏ ๐ฐ ๐ฑ ๐ฒ ๐ณ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ ๐ป ๐ผ ๐ฝ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ข ๐ฃ ๐ค ๐ฅ ๐ฆ ๐ง ๐ฏ ๐ฐ ๐ณ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ค ๐ฅ ๐จ ๐ฑ ๐ฒ ๐ผ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ฃ ๐จ ๐ฏ ๐ณ ๐บ ๐ป ๐ผ ๐ฝ ๐พ ๐ฟ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ข ๐ฃ ๐ค ๐ฅ ๐ฆ ๐ง ๐จ ๐ฉ ๐ช ๐ซ ๐ฌ ๐ญ ๐ฎ ๐ฏ ๐ฐ ๐ฑ ๐ฒ ๐ณ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ ๐ป ๐ผ ๐ฝ ๐พ ๐ฟ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ข ๐ฃ ๐ค ๐ฅ ๐ฆ ๐ง ๐จ ๐ฉ ๐ช ๐ซ ๐ฌ ๐ญ ๐ฎ ๐ฏ ๐ฐ ๐ฑ ๐ฒ ๐ณ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ ๐ป ๐ผ ๐ฝ ๐พ ๐ฟ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ข ๐ฃ ๐ค ๐ฅ ๐ฉ ๐ซ ๐ฌ ๐ฐ ๐ณ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ ๐ป ๐ผ ๐ ๐ก ๐ข ๐ฃ ๐ค ๐ฅ ๐ฆ ๐ง ๐จ ๐ฉ ๐ช ๐ซ ๐ฐ ๐ค ๐ค ๐ค ๐ค ๐ค ๐ค ๐ค ๐ค ๐ค ๐ค ๐ค ๐ค ๐ค ๐ค ๐ค ๐ค ๐ค ๐ค ๐ค ๐ค ๐ค ๐คก ๐คข ๐คฃ ๐คค ๐คฅ ๐คฆ ๐คง ๐คจ ๐คฉ ๐คช ๐คซ ๐คฌ ๐คญ ๐คฎ ๐คฏ ๐คฐ ๐คฑ ๐คฒ ๐คณ ๐คด ๐คต ๐คถ ๐คท ๐คธ ๐คน ๐คบ ๐คผ ๐คฝ ๐คพ ๐คฟ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅ ๐ฅก ๐ฅข ๐ฅฃ ๐ฅค ๐ฅฅ ๐ฅฆ ๐ฅง ๐ฅจ ๐ฅฉ ๐ฅช ๐ฅซ ๐ฅฌ ๐ฅญ ๐ฅฎ ๐ฅฏ ๐ฅฐ ๐ฅฑ ๐ฅฒ ๐ฅณ ๐ฅด ๐ฅต ๐ฅถ ๐ฅท ๐ฅธ ๐ฅน ๐ฅบ ๐ฅป ๐ฅผ ๐ฅฝ ๐ฅพ ๐ฅฟ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆ ๐ฆก ๐ฆข ๐ฆฃ ๐ฆค ๐ฆฅ ๐ฆฆ ๐ฆง ๐ฆจ ๐ฆฉ ๐ฆช ๐ฆซ ๐ฆฌ ๐ฆญ ๐ฆฎ ๐ฆฏ ๐ฆฐ ๐ฆฑ ๐ฆฒ ๐ฆณ ๐ฆด ๐ฆต ๐ฆถ ๐ฆท ๐ฆธ ๐ฆน ๐ฆบ ๐ฆป ๐ฆผ ๐ฆฝ ๐ฆพ ๐ฆฟ ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐ง ๐งก ๐งข ๐งฃ ๐งค ๐งฅ ๐งฆ ๐งง ๐งจ ๐งฉ ๐งช ๐งซ ๐งฌ ๐งญ ๐งฎ ๐งฏ ๐งฐ ๐งฑ ๐งฒ ๐งณ ๐งด ๐งต ๐งถ ๐งท ๐งธ ๐งน ๐งบ ๐งป ๐งผ ๐งฝ ๐งพ ๐งฟ ๐ฉฐ ๐ฉฑ ๐ฉฒ ๐ฉณ ๐ฉด ๐ฉต ๐ฉถ ๐ฉท ๐ฉธ ๐ฉน ๐ฉบ ๐ฉป ๐ฉผ ๐ช ๐ช ๐ช ๐ช ๐ช ๐ช ๐ช ๐ช ๐ช ๐ช ๐ช ๐ช ๐ช ๐ช ๐ช ๐ช ๐ช ๐ช ๐ช ๐ช ๐ช ๐ช ๐ช ๐ช ๐ช ๐ช ๐ชก ๐ชข ๐ชฃ ๐ชค ๐ชฅ ๐ชฆ ๐ชง ๐ชจ ๐ชฉ ๐ชช ๐ชซ ๐ชฌ ๐ชญ ๐ชฎ ๐ชฏ ๐ชฐ ๐ชฑ ๐ชฒ ๐ชณ ๐ชด ๐ชต ๐ชถ ๐ชท ๐ชธ ๐ชน ๐ชบ ๐ชป ๐ชผ ๐ชฝ ๐ชฟ ๐ซ ๐ซ ๐ซ ๐ซ ๐ซ ๐ซ ๐ซ ๐ซ ๐ซ ๐ซ ๐ซ ๐ซ ๐ซ ๐ซ ๐ซ ๐ซ ๐ซ ๐ซ ๐ซ ๐ซ ๐ซ ๐ซก ๐ซข ๐ซฃ ๐ซค ๐ซฅ ๐ซฆ ๐ซง ๐ซจ ๐ซฐ ๐ซฑ ๐ซฒ ๐ซณ ๐ซด ๐ซต ๐ซถ ๐ซท ๐ซธAlso, check out the 9x version that blends right into the default font!
Supported mods
Symbol Chat
Easy to use emoji and symbol picker

Remapped characters (for developers)
In order to have any support for emoji consisting of sequences they have been remapped to unused single characters. An index of these can be found in /assets/emoji_remappings/lang/en_us.json.
For example, \ud83d\udc69\u200d\ud83d\udd2c (๐ฉ+๐ฌ=๐ฉโ๐ฌ)
is mapped to \udb80\udf30 using this translation snippet:
"\ud83d\udc69\u200d\ud83d\udd2c": "\udb80\udf30"
Please note that vanilla has no mechanism to automatically convert to the remapped form. A custom emoji picker or some kind of mod/plugin is required to make using these a smooth experience.
Because the index acts as a language file, a server side chat listener could detect emoji sequences and turn them into translations like this one:
{"translate": "\ud83d\udc69\u200d\ud83d\udd2c"}
Any client with the pack installed can then perform the remapping for the server. If the pack is not installed or the sequence is not found then it will just fall back to displaying the sequence. This means that the server doesn't need a complete list of emoji sequences, just a way to detect potential ones.
(The Unicode website contains data files describing what is an emoji.)
Shortcodes (for developers)
Shortcodes are a popular way to insert emoji by name. An index of shortcodes can be found in /assets/emoji_shortcodes/lang/en_us.json.
For example, :thinking: is mapped to \ud83e\udd14 (๐ค):
"thinking": "\ud83e\udd14"
Emoji that need remapping already map to the remapped version.
Please note that vanilla has no mechanism to automatically convert shortcodes into emoji. Some kind of mod/plugin is required.
Because the index acts as a language file, a server side chat listener could detect shortcodes and turn them into translations like this one:
{"translate": ":thinking:"}
Any client with the pack installed can then convert it for the server. If the
pack is not installed or the shortcode is not found then it will just fall back
to displaying the shortcode. This means that the server doesn't need a complete
list of shortcodes, just a way to detect potential ones by finding substrings
beginning and ending with a colon :.
Custom emoji?
Custom emoji could be created in a similar way by adding them to unused code
points of the default font and adding a translation with a shortcode.
For example, this translation snippet adds the shortcode :pog: for the
character \uE502:
":pog:": "\uE502"
Reverse shortcodes (for developers)
Maybe you want to display a name for each emoji, in some hover text for example. That is where reverse shortcodes come in. An index of these can be found in /assets/emoji_shortcodes_reverse/lang/en_us.json.
For example, \u200c\ud83e\udd14 (โ + ๐ค) is mapped to :thinking: using
this translation snippet:
"\u200c\ud83e\udd14": ":thinking:"
\u200c is added to each entry to allow the index to be used as a language file
without conflicting with the other indexes. If the pack is not installed or the
emoji is not found then it will just fall back to displaying the characters,
including the invisible \u200c.
A server side chat listener could detect shortcodes and turn them into emoji with tooltips like this one:
{"translate": ":thinking:", "hoverEvent": {"action": "show_text", "contents": ":thinking:"}}
With reverse shortcodes, it could also detect emoji and emoji sequences and also give them tooltips like this one:
{"translate":"\ud83e\udd14","hoverEvent":{"action":"show_text","contents":{"translate":"\u200c\ud83e\udd14"}}}
License
Graphics based on Twemoji Copyright (c) 2018 Twitter, Inc and other contributors, licensed under Creative Commons Attribution 4.0 International
Pixel art and resource pack adaptation Copyright (c) 2020 AmberW, licensed under Creative Commons Attribution 4.0 International


