Emoji packs: the three creation modes
An emoji pack is created three ways in Telegram — a 3D spinning coin, a static image, or a paste of premium emoji that already exist in another pack —…
Emoji packs: the three creation modes
An emoji pack is created three ways in Telegram — a 3D spinning coin, a static image, or a paste of premium emoji that already exist in another pack — each reached by its own direct command. The same three choices also appear as buttons on a chooser screen when you add to a pack you already own.
Commands
/newpack opens the wizard. /emojipack is an identical alias for it — the dashboard's own copy refers to the feature as /emojipack, while the bot's Telegram command menu lists /newpack.
Commands
| Command | In the Telegram command menu? | Effect |
|---|---|---|
| /newpack | Yes — private and group | Opens the coin wizard. If premium emoji are pasted in the same message, opens Existing Emoji instead. |
| /emojipack | No — alias only | Identical to /newpack. |
| /staticemoji | No | Opens the From Image (static) wizard directly. |
| /mypacks | Yes — private and group | Lists your packs, 10 per page. |
A command matches with or without an @botname suffix, and with trailing text or an emoji after it — /newpack@YourBot and /newpack 🔥 both match; /newpackfoo does not. /newpack and /emojipack also match when they appear in a photo or document caption, not just as message text; /staticemoji only matches as message text.
Where to find the on/off switch
| Setting | Value |
|---|---|
| Dashboard location | Management tab → "Emoji Creator" card, tooltip "/emojipack — custom static + spinning-coin emoji packs". |
| State key | emoji_packs_enabled — see below for what it actually gates. |
The three modes
Reaching a mode by its direct command skips straight into that mode — /newpack (no premium emoji attached) goes straight to an image request, /staticemoji goes straight to a name request, and pasting premium emoji into /newpack goes straight to a name request. None of the three asks you to pick a mode first.
The three modes and how to reach each one directly
| Mode | Chooser button label | Direct command | First prompt |
|---|---|---|---|
| Coin | Coin flip | /newpack or /emojipack, no premium emoji attached | "Let's make a 3D coin emoji. Send an image — upload a PNG, SVG, or AVIF as a file to keep transparency, or paste an image URL." |
| Static | From Image | /staticemoji | "Make a static emoji pack. Send a name for the pack." |
| Existing emoji | Existing Emoji | /newpack (or /emojipack) with premium emoji pasted in the same message | "Gotchu, send a name for the pack" |
The chooser itself — three buttons labelled Coin flip (ep:new:coin), From Image (ep:new:static) and Existing Emoji (ep:new:ids) — is not shown for a brand-new pack. It appears once a pack already exists: tapping Add New Emojis on a pack's detail card re-opens it, scoped to that pack, with the prompt "Add to this pack. A coin flip, an emoji from an image, or existing emojis?" and a Back button alongside the three mode buttons.
Authorization
Accepted chat types are private, group and supergroup. Channels are rejected outright — none of the four commands work there.
Who may send /newpack, /emojipack, /staticemoji or /mypacks
| Setting | Value |
|---|---|
| In a DM | Only the bot's owner/admin, or a username listed in dm_authorized_usernames. |
| In an authorized group | Any member of that group — authorization keys on the chat, not the sender. |
| In an unauthorized group, or an unlisted DM sender | The command is silently ignored — no reply. |
Buttons inside an already-open wizard (the ep: callbacks) are not re-checked against this list. Once a wizard message exists, tapping its buttons only requires the tap to come from the Telegram user id the wizard was opened for, plus the group's emoji_packs_enabled switch below.
The /start precondition
Telegram only lets a bot create a sticker set owned by a user it can resolve as a private peer — someone who has opened a DM with it. /newpack, /emojipack and /staticemoji check this before doing anything else; /mypacks does not need it.
Shown when the check fails, for 30 seconds
Before I can make a pack for you, Telegram needs you to open a private chat with @<bot> and send /start once — then run this again.| Setting | Value |
|---|---|
| Resolvability cache | 600 seconds — a successful check is not repeated within that window. |
emoji_packs_enabled
The group on/off switch
| Setting | Value |
|---|---|
| Default | On. |
| Effect when off | Suppresses /newpack, /emojipack, /staticemoji and /mypacks in groups and supergroups. Their entries are also removed from the group's Telegram command menu. |
| DMs | Never affected — the switch is not consulted at all in a private chat. |
| Where to change it | Dashboard → Management tab → "Emoji Creator" card. |
Note
Creating a pack is gated only by the authorization rules and the /start precondition above.
Turning the scanner on and off
One switch — `scanner.enabled` in the bot's configuration — governs the scanner, the calls layer, milestone alerts, and all three calls commands together.
The coin creator in Telegram
/newpack (or /emojipack) with no premium emoji attached opens the coin flow: an image first, then a choice between full customization and an instant…