Discord Server Emoji Exporter
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
This script extracts and exports all custom emojis from a Discord server. When you're on a Discord server page, the script scans the emoji picker, messages, and server settings to find all custom emojis available in that server. It displays a grid of emoji previews in the settings panel showing the emoji name and thumbnail. You can export all emojis as a ZIP archive containing the image files, or download them as individual files. The script also lets you copy the list of emoji names to your clipboard. A progress indicator shows the status during export, and the emoji list updates dynamically as you switch between servers.
WHERE IT RUNS
The script runs on all Discord pages (discord.com/channels/* and discord.com/app*). It works on server pages and the main Discord app view. It supports both desktop and mobile views.
HOW TO USE
After installation, the settings panel appears on the left side of the screen with the gear emoji (⚙️). Open the panel to configure the script:
- The "Enable emoji exporter" toggle enables or disables the script.
- The "Emojis Found" section shows all custom emojis with preview thumbnails.
- Choose the export format from the dropdown: "ZIP Archive" or "Individual files."
- Toggle "Include emoji names in export" to include a name mapping file.
- Click "Export Emojis" to download the emojis.
- Click "Copy Emoji Names" to copy the list of emoji names to clipboard.
- Click "Refresh Emoji List" to manually re-scan the server.
The script works automatically—just open a Discord server and the emojis will appear in the panel.
TECHNICAL SECTION — REAL MECHANISM
The script detects Discord pages by checking the URL for discord.com/channels or discord.com/app. It finds custom emojis by scanning for img elements with src URLs containing "cdn.discordapp.com/emojis/" or "media.discordapp.net/emojis/". It extracts emoji names from the alt or title attributes, and from the URL itself (the emoji ID before the file extension). Emojis are deduplicated by URL. The emoji grid displays each emoji with its name below it. For export, the script uses GM_xmlhttpRequest to fetch each emoji image as a blob. For ZIP export, it reads each blob as a data URL, then constructs a ZIP archive manually (without external libraries) by building the local file headers, central directory, and end of directory entries. The ZIP file is then downloaded as a Blob. For individual export, each emoji is downloaded separately. The progress indicator is updated as each image is downloaded. A MutationObserver watches for DOM changes and re-scans for emojis when the server changes.
THE PANEL
The settings panel is built with BotGentz's BGPanel component. It is draggable via its header, allowing you to reposition it anywhere on the screen. The panel snaps to the left edge by default but can be moved freely. Click the gear emoji to collapse the panel into a small bubble, and click the bubble to expand it again. The panel remembers its position per page session. Press the Escape key to quickly close or minimize the panel. The panel includes a status flash bar that provides visual feedback when settings are changed or actions are performed. All settings save automatically via GM_setValue.
PLEASE NOTE
This script requires the free BotGentz browser extension to run. It does not function as a standalone Chrome extension and does not use chrome.* APIs. Discord frequently updates its interface, which may affect the selectors used to find custom emojis. If the script stops working, please check for updates. The script only extracts custom server emojis—it does not extract standard Unicode emojis. The ZIP export downloads each emoji image individually before packaging, which may take time for servers with many emojis. The script stores only your preferences via GM_setValue. No data is sent externally except for fetching the emoji image URLs. The script never reads or writes password fields, hidden inputs, or file inputs. All DOM operations use safe methods (style properties, textContent, appendChild) and never use innerHTML.