События Gateway
Dispatch-событие приходит с опкодом 0, полями t (имя события) и d (payload). Каждое событие также инкрементирует s — номер в сессии.
{ "op": 0, "s": 42, "t": "MESSAGE_CREATE", "d": { ... } }Отписаться от категорий событий, которые боту не нужны, можно через ignored_events в IDENTIFY — передайте туда массив имён событий.
Категории
Заголовок раздела «Категории»События можно сгруппировать по префиксу:
| Префикс | Категория |
|---|---|
READY, RESUMED, SESSIONS_REPLACE | Жизненный цикл сессии |
GUILD_* | Гильдии, роли, участники, баны, эмоджи, стикеры |
CHANNEL_* | Каналы и permission overwrites |
MESSAGE_* | Сообщения, реакции, пины |
PRESENCE_*, TYPING_*, USER_* | Активность и профили пользователей |
VOICE_*, CALL_* | Голос и звонки |
INVITE_*, WEBHOOKS_* | Интеграции |
RELATIONSHIP_* | Дружбы и блокировки |
Ключевые события
Заголовок раздела «Ключевые события»Ниже — подробные описания событий, с которыми чаще всего работают боты.
Отправляется после успешного IDENTIFY. Содержит информацию о текущем пользователе и первичный снимок гильдий.
{ "v": 1, "user": { "id": "1496956937664585746", "username": "my_bot", "global_name": null, "bot": true, "flags": 0 }, "session_id": "a1b2c3d4e5f6", "resume_gateway_url": "wss://gateway.floodilka.com", "guilds": [ { "id": "142...", "unavailable": true } ], "user_settings": {}}Гильдии помечены unavailable: true — реальные данные придут следом в GUILD_CREATE.
RESUMED
Заголовок раздела «RESUMED»Отправляется в ответ на успешный RESUME. d пустой. После этого события клиент догоняется пропущенными событиями — они приходят до RESUMED.
MESSAGE_CREATE
Заголовок раздела «MESSAGE_CREATE»Новое сообщение в канале, на который у клиента есть READ_MESSAGE_HISTORY.
{ "id": "1465760123456789", "channel_id": "1465759683653402624", "guild_id": "1424883034267582464", "author": { "id": "974...", "username": "puncher", "global_name": "Максим", "avatar": "abcd1234", "bot": false }, "member": { "roles": ["1424..."], "joined_at": "2026-04-01T12:00:00.000Z", "nick": null }, "content": "привет всем", "timestamp": "2026-04-23T19:40:59.000Z", "edited_timestamp": null, "attachments": [], "embeds": [], "mentions": [], "mention_roles": [], "mention_everyone": false, "pinned": false, "type": 0}Поле member присутствует только для сообщений в гильдиях (не в DM).
MESSAGE_UPDATE
Заголовок раздела «MESSAGE_UPDATE»Изменение сообщения. Payload — объект Message с обновлёнными полями. Поле edited_timestamp больше не null.
MESSAGE_DELETE
Заголовок раздела «MESSAGE_DELETE»{ "id": "1465...", "channel_id": "1465...", "guild_id": "1424..." }MESSAGE_DELETE_BULK
Заголовок раздела «MESSAGE_DELETE_BULK»Массовое удаление (обычно через модерацию):
{ "ids": ["1465...", "1465..."], "channel_id": "1465...", "guild_id": "1424..."}MESSAGE_REACTION_ADD
Заголовок раздела «MESSAGE_REACTION_ADD»{ "user_id": "974...", "channel_id": "1465...", "guild_id": "1424...", "message_id": "1465...", "member": { ... }, "emoji": { "id": null, "name": "👍" }}emoji.id === null — unicode-эмоджи, name содержит символ. emoji.id !== null — кастомный эмоджи, name — имя, id — snowflake.
MESSAGE_REACTION_REMOVE / REMOVE_EMOJI / REMOVE_ALL
Заголовок раздела «MESSAGE_REACTION_REMOVE / REMOVE_EMOJI / REMOVE_ALL»Аналогично, но описывает удаление. REMOVE_ALL — очищены все реакции на сообщении.
GUILD_CREATE
Заголовок раздела «GUILD_CREATE»Полные данные гильдии — приходит после READY (для каждой гильдии из READY.guilds), а также когда бота добавляют в новую гильдию.
{ "id": "1424883034267582464", "name": "Test server", "icon": null, "owner_id": "974...", "roles": [ ... ], "emojis": [ ... ], "channels": [ ... ], "members": [ ... ], "voice_states": [ ... ], "presences": [ ... ], "member_count": 3, "features": [], "system_channel_id": "..."}GUILD_UPDATE / GUILD_DELETE
Заголовок раздела «GUILD_UPDATE / GUILD_DELETE»GUILD_UPDATE — частичное изменение гильдии. GUILD_DELETE — бот был удалён или гильдия стала недоступна: {"id": "...", "unavailable": true}.
GUILD_MEMBER_ADD
Заголовок раздела «GUILD_MEMBER_ADD»Новый участник присоединился. Payload — объект Member плюс guild_id:
{ "guild_id": "1424...", "user": { "id": "...", "username": "...", ... }, "roles": [], "joined_at": "2026-04-23T20:00:00.000Z", "nick": null}GUILD_MEMBER_REMOVE
Заголовок раздела «GUILD_MEMBER_REMOVE»{ "guild_id": "1424...", "user": { "id": "...", "username": "...", ... }}GUILD_MEMBER_UPDATE
Заголовок раздела «GUILD_MEMBER_UPDATE»Изменение ролей/ника участника.
CHANNEL_CREATE / CHANNEL_UPDATE / CHANNEL_DELETE
Заголовок раздела «CHANNEL_CREATE / CHANNEL_UPDATE / CHANNEL_DELETE»Изменения в структуре каналов гильдии. Payload — объект Channel.
PRESENCE_UPDATE
Заголовок раздела «PRESENCE_UPDATE»Изменение статуса и активностей участника:
{ "user": { "id": "..." }, "guild_id": "1424...", "status": "online", "activities": [ { "name": "Minecraft", "type": 0, "created_at": 1714000000 } ], "client_status": { "desktop": "online" }}Значения status: online, idle, dnd, offline, invisible.
TYPING_START
Заголовок раздела «TYPING_START»Пользователь начал печатать. Через ~10 секунд событие не повторяется — учитывайте таймаут клиентом.
{ "channel_id": "1465...", "guild_id": "1424...", "user_id": "974...", "member": { ... }, "timestamp": 1714000000}VOICE_STATE_UPDATE
Заголовок раздела «VOICE_STATE_UPDATE»Кто-то присоединился, вышел или поменял состояние в голосовом канале:
{ "guild_id": "1424...", "channel_id": "1465...", "user_id": "974...", "member": { ... }, "session_id": "a1b2c3", "deaf": false, "mute": false, "self_deaf": false, "self_mute": false, "self_video": false, "suppress": false}Когда channel_id: null — пользователь покинул голос.
Все события, которые получает бот
Заголовок раздела «Все события, которые получает бот»READY— после IDENTIFYRESUMED— после успешного RESUME
Гильдия
Заголовок раздела «Гильдия»GUILD_CREATE— полная гильдия после READY и при добавлении ботаGUILD_UPDATE— изменены настройки гильдииGUILD_DELETE— бот удалён или гильдия недоступнаGUILD_BAN_ADD/GUILD_BAN_REMOVE— бан или снятие банаGUILD_EMOJIS_UPDATE/GUILD_STICKERS_UPDATE— обновление эмоджи/стикеровGUILD_MEMBER_ADD/GUILD_MEMBER_UPDATE/GUILD_MEMBER_REMOVEGUILD_MEMBER_LIST_UPDATE— частичное обновление списка участниковGUILD_MEMBERS_CHUNK— ответ наREQUEST_GUILD_MEMBERSGUILD_ROLE_CREATE/GUILD_ROLE_UPDATE/GUILD_ROLE_UPDATE_BULK/GUILD_ROLE_DELETE
CHANNEL_CREATE/CHANNEL_UPDATE/CHANNEL_UPDATE_BULK/CHANNEL_DELETECHANNEL_PINS_UPDATE— изменён список закреплённых сообщений канала
Сообщения
Заголовок раздела «Сообщения»MESSAGE_CREATE/MESSAGE_UPDATE/MESSAGE_DELETE/MESSAGE_DELETE_BULKMESSAGE_REACTION_ADD/MESSAGE_REACTION_REMOVEMESSAGE_REACTION_REMOVE_ALL/MESSAGE_REACTION_REMOVE_EMOJI
Активность
Заголовок раздела «Активность»PRESENCE_UPDATE— изменение статуса / активностей участникаTYPING_START— начало печатания
VOICE_STATE_UPDATE— join/leave/mute в голосовом каналеVOICE_SERVER_UPDATE— выдача LiveKit-endpoint’а и токена (для голосовых ботов)
Интеграции
Заголовок раздела «Интеграции»INVITE_CREATE/INVITE_DELETE— создание/удаление инвайт-кодаWEBHOOKS_UPDATE— изменены вебхуки канала
Собственный профиль
Заголовок раздела «Собственный профиль»USER_UPDATE— изменились публичные поля бот-пользователя (аватар, имя, bio)
Что дальше
Заголовок раздела «Что дальше»- Жизненный цикл соединения — как получить READY и начать обрабатывать события
- Опкоды — протокол нижнего уровня
- Коды ошибок — REST-ошибки