

EmojiMe
+4200 Twemoji emoji in chat with +8000 shortcodes following the Unicode CLDR standard. Animated too!

Description
<div>A <a href="https://www.vintagestory.at/">Vintage Story</a> mod that adds +4200 emoji to chat, with support for custom server-side emoji packs - including animated GIF and WebP.</div> <h2>Features</h2> <div> </div> <ul> <li><strong>+4200 built-in emoji</strong> - powered by the full <a href="https://github.com/jdecked/twemoji" target="_blank" rel="noopener">Twemoji</a> SVG set</li> <li><strong>+8000 shortcodes</strong> - type <code>:fire:</code>, <code>:thumbsup:</code>, <code>:grinning:</code> etc. (case-insensitive)</li> <li><strong>Text smileys</strong> - <code>:)</code>, <code>:D</code>, <code>;)</code>, <code><3</code>, <code>XD</code> and more convert automatically (can be disabled)</li> <li><strong>Unicode emoji</strong> - paste or type raw emoji characters</li> <li><strong>Skin tones and combined emoji</strong> - variants like 👍🏽 and compound emoji are supported</li> <li><strong>Custom emoji packs</strong> - server admins add packs server-side, emoji images are sent to players on demand when used in chat</li> <li><strong>Animated emoji</strong> - GIF and animated WebP play directly in chat</li> </ul> <h2>Installation</h2> <div> </div> <ol> <li>Download the latest release</li> <li>Place the EmojiMe ZIP in your Vintage Story <code>Mods</code> folder</li> <li>Restart the game</li> </ol> <div> </div> <h2>Shortcode Format</h2> <div> </div> <div>Shortcodes follow the <a href="https://cldr.unicode.org/" target="_blank" rel="noopener">Unicode CLDR</a> standard, with additional aliases from Telegram, GitHub (gemoji), and Slack/Discord (iamcal/emoji-data). Matching is case-insensitive. Wrap a shortcode name in colons. See the <a href="https://github.com/ZynthCode/emojime/blob/main/shortcodes.md" target="_blank" rel="noopener">full list of supported shortcodes</a>.</div> <div> </div> <table style="border-collapse: collapse; width: 100%;" border="1"> <tbody> <tr> <td style="width: 30%;"><strong>Shortcode</strong></td> <td style="width: 70%;"><strong>Result</strong></td> </tr> <tr> <td style="width: 30%;"><code>:fire:</code></td> <td style="width: 70%;">Fire emoji</td> </tr> <tr> <td style="width: 30%;"><code>:thumbsup:</code> or <code>:+1:</code></td> <td style="width: 70%;">Thumbs up emoji</td> </tr> <tr> <td style="width: 30%;"><code>:grinning:</code></td> <td style="width: 70%;">Grinning face emoji</td> </tr> </tbody> </table> <div> </div> <h2>Configuration</h2> <div> </div> <div>EmojiMe creates a config file at <code>ModConfig/emojime.json</code> on first run. Available options:</div> <div> </div> <table style="border-collapse: collapse; width: 100%;" border="1"> <tbody> <tr> <td style="width: 30%;"><strong>Option</strong></td> <td style="width: 20%;"><strong>Default</strong></td> <td style="width: 50%;"><strong>Description</strong></td> </tr> <tr> <td style="width: 30%;"><code>AutoConvertSmileys</code></td> <td style="width: 20%;"><code>true</code></td> <td style="width: 50%;">Convert text emoticons like <code>:)</code> and <code>:D</code> to emoji automatically</td> </tr> <tr> <td style="width: 30%;"><code>EmojiSize</code></td> <td style="width: 20%;"><code>0</code></td> <td style="width: 50%;">Size in pixels for built-in emoji (8-128, 0 = match font size)</td> </tr> <tr> <td style="width: 30%;"><code>AnimationMaxFps</code></td> <td style="width: 20%;"><code>20</code></td> <td style="width: 50%;">Maximum frames per second for animated emoji (1-60)</td> </tr> <tr> <td style="width: 30%;"><code>PreloadAnimations</code></td> <td style="width: 20%;"><code>true</code></td> <td style="width: 50%;">Extract all animation frames on join instead of on first use. Disable for large packs (hundreds of animated emoji) to avoid slow initial load.</td> </tr> </tbody> </table> <div> </div> <h2>Custom Emoji Packs</h2> <div> </div> <div>Server admins can add custom emoji packs. Players don't need to install anything - emoji images are sent on demand when used in chat. Just type the shortcode and the emoji appears.</div> <div> </div> <div>Create a folder in <code>VintagestoryData/ModConfig/emojime/packs/</code> with a <code>pack.json</code> and an <code>emojis/</code> subfolder containing your images. Supported formats: SVG, PNG, JPG, WebP, and GIF. Animated WebP and GIF play automatically in chat.</div> <div> </div> <div><strong>Example pack.json:</strong></div> <pre><code>{ "name": "My Custom Pack", "prefix": "mypack", "maxSize": 64, "emojis": { "kappa": "kappa.png", "dance": "dance.gif", "wave": "wave.webp" } }</code></pre> <div> </div> <table style="border-collapse: collapse; width: 100%;" border="1"> <tbody> <tr> <td style="width: 20%;"><strong>Field</strong></td> <td style="width: 15%;"><strong>Required</strong></td> <td style="width: 65%;"><strong>Description</strong></td> </tr> <tr> <td style="width: 20%;"><code>name</code></td> <td style="width: 15%;">Yes</td> <td style="width: 65%;">Display name for logging</td> </tr> <tr> <td style="width: 20%;"><code>prefix</code></td> <td style="width: 15%;">No</td> <td style="width: 65%;">Namespace for shortcodes (defaults to folder name)</td> </tr> <tr> <td style="width: 20%;"><code>maxSize</code></td> <td style="width: 15%;">No</td> <td style="width: 65%;">Maximum render size in pixels (8-128, default 128)</td> </tr> <tr> <td style="width: 20%;"><code>emojis</code></td> <td style="width: 15%;">Yes</td> <td style="width: 65%;">Maps shortcode names to image filenames in the <code>emojis/</code> subfolder</td> </tr> </tbody> </table> <div> </div> <div><strong>Using custom emoji:</strong></div> <div>Each custom emoji gets two shortcodes:</div> <ul> <li><strong>Bare shortcode</strong> (e.g. <code>:kappa:</code>) - works if it doesn't conflict with a built-in emoji</li> <li><strong>Prefixed shortcode</strong> (e.g. <code>:mypack-kappa:</code>) - always works, guaranteed unique</li> </ul> <div>Built-in emoji always take priority for bare shortcodes. For example, <
Ratings & reviews
Sign in to leave a rating or comment.

