Custom Emojis
Upload, manage, and import custom emojis for your Gryt server
Custom emojis let members express themselves with images unique to your server. Anyone can use them in chat with the :shortcode: syntax, and admins can manage the full library from Server Settings.
Supported formats
| Format | Extension | Animated | Stored as |
|---|---|---|---|
| PNG | .png | No | AVIF |
| JPEG | .jpg / .jpeg | No | AVIF |
| WebP | .webp | Yes | Animated WebP, animation kept |
| GIF | .gif | Yes | Animated WebP, animation kept |
| AVIF | .avif | Yes | Animated WebP if animated, AVIF if not |
Everything is resized to 128 pixels tall, keeping the aspect ratio and never enlarging something smaller. A still image comes back out as AVIF and an animated one as animated WebP, whatever it arrived as.
SVG isn't accepted. An SVG is a document rather than a picture. It can carry a <script>, and a browser asked to open one from your server's own origin will run it. Uploading one gets "SVG images are not accepted".
The size limit per image is a per-server setting, emojiMaxBytes. It defaults to 100 MB and can be set anywhere from 64 KB to 200 MB. Anything bigger is refused.
Naming rules
Emoji shortcodes must follow these rules:
- 2 to 32 characters long
- Only letters, numbers, and underscores (
A-Z,a-z,0-9,_) - Must be unique within the server
Examples: :pepehappy:, :cat_jam:, :lol2:
Uploading emojis
Go to Server Settings > Emojis (requires admin or owner role).
Single or multi-file upload
- Click Choose files and select one or more images.
- Each file appears in a preview list with an auto-generated name derived from the filename.
- Edit the shortcode name for any emoji before uploading.
- Click Upload all to upload the entire batch, or click the upload icon on an individual emoji.
ZIP archive upload
You can upload a .zip file containing multiple images:
- Click Choose files and select a
.ziparchive. - Gryt extracts all valid image files from the archive (nested folders are supported;
__MACOSXmetadata is ignored). - Each extracted image appears in the preview list with its filename used as the shortcode.
- Edit names as needed, then upload.
Files inside the ZIP follow the same format and size rules as individual uploads.
Importing from BetterTTV or emoji.gg
One box takes a link and works out where it is from. In Server Settings > Emojis, under Import from a link, paste any of these:
| Link | What you get |
|---|---|
betterttv.com/users/<id> | That user's channel emotes and shared emotes |
betterttv.com/emotes/<id> | The one emote |
emoji.gg/user/<name> | That profile's emojis |
emoji.gg/pack/<slug> | The pack |
emoji.gg/emoji/<slug> | The one emoji |
Step by step
- Open Server Settings > Emojis.
- Paste the link and click Fetch.
- A preview grid appears. Each emote shows a thumbnail, an editable shortcode derived from its name, and a GIF badge if it's animated.
- Tick the ones you want, or use Select all and Deselect all. The filter field narrows a long list.
- Rename anything you like. Names that clash with an emoji already on the server are flagged.
- Click Import N emojis.
The server fetches each one at full resolution and puts it through the same pipeline as an upload, so the format rules above apply here too.
A large emoji.gg profile is read a fixed number of pages deep. When that happens the list says so, rather than handing you a short list that looks complete.
Using emojis in chat
Type : followed by the shortcode to trigger the autocomplete picker. You can also open the emoji picker from the chat input toolbar.
Custom emojis appear alongside standard Unicode emojis in the picker, in a dedicated Custom category.
:pepehappy: → shows the custom emoji
:wave: → shows the standard Unicode wave emojiManaging existing emojis
In Server Settings > Emojis, below the upload section, you'll see the full list of server emojis. Admins can:
- Rename — Click the edit icon next to any emoji to change its shortcode.
- Delete — Click the delete icon to permanently remove an emoji from the server.
Renaming an emoji updates the shortcode everywhere going forward; messages already sent will reference the old name and may show as missing.