What size are Twitch and Discord emotes, really

Every emote guide repeats the same three Twitch sizes. One of them is not the size anyone actually sees. Here is what the platforms serve, checked against the platforms themselves.

The short answer

Twitch emotes are uploaded at three sizes: 28x28, 56x56 and 112x112 pixels. Discord custom emoji are uploaded at 128x128 and must be no larger than 256 KiB. Both prefer PNG with a transparent background.

That upload requirement is where most guides stop, and it is where the interesting part begins.

The number almost every guide gets wrong

Search for Twitch emote sizes and you will be told, over and over, that they are "28x28, 56x56 and 112x112". Those are the sizes you upload. They are not the sizes a viewer sees.

Twitch serves emotes at three scale factors - 1.0, 2.0 and 3.0 - from its own content network. Fetch the same emote at each scale and read the image header, and the heights come back as 28, 56 and 84 pixels, not 28, 56 and 112. The largest served size is three times the 28-pixel base, which is 84.

Twitch: uploaded vs served
ScaleServed heightWhat most guides claim
1.028 px28
2.056 px56
3.084 px112

This matters if you are designing. An emote is read in chat at 28 pixels, and the largest anyone sees it is 84. If you are judging your artwork at 112 because a guide called that the display size, you are looking at it a third larger than it will ever appear - and fine detail that reads at 112 can turn to mud at 28.

Design for the 28-pixel view first. If the emote is unreadable there, it is unreadable in chat, no matter how good it looks at 112.

Discord, which is documented plainly

Discord's developer documentation is unambiguous: custom emoji upload at 128x128 with a maximum file size of 256 KiB, in JPEG, PNG, GIF, WebP or AVIF.

Note KiB, not KB. 256 KiB is 262,144 bytes, not 256,000. It is a small difference, but it is the difference between an upload that works and one that is rejected at the margin.

File size is where colour choices bite

Twitch rejects static emotes over 25 KB and animated ones over 1 MB, and Discord holds the 256 KiB line. Flat colour and hard edges compress far smaller than soft gradients and photographic detail, so a busy design can blow the limit at the largest size while the small ones sail through.

If a file is over the limit, reduce the number of colours before you reduce the artwork. Pixel-style emotes with a small palette are both on-brand for the medium and kind to the file size.

Transparency and the check that saves a re-upload

Emotes sit on whatever colour the chat theme happens to be, so a transparent background is not optional - a white box around your art will show as a white box on a dark theme. Export PNG with real transparency, not a flattened white fill.

The one preview worth trusting is the smallest one against both a light and a dark background. Our emote resizer produces all the required sizes at once and shows them on a checkerboard so stray semi-transparent pixels are obvious before you upload.

Discord's slot limit is a separate constraint from file size

Getting an emoji correctly sized and under 256 KiB doesn't guarantee it can be uploaded - a Discord server also has a fixed number of custom emoji slots, and that number depends on the server's boost level rather than anything about the image itself. An unboosted server gets 50 static emoji slots (animated emoji have their own separate allowance), and each boost tier raises the ceiling further. A perfectly sized, perfectly compressed emote still won't upload to a server that has already used every slot at its current tier.

This is worth checking before spending time perfecting a batch of emotes for a specific server: the slot count is a server-wide setting visible in its emoji settings, independent of the per-image size and file-size rules covered above.

Where this comes from

  • Twitch served sizes measured directly from Twitch's static content network (static-cdn.jtvnw.net) at scales 1.0, 2.0 and 3.0.
  • Discord custom emoji limits from Discord's developer documentation (128x128, 256 KiB, JPEG/PNG/GIF/WebP/AVIF).
  • Twitch upload sizes (28/56/112) and the 25 KB / 1 MB file caps are consistent across published emote guides; the Twitch help article stating them was not reachable at the time of writing, so they are given as widely-published figures.
  • Discord server emoji slot counts by boost level (50 base, increasing per tier) are documented in Discord's own support and boosting documentation.