What you need to make a Twitch emote
A Twitch emote is a small image that viewers can type into chat using a code — usually something like :myemote: — and the image appears in place of the text. To create one, you need image editing software (free options like GIMP or Photoshop work), a Twitch account with at least 50 followers, and the emote file saved as a PNG image.
Twitch has strict size and format rules. Your emote must be exactly 28 pixels wide by 28 pixels tall for the smallest version, though Twitch also accepts 56×56 and 112×112 pixel versions of the same image — these are just larger versions for viewers with better screens. The file has to be PNG format, under 1 MB in size, and cannot contain trademarked logos, real people's faces, or sexually explicit content.
You do not need to pay money to upload emotes. All Twitch channels get one free emote slot. If you have channel subscribers, you unlock more slots — tier 1 subscribers give you 5 emote slots, tier 2 gives you 10, and tier 3 gives you 15. Affiliates and partners also get additional free slots.
Key Takeaways
- Emotes must be PNG files at 28×28, 56×56, or 112×112 pixels, and Twitch provides a template you can read to get the dimensions right.
- Your account needs at least 50 followers before you can upload any emotes, and you start with one free slot that anyone can use.
- The emote code you choose (like :pog: or :sadge:) cannot match an existing emote from Twitch or other channels, and Twitch checks this automatically when you upload.
- You upload emotes through your Creator Dashboard under the Emotes section, and they go live when ready once approved.
- Emotes cannot show real people's faces, trademarked logos, or sexually explicit content, or Twitch will reject them.
Creating the image file in free software
Start by downloading GIMP (free, works on Windows and Mac) or using Photoshop if you have it. Open GIMP and create a new image. Go to Image → Canvas Size and set the width and height both to 28 pixels. Make sure the resolution is 72 pixels per inch, which is the standard for screen images.
Draw or paste your design into this small canvas. Because 28 pixels is tiny, keep the design straightforward — a single character, a straightforward shape, or a small face works better than detailed artwork. Many streamers use their own face, a mascot character, or an inside joke from their community. Once you finish the design, go to File → Export As, choose PNG as the file type, and save it with a name like "myemote.png".
If you want to offer the emote at larger sizes too, you can scale the same image up. In GIMP, go to Image → Scale Image and change the size to 56×56, then export it as a separate file like "myemote_56.png". Repeat for 112×112 if you want. Twitch will accept all three sizes, and viewers' clients will automatically show the right size based on their screen.
Uploading through your Creator Dashboard
Log into Twitch and go to your Creator Dashboard. On the left menu, find Emotes under the Branding section. Click the button to add a new emote. Twitch will ask you to choose the emote code — this is the text viewers type to use it, like :pog: or :sadge:. The code can be 2 to 25 characters, letters and numbers only, and cannot match any existing emote on Twitch.
Upload your PNG file by clicking the upload area. If you made multiple sizes, upload the 28×28 version first, then add the 56×56 and 112×112 versions in the fields below. Twitch will check that your emote code is not already taken and that the image meets the size and content rules. If everything passes, click Save and the emote goes live when ready.
Your emote is now available to anyone in your channel. If it is a subscriber emote (meaning only subscribers can use it), you assign it to a subscription tier when you upload it. If it is a channel emote (anyone can use it), it appears in the emote menu for all your viewers.
Understanding emote tiers and subscriber slots
Every Twitch channel starts with one free channel emote slot. This slot is for an emote anyone in your chat can use, whether they subscribe or not. Once you hit 50 followers, you unlock the ability to upload to this slot.
If viewers subscribe to your channel at tier 1 (the basic subscription level), you unlock 5 subscriber emote slots. These emotes can only be used by people who are subscribed at that tier or higher. Tier 2 subscribers unlock 10 more slots, and tier 3 unlocks 15 more. This means a channel with tier 3 subscribers can have up to 1 + 5 + 10 + 15 = 31 emotes total.
Twitch Affiliates (streamers who meet the platform's requirements) get 5 additional free channel emotes on top of the base slot. Partners get even more. You can see how many slots you have available in your Creator Dashboard — it shows the total and how many you have already filled.
Rules that will get your emote rejected
Twitch rejects emotes that contain real people's faces, even if it is your own face. This rule exists to prevent impersonation and to keep the platform from becoming a photo-sharing service. You can use a cartoon version of yourself, a mascot, or an abstract design instead.
Trademarked logos and brand names are not allowed. You cannot upload an emote that is the McDonald's logo, the Fortnite icon, or the logo of another streamer. Twitch's automated system and human reviewers catch most of these before they go live. Sexually explicit content, hate speech, and violence are also grounds for rejection.
If your emote gets rejected, Twitch sends you a message explaining why. You can edit the image to fix the problem and resubmit it. Most rejections are for size issues (the file is not exactly the right pixel dimensions) or for content that violates the rules above.
Making emotes that actually get used in chat
The best emotes are ones your community recognizes and wants to use. Inside jokes from your streams work well — if you always say a certain phrase or do a certain thing, turn that into an emote and your viewers will spam it. Emotes that show emotion (happy, sad, confused, excited) get used a lot because chat uses them to react to what is happening on stream.
straightforward designs are more recognizable at small sizes than complex ones. A single character, a straightforward face, or a bold shape is easier to see at 28×28 pixels than a detailed scene. Test your emote by uploading it and watching how it looks in actual chat — if you cannot read it or tell what it is supposed to be, simplify it.
Name your emote code something short and memorable. Codes like :pog:, :sadge:, or :copium: became popular because they are straightforward to type and straightforward to remember. Avoid codes that are too long or that look like they might conflict with other emotes people use across Twitch.
Frequently Asked Questions
Can I use someone else's art for my emote?
You can use art you commissioned or that you have permission to use, but you cannot use someone else's work without asking them first. If you use fan art or art from another artist, get written permission and credit them. Twitch does not police this, but your community will call you out if you steal art.
What happens if my emote gets reported?
If multiple viewers report your emote for breaking the rules, Twitch reviews it. If it violates the content policy, Twitch removes it and may send you a warning. You can then upload a new emote that follows the rules. Repeated violations can result in restrictions on your account.
Can I change or delete an emote after I upload it?
Yes. Go to your Creator Dashboard, find the emote in the Emotes section, and click the edit button. You can change the image, the code, or delete it entirely. Changes take effect when ready, though viewers may see the old version briefly if they have it cached in their browser.
Do I need to make emotes in a specific art style?
No. Emotes can be pixel art, hand-drawn, 3D rendered, photographic, or any style you want — as long as they follow the size, format, and content rules. Many streamers use their own art style or hire artists to match their brand.
What if the emote code I want is already taken?
Twitch will tell you the code is unavailable when you try to upload. Choose a different code. You can add numbers or underscores to make it unique — :pog2: or :pog_v2: instead of :pog:, for example.