Skip to main content

Expression Resource

Expressions include custom emojis and stickers that enhance communication in Fluxer.

Custom Emoji

Custom emojis are user-uploaded images that can be used in messages within a guild.

Guild Emoji Object

id
Snowflake
required
Unique emoji identifier
guild_id
Snowflake
required
Guild where the emoji exists
name
string
required
Emoji name (2-32 characters, alphanumeric + underscores)
creator_id
Snowflake
required
User who created the emoji
user
User object
User object of the creator
animated
boolean
default:"false"
Whether the emoji is animated (GIF)
url
string
required
CDN URL for the emoji image
version
integer
required
Version for optimistic concurrency control

Example Emoji

{
  "id": "888999000111222333",
  "guild_id": "987654321098765432",
  "name": "fluxer_love",
  "creator_id": "123456789012345678",
  "user": {
    "id": "123456789012345678",
    "username": "creator",
    "discriminator": 1234
  },
  "animated": false,
  "url": "https://cdn.fluxer.chat/emojis/888999000111222333.png",
  "version": 1
}

Custom Stickers

Stickers are larger images that can be sent as standalone messages.

Guild Sticker Object

id
Snowflake
required
Unique sticker identifier
guild_id
Snowflake
required
Guild where the sticker exists
name
string
required
Sticker name (2-30 characters)
description
string | null
Sticker description (max 100 characters)
tags
array of strings
Search tags for the sticker (max 20)
animated
boolean
required
Whether the sticker is animated (APNG or GIF)
creator_id
Snowflake
required
User who created the sticker
user
User object
User object of the creator
format_type
integer
required
Sticker format: 1 (PNG), 2 (APNG), 3 (LOTTIE), 4 (GIF)
url
string
required
CDN URL for the sticker
version
integer
required
Version for optimistic concurrency control

Example Sticker

{
  "id": "999000111222333444",
  "guild_id": "987654321098765432",
  "name": "happy_dance",
  "description": "Dancing happily",
  "tags": ["happy", "dance", "celebration"],
  "animated": true,
  "creator_id": "123456789012345678",
  "user": {
    "id": "123456789012345678",
    "username": "creator"
  },
  "format_type": 2,
  "url": "https://cdn.fluxer.chat/stickers/999000111222333444.png",
  "version": 1
}

Sticker Format Types

Expression Packs

Expression packs are collections of emojis or stickers that can be shared and installed.

Expression Pack Object

id
Snowflake
required
Unique pack identifier
type
integer
required
Pack type: 1 (emoji), 2 (sticker)
name
string
required
Pack name (1-50 characters)
description
string | null
Pack description (max 200 characters)
creator_id
Snowflake
required
User who created the pack
emoji_ids
array of Snowflakes
Emoji IDs in the pack (for emoji packs)
sticker_ids
array of Snowflakes
Sticker IDs in the pack (for sticker packs)
icon_hash
string | null
Hash of the pack’s icon
banner_hash
string | null
Hash of the pack’s banner
tags
array of strings
Search tags for discovery
downloads
integer
default:"0"
Number of times the pack was installed

Emoji/Sticker Limits

Guilds have limits on custom expressions:

Base Limits (Free Guilds)

  • Emojis: 50 slots
  • Stickers: 5 slots
  • Max Size: 256KB per emoji, 512KB per sticker

Premium Guild Limits

  • Emojis: 75 slots (with premium owner)
  • Stickers: 8 slots (with premium owner)
  • Max Size: 512KB per emoji, 1MB per sticker

Unlimited Features

Guilds with UNLIMITED_EMOJI or UNLIMITED_STICKERS features:
  • No slot limits
  • Same file size restrictions apply

Global Expressions

Premium users can use custom emojis and stickers from any guild:
  • Requires premium subscription
  • Can use emojis from guilds they’re in
  • Works in DMs and other guilds
  • Premium-only feature

Expression Permissions

Required Permissions

Emoji Usage in Messages

Emojis in message content use the format:
<:emoji_name:emoji_id>
For animated emojis:
<a:emoji_name:emoji_id>
Example:
I love Fluxer <:fluxer_love:888999000111222333>!

Sticker Items

When stickers are sent in messages, they’re represented as sticker items:
id
Snowflake
required
Sticker ID
name
string
required
Sticker name
format_type
integer
required
Sticker format

Endpoints

Get Guild Emojis

GET /api/v1/guilds/{guild_id}/emojis
Returns all emojis in the guild.

Get Guild Emoji

GET /api/v1/guilds/{guild_id}/emojis/{emoji_id}
Returns a specific emoji.

Create Guild Emoji

POST /api/v1/guilds/{guild_id}/emojis
Create a custom emoji. Requires MANAGE_EXPRESSIONS or CREATE_EXPRESSIONS permission.
name
string
required
Emoji name (2-32 characters, alphanumeric + underscores)
image
string
required
Base64 encoded image (PNG, JPEG, or GIF)

Modify Guild Emoji

PATCH /api/v1/guilds/{guild_id}/emojis/{emoji_id}
Update an emoji. Requires MANAGE_EXPRESSIONS permission.
name
string
New emoji name

Delete Guild Emoji

DELETE /api/v1/guilds/{guild_id}/emojis/{emoji_id}
Delete an emoji. Requires MANAGE_EXPRESSIONS permission.

Get Guild Stickers

GET /api/v1/guilds/{guild_id}/stickers
Returns all stickers in the guild.

Get Guild Sticker

GET /api/v1/guilds/{guild_id}/stickers/{sticker_id}
Returns a specific sticker.

Create Guild Sticker

POST /api/v1/guilds/{guild_id}/stickers
Create a custom sticker. Requires MANAGE_EXPRESSIONS or CREATE_EXPRESSIONS permission.
name
string
required
Sticker name (2-30 characters)
description
string
Sticker description (max 100 characters)
tags
string
required
Comma-separated tags for discovery
file
file
required
Sticker file (PNG, APNG, GIF, or Lottie JSON)

Modify Guild Sticker

PATCH /api/v1/guilds/{guild_id}/stickers/{sticker_id}
Update a sticker. Requires MANAGE_EXPRESSIONS permission.
name
string
New sticker name
description
string | null
New description
tags
string
New comma-separated tags

Delete Guild Sticker

DELETE /api/v1/guilds/{guild_id}/stickers/{sticker_id}
Delete a sticker. Requires MANAGE_EXPRESSIONS permission.

Get Sticker Packs

GET /api/v1/sticker-packs
Returns available sticker packs.
type
integer
Filter by type: 1 (emoji), 2 (sticker)
limit
integer
default:"20"
Number of packs to return (1-100)

Get Sticker Pack

GET /api/v1/sticker-packs/{pack_id}
Returns details about a specific pack.

Install Expression Pack

POST /api/v1/guilds/{guild_id}/expression-packs/{pack_id}
Install an expression pack to a guild. Requires MANAGE_EXPRESSIONS permission.

Image Requirements

Emojis

  • Format: PNG, JPEG, or GIF
  • Size: 256KB max (512KB for premium guilds)
  • Dimensions: Recommended 128x128px, max 256x256px
  • Aspect Ratio: 1:1 (square)
  • Animated: GIF format, max 60 frames

Stickers

  • Format: PNG, APNG, GIF, or Lottie JSON
  • Size: 512KB max (1MB for premium guilds)
  • Dimensions: Recommended 320x320px, max 1024x1024px
  • Aspect Ratio: Any, but square recommended
  • Animated: APNG or GIF, max 120 frames
  • Lottie: Max 500KB JSON file

Best Practices

  1. Clear names - Use descriptive, searchable names
  2. Appropriate tags - Help users find stickers
  3. Optimize files - Compress images to reduce size
  4. Consistent style - Match your guild’s theme
  5. Test animations - Ensure smooth playback
  6. Respect limits - Don’t waste slots on duplicate expressions
  7. Credit artists - Give attribution in descriptions

Build docs developers (and LLMs) love