Discord Emoji Maker
- Runs on your device
- Nothing uploaded
- Free, no sign-up
- Discord's emoji rules
Choose a picture or GIF
PNG, JPG, WebP or GIF. Or drag it here, or paste it.
No file handy? Try a sample:
Samples are small files we made for testing.
Make it square
Your picture shows up here once you pick it.
Name it
Discord will take
People will type :my_emoji: to use it. The download gets this name too.
Make the emoji
Choose a picture first.
You changed the crop. Tap Make emoji again to update it.
Discord dark
you gg nice
Discord light
you gg nice
Discord says it shows emoji at 32 × 32. The 48 and 22 pixel previews are approximate, to give a feel for an emoji-only message and an emoji inside a sentence.
Download- Open Server Settings, then Emoji.
- Press Upload Emoji and pick the file you downloaded.
- Check the name, then type
:name:in chat to use it.
Runs in your browser with gifsicle 1.95 for GIFs (GPL-2.0: license and build notes, source code), gifuct-js (MIT) and gifenc (MIT). Nothing is uploaded.
Making an emoji, start to finish
- Choose a picture or GIF. PNG, JPG, WebP and GIF all work. You can also drag the file onto the box or paste it.
- Make it square. Fill crops a square out of the picture: drag it to move the crop, use Zoom to go in closer, or use the arrow keys. Fit keeps the whole picture and leaves the extra space clear. Turn on Pixel art for sprites and pixel drawings so the edges stay hard.
- Name it. Type the name people will use between colons. If Discord would refuse it, the page says why and offers a cleaned version. The download uses that name, so the upload dialog fills it in for you.
- Make the emoji. Pictures update on their own. For a GIF, tap Make emoji. Check the dark and light previews, then tap Download. Upload it in Server Settings under Emoji, or through Add Emoji in the emoji picker on desktop and in the browser.
Seven test files, one emoji each
We ran these through the page on October 23, 2026 in desktop Chrome. Every file came out at 128 × 128 and under 256 KB, and each downloaded file was checked for its real pixel size and byte count afterward. Input sizes are in KB and MB (1,000 bytes per KB); results are in KiB (1,024 bytes), the unit Discord's developer docs use. The GIFs were made for testing, and the noisy ones are close to the worst case for GIF.
| Input | Emoji out | What it took |
|---|---|---|
| PNG photo, 1200 × 800, 9.7 KB | PNG, 6.5 KiB | Cropped and resized, full color |
| Transparent GIF, 256 × 256, 28 frames, 39 KB | 35.0 KiB, all 28 frames | Lossless, 1 encode, 0.2 s |
| GIF, 480 × 270, 48 frames, 494 KB | 138.8 KiB, all 48 frames | Lossless, 1 encode, 0.5 s |
| GIF, 320 × 320, 38 frames, 435 KB | 231.0 KiB, all 38 frames | Light compression, 2 encodes, 0.9 s |
| Smooth gradient GIF, 600 × 600, 80 frames, 3.2 MB | 249.2 KiB, all 80 frames | Compression 170, 128 colors, 7 encodes, 4.7 s |
| Noise GIF, 400 × 400, 90 frames, 10.8 MB | 219.2 KiB, 45 frames | Compression 200, 128 colors, every 2nd frame, 7 encodes, 38.2 s |
| Noise GIF, 600 × 600, 80 frames, 20.3 MB | 213.0 KiB, 40 frames | Compression 200, 128 colors, every 2nd frame, 7 encodes, 33.5 s |
Worked example. The 400 × 400 noise GIF is 10,789,752 bytes with 90 frames. At full 128 × 128 the page tried a lossless pack first, then stronger compression, then fewer colors. None of that fit with all 90 frames, so it kept every 2nd frame and slowed each one down so the loop runs at the same speed. Result: 224,446 bytes (219.2 KiB), 45 frames, 7 encodes, 38.2 seconds. With Allow smaller than 128 × 128 turned on, the same file came out at 80 × 80 with all 90 frames, 223,714 bytes, in 38.7 seconds. Since Discord shows emoji at 32 × 32, the smaller one usually looks better in chat because the motion stays smooth.
The same switch helped the 300 frame, 18.5 MB test GIF most: at 128 × 128 it needed every 4th frame (75 frames, 225.6 KiB), while at 64 × 64 it kept every 2nd frame (150 frames, 205.6 KiB). Times depend on your device. Phones are slower, and long noisy GIFs take the longest.
What Discord accepts for custom emoji (checked October 23, 2026)
| Rule | Discord says | Source |
|---|---|---|
| File size | Under 256 KB (the developer docs say 256 KiB, and bigger uploads fail with an error) | Adding custom emoji, developer docs |
| Size in pixels | Upload up to 128 × 128; Discord resizes emoji to 32 × 32 | Emoji FAQ |
| File types | JPEG, PNG, GIF and WebP | Adding custom emoji |
| Name | At least 2 characters, letters, numbers and underscores only; the API caps names at 32 | Adding custom emoji, Discord API spec |
| Slots per server | 50 static by default, plus 50 animated slots with Nitro or Nitro Basic | Adding custom emoji |
| Who can add them | The server owner, or members with Manage Emojis or Create Expressions | Adding custom emoji |
| Using emoji in other servers | Needs Nitro or Nitro Basic; without it, emoji work only in their own server | Adding custom emoji |
| Big emoji | A message of only emoji (up to 27) shows them larger, except in Compact mode | Emoji FAQ |
Discord's help page says KB and its developer docs say KiB, which are 256,000 and 262,144 bytes. This page aims for 256,000 bytes so the file passes either way. If the upload dialog in your app shows a different rule, trust the dialog.
Fill, Fit and pixel art
Emoji are square, and most pictures are not. Fill is the usual choice: it crops a square, so the subject fills the whole emoji and reads well at 32 pixels. Fit is for logos and wide text where cutting anything off would ruin it. The picture shrinks to fit inside the square and the spare space stays see-through, so it blends into both the dark and light themes.
Resizing normally smooths edges, which is right for photos and drawings. For pixel art it turns crisp sprites into mush, so the Pixel art switch keeps each pixel a hard block instead. It looks best when the art is a whole multiple of the final size, like 32 or 64 pixels across.
Names Discord will take
The name is what people type, like :party_cat:. Spaces, dashes, dots, accents and emoji in the name get refused. The page swaps runs of those for a single underscore, turns accented letters into plain ones (Ünïcode becomes Unicode), trims the result to 32 characters, and adds _emoji if only one character is left. A name made entirely of symbols becomes my_emoji, so you will want to type your own.
Where this falls short
- GIF pixels are either fully see-through or fully solid. Soft shadows and glows around a transparent GIF turn into a hard edge. Still pictures come out as PNG, which keeps soft edges.
- Animated WebP and APNG files are treated as stills: the page uses the first frame. Convert them to GIF first if you need the motion.
- HEIC photos from iPhones do not open in most browsers. Convert them with the HEIC to PNG converter first.
- Discord re-processes every emoji it stores and shows it at 32 × 32, so tiny details and thin text vanish no matter how clean the file is.
- The 48 and 22 pixel previews are our guess at an emoji-only message and an emoji inside a sentence. Discord's own sizes can differ by app and zoom level.
- Very long or noisy GIFs can take half a minute or more, and phones limit how big a file the page will open.
Need a sticker, a shorter GIF for chat, or a banner instead? The Discord GIF compressor handles those sizes, and the Discord tools page has every Discord limit in one table.
ToolPetal is not affiliated with, endorsed by, or sponsored by Discord. Discord is a trademark of Discord Inc. Limits can change; we link to Discord's own pages so you can check.
Questions about Discord emoji
What size should a Discord emoji be?
Upload it at 128 x 128 pixels and under 256 KB. Discord's help pages say emoji can be uploaded at up to 128 x 128 and are resized to 32 x 32 in chat. This page makes a 128 x 128 file under 256,000 bytes, which passes both the KB and KiB versions of the limit.
Does this emoji maker upload my picture?
No. Cropping, resizing and GIF compression all run inside your browser. The picture never leaves your device.
Why does Discord say my emoji name is invalid?
Emoji names can only use letters, numbers and underscores, and need at least 2 characters. Discord's API also caps names at 32 characters. Spaces, dashes, dots and accents are the usual culprits. The name box shows which rule fails and offers a cleaned name you can use.
Can I make an animated emoji from a GIF?
Yes. Choose a GIF and tap Make emoji. The page keeps all frames when it can and only drops frames as a last resort, keeping the same speed. Discord's help page says servers get 50 animated emoji slots on top of the 50 static ones with Nitro or Nitro Basic.
My GIF is still too big. What now?
Turn on Allow smaller than 128 x 128 and tap Make emoji again. Discord shows emoji at 32 x 32, so a smaller animated emoji often looks the same in chat and keeps more frames. Trimming the GIF to its best second or two also helps a lot.
Will the background stay transparent?
Yes, if the picture has a transparent background. Stills come out as PNG with soft edges kept. GIF transparency is all or nothing, so soft shadows become a hard edge. Fit mode also leaves the space around the picture transparent.