Skip to content

Events

Gateway events and the data shape your handle block receives.

Guilds

EventData
:guild_createGuild struct (with .channels, .members, .roles populated)
:guild_update%{old: Guild | nil, new: Guild}
:guild_delete%{id: snowflake, unavailable: boolean} or %{old: Guild | nil, new: %{id, unavailable}}
:guild_audit_log_entry_createAuditLogEntry struct
:guild_integrations_updateRaw map with "guild_id"

Channels

EventData
:channel_createChannel struct
:channel_update%{old: Channel | nil, new: Channel}
:channel_delete%{old: Channel | nil, new: Channel}
:channel_pins_updateRaw map with "channel_id", "guild_id", "last_pin_timestamp"

Threads

EventData
:thread_createChannel struct
:thread_update%{old: Channel | nil, new: Channel}
:thread_delete%{old: Channel | nil, new: Channel}
:thread_list_sync%{guild_id: str, channel_ids: list, threads: [Channel], members: list}
:thread_member_updateRaw map
:thread_members_updateRaw map

Members

EventData
:guild_member_addMember struct
:guild_member_update%{old: Member | nil, new: Member}
:guild_member_remove%{old: Member | nil, new: %{guild_id: str, user: User}}
:guild_members_chunk%{guild_id: str, members: [Member], chunk_index: int, chunk_count: int, not_found: list, nonce: str}

Roles

EventData
:guild_role_createRole struct
:guild_role_update%{old: Role | nil, new: Role}
:guild_role_delete%{old: Role | nil, new: %{guild_id: str, role_id: str}}

Emojis & Stickers

EventData
:guild_emojis_update%{old: %{guild_id, emojis: [Emoji]}, new: %{guild_id, emojis: [Emoji]}}
:guild_stickers_update%{old: %{guild_id, stickers: [Sticker]}, new: %{guild_id, stickers: [Sticker]}}

Bans

EventData
:guild_ban_add%{guild_id: str, user: User}
:guild_ban_remove%{guild_id: str, user: User}

Messages

EventData
:message_createMessage struct
:message_update%{old: Message | nil, new: Message}
:message_delete%{old: Message | nil, new: %{id: str, channel_id: str, guild_id: str}}
:message_delete_bulk%{ids: [str], channel_id: str, guild_id: str}

Reactions

EventData
:message_reaction_addReactionEvent struct
:message_reaction_removeReactionEvent struct
:message_reaction_remove_all%{channel_id: str, message_id: str, guild_id: str}
:message_reaction_remove_emojiReactionEvent struct

Polls

EventData
:message_poll_vote_addRaw map
:message_poll_vote_removeRaw map

Presence & Typing

EventData
:presence_update%{old: Presence | nil, new: Presence}
:typing_startRaw map with "channel_id", "guild_id", "user_id", "timestamp"

Voice

EventData
:voice_state_update%{old: VoiceState | nil, new: VoiceState}
:voice_server_updateRaw map with "token", "guild_id", "endpoint"
:voice_channel_effect_sendRaw map

Stage Instances

EventData
:stage_instance_createStageInstance struct
:stage_instance_updateStageInstance struct
:stage_instance_deleteStageInstance struct

Invites

EventData
:invite_createInvite struct
:invite_delete%{channel_id: str, guild_id: str, code: str}

Scheduled Events

EventData
:guild_scheduled_event_createScheduledEvent struct
:guild_scheduled_event_updateScheduledEvent struct
:guild_scheduled_event_deleteScheduledEvent struct
:guild_scheduled_event_user_addRaw map
:guild_scheduled_event_user_removeRaw map

Auto Moderation

EventData
:auto_moderation_rule_createAutoModerationRule struct
:auto_moderation_rule_updateAutoModerationRule struct
:auto_moderation_rule_deleteAutoModerationRule struct
:auto_moderation_action_executionRaw map

Entitlements

EventData
:entitlement_createEntitlement struct
:entitlement_updateEntitlement struct
:entitlement_deleteEntitlement struct

Soundboard

EventData
:guild_soundboard_sound_createRaw map
:guild_soundboard_sound_updateRaw map
:guild_soundboard_sound_deleteRaw map
:guild_soundboard_sounds_updateRaw map
:soundboard_soundsRaw map

Integrations

EventData
:integration_createRaw map
:integration_updateRaw map
:integration_deleteRaw map

Subscriptions

EventData
:subscription_createRaw map
:subscription_updateRaw map
:subscription_deleteRaw map

User

EventData
:user_update%{old: User | nil, new: User}

Webhooks

EventData
:webhooks_updateRaw map with "guild_id", "channel_id"

Commands

EventData
:application_command_permissions_updateRaw map

Connection

EventData
:readyRaw map with "user", "guilds", "session_id", "shard_id"
:resumed%{shard_id: integer}

Lingo Internal Events

EventData
:shard_reconnecting%{shard_id: integer}
:shard_disconnect%{shard_id: integer, code: integer}
:shard_error%{shard_id: integer, code: integer}
:rate_limit%{method: atom, path: string, retry_after: integer, global: boolean}