Emojis & Stickers

Fetch, create, clone, and bulk-create guild emojis and stickers.

Guild emoji and sticker CRUD: fetch, clone, create, and bulk-create.

Fetch

javascript
import { Client, Events } from '@fluxerjs/core';

const client = new Client();

client.on(Events.MessageCreate, async (message) => {
  if (!message.guildId || message.content !== '!emojis') return;
  const guild = await message.resolveGuild();
  if (!guild) return;

  const emojis = await guild.fetchEmojis();
  const list = emojis.map((e) => `:${e.name}: (${e.id})`).join(', ');
  await message.reply(emojis.length ? list : 'No emojis.');
});

await client.login(process.env.FLUXER_BOT_TOKEN);
javascript
const emoji = await guild.fetchEmoji(emojiId);
await emoji.delete();

Stickers: guild.fetchStickers() / guild.fetchSticker(id). Cached in guild.emojis / guild.stickers.

Create one

Image is base64 (no data-URL prefix). Requires Manage Emojis and Stickers.

javascript
async function imageToBase64(url) {
  const res = await fetch(url);
  const buf = Buffer.from(await res.arrayBuffer());
  return buf.toString('base64');
}

const emoji = await guild.createEmoji({
  name: 'wave',
  image: await imageToBase64(imageUrl),
});

Stickers take name, image, optional description / tags:

javascript
const sticker = await guild.createSticker({
  name: 'cool',
  image: base64Image,
  description: 'A cool sticker',
});

Clone

Copy an emoji or sticker from another guild by source id:

javascript
const cloned = await guild.cloneEmoji(sourceEmojiId);
const clonedSticker = await guild.cloneSticker(sourceStickerId);

Bulk create

Returns { success, failed }, not a bare array.

javascript
const { success, failed } = await guild.createEmojisBulk([
  { name: 'ok', image: base64A },
  { name: 'no', image: base64B },
]);
console.log(success.map((e) => e.name), failed);

const stickers = await guild.createStickersBulk([
  { name: 'cool', image: base64Image, description: 'A cool sticker' },
]);

Edit and delete

javascript
await emoji.edit({ name: 'newname' });
await emoji.delete();
await sticker.edit({ name: 'renamed' });
await sticker.delete();

Quick reference

MethodPurpose
guild.fetchEmojis()All guild emojis (cached in guild.emojis)
guild.fetchEmoji(id)One emoji
guild.createEmoji({ name, image })Create one
guild.cloneEmoji(sourceId)Clone from another guild
guild.createEmojisBulk([...]){ success, failed }
guild.createSticker / cloneSticker / createStickersBulkSame pattern for stickers
Questions?Join the Fluxer community for help with the SDK.Join Fluxer