Uploading your own custom emotes is a premium feature. The emote picker shows them only in your own stream chat and multistreams you are part of, but anyone who knows the full shortcode can use your emotes anywhere on the site.
Go to Chat & Emoticons and press Upload. You can have up to 200 emotes, each up to 200 by 200 pixels and up to 2MB. The panel shows how many you have used.
Pick the size it renders at: 200, 100, 50 or 16 pixels, 200 by default. Piczel never upscales your uploads, but we will downscale them if necessary and convert to AVIF. To avoid this, upload an emote at the size you want in AVIF format.
Give each one a name made of letters, numbers and dashes. It cannot end with a
dash. The shortcode people type is your username plus the name, like
:yourname-wave:, the same way :wave: works for ordinary emoji.
Mark an emote NSFW if it is adult. Viewers with their content visibility set to SFW will only see the text.