Назад к блогу
Tutorial3 мин чтения

FiveM Интеграция Discord бота: соединение сервера и чата

Правильное подключение FiveM к Discord. Синхронизация ролей, логи вебхуков, боты для белого списка и как создать или выбрать интеграцию, которая масштабируется под ваш сервер.

Agency Scripts

Основатель и ведущий разработчик Agency Scripts

Почему интеграция с Discord важна

Discord является центральным коммуникационным хабом практически для каждого сообщества FiveM, поэтому интеграция вашего Discord-сервера с игровым сервером FiveM необходима для бесперебойной работы. Интеграция Discord позволяет автоматически синхронизировать роли, чтобы игроки с белым списком могли подключаться, вести логирование игровых событий, таких как присоединения игроков, убийства и баны, в каналы Discord, а также отображать обновления статуса в реальном времени с количеством игроков и состоянием сервера. Хорошо настроенный бот Discord превращает управление сообществом из ручного процесса в автоматизированную систему, работающую круглосуточно. Помимо удобства, интеграция Discord также служит уровнем безопасности, позволяя проверять личности игроков и управлять доступом через роли Discord, а не полагаться только на игровые системы.

Настройка Discord Webhooks

Самая простая интеграция Discord , это вебхуки, которые позволяют вашему FiveM серверу отправлять сообщения в определённые каналы Discord без необходимости полноценного бота. Вы создаёте URL вебхука в настройках канала Discord и используете его в скриптах FiveM для публикации форматированных сообщений. Вебхуки идеально подходят для систем логирования, где нужно фиксировать игровые события, такие как подключения игроков, отключения, действия админов, покупки и подозрительную активность. В ваших серверных Lua скриптах можно использовать PerformHttpRequest native для отправки POST-запросов на URL вашего webhook с содержимым встроенного сообщения. Структурируйте сообщения webhook с использованием форматирования Discord embed для чистых, читаемых логов, включающих временные метки, идентификаторы игроков и цветовую кодировку уровней серьёзности, чтобы мониторинг активности сервера был простым.

Создание Discord-бота

Для более продвинутой интеграции вам понадобится полноценный Discord-бот, который может как отправлять, так и получать информацию. Discord-бот может отвечать на команды участников сообщества, искать статистику игроков, обрабатывать заявки на белый список и даже управлять функциями сервера, такими как перезапуски или управление ресурсами, напрямую из Discord. Создавайте бота с помощью discord.js для JavaScript или discord.py для Python и размещайте его либо на той же машине, что и ваш FiveM сервер, либо на отдельном VPS. Бот взаимодействует с вашим FiveM сервером через общую базу данных, REST API, который вы открываете из ресурса FiveM, или через прямые HTTP-запросы между системами. Храните токен бота в безопасности и никогда не размещайте его в публичных репозиториях или клиентском коде.

Внесение в белый список и синхронизация ролей

Белый список на основе Discord , самый распространённый метод контроля доступа для серьёзных ролевых серверов. Игроки должны состоять в вашем Discord-сервере и иметь определённую роль, прежде чем смогут подключиться к игровому серверу. Ресурсы, такие как badger_discordapi или кастомные решения, проверяют роли игрока в Discord в реальном времени и либо разрешают, либо запрещают доступ. Синхронизация ролей идёт дальше, поддерживая двунаправленную синхронизацию ролей Discord и игровых разрешений. Когда игрок повышается до сержанта полиции в игре, его роль в Discord обновляется автоматически. Когда администратор назначает роль из белого списка в Discord, игрок получает доступ в игре при следующем подключении. Эта интеграция значительно снижает административную нагрузку и обеспечивает согласованность между структурой вашего сообщества Discord и иерархией в игре.

Лучшие практики логирования

Эффективное логирование через Discord является одним из самых ценных инструментов для администрирования и модерации сервера. Создайте отдельные каналы Discord для разных категорий логов, таких как подключения игроков, транзакции экономики, действия администраторов, логи боёв и жалобы. Каждая запись лога должна включать серверный ID игрока, Discord ID, имя персонажа и отметку времени, чтобы вы могли быстро сверять события во время расследований. Реализуйте ограничение частоты вызовов webhook, чтобы избежать превышения лимитов API Discord, что может привести к временной деактивации ваших webhook. Для событий с высокой частотой, таких как спавн транспорта или действия с инвентарём, рассмотрите возможность объединения нескольких событий в одно сообщение webhook, отправляемое с интервалами, вместо отправки webhook на каждое отдельное действие. Храните подробные логи в базе данных как основной источник, а Discord используйте как удобный интерфейс для мониторинга.

Готовы начать?

Возьмите скрипты в нашем магазине или заходите в Discord за поддержкой, обновлениями и анонсами.