Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Emoji

VellumFE renders :shortcode:-style emoji in incoming game text, and lets you add your own custom (Discord-server-style) emoji.

Standard emoji

Any standard gemoji shortcode in game text is rendered as its emoji:

Someone thinks, "heading to town :grin:"
  • In the GUI, emoji are drawn in full color (Twemoji artwork). Toggle color vs. monochrome with the ui.color_emoji setting.
  • On the phone/web client, emoji use the system emoji font.
  • In the TUI, emoji render as whatever Unicode glyph your terminal font provides.

Shortcode expansion is controlled by the ui.emoji_shortcodes setting (default on).

Custom emoji

Drop image files into ~/.vellum-fe/emoji/ and reference them as :name:, just like Discord server emoji.

  1. Create the directory ~/.vellum-fe/emoji/ if it does not exist.
  2. Add an image named after the shortcode you want, e.g. ~/.vellum-fe/emoji/vibecat.png for :vibecat:.
  3. Restart, or run .reload, to pick up new files.

Supported formats:

FormatExtensionAnimated
PNG.pngif it is an animated PNG (APNG)
APNG.apngyes
GIF.gifyes
WebP.webpyes, if the file is animated

Animated GIF, WebP, and APNG all animate in the GUI and on the phone. Discord serves its animated custom emoji as animated WebP — save one as ~/.vellum-fe/emoji/<name>.webp and it animates. (To grab one: right-click the emoji in Discord → Copy Link, open the …​.webp URL in a browser, and save it.)

Naming rules: the filename (without extension) is the shortcode, and may contain letters, digits, _, +, and - only. Names are case-insensitive (VibeCat.png matches :vibecat: and :VibeCat:). If a custom emoji shares a name with a standard one, your custom emoji wins.

Sizing custom emoji (GUI)

Two settings tune how custom emoji look in the GUI (Client settings → UI):

SettingDefaultEffect
Custom Emoji Size (ui.custom_emoji_size)1.0Image height as a multiple of the text line height. Above 1.0 the emoji stand out above the line.
Custom Emoji Spacing (ui.custom_emoji_spacing)0.2Breathing room around each emoji, as a fraction of the line height added to its width.

How each frontend renders custom emoji

  • GUI — draws the image inline, animating APNG/GIF frames.
  • Phone/web — draws the image inline via a private, token-gated endpoint; GIF/APNG animate natively in the browser.
  • TUI — cannot render images, so it shows the literal :name: text as a readable fallback.

Emoji are never sent to the game

GemStone IV is a roleplaying game, and sending emoji (or the shortcodes that render as emoji) as speech, thoughts, whispers, or actions can get you warned or banned. Emoji are a display convenience on your side only.

VellumFE strips emoji from every command before it reaches the game — whether you type it, a hotbar sends it, or a Lich script sends it. This includes actual emoji characters and any :shortcode: that resolves to a known emoji (standard or custom). Ordinary text, unknown shortcodes, Lich script syntax, and things like time strings (12:30:45) are left untouched. This protection is always on.

So a Lich script can safely send :vibecat: for VellumFE to display, and the game will never see it.