Перейти к содержанию

🔍 DupeDetector

DupeDetector — это небольшой, узкоспециализированный плагин ArkApi, который ловит дюп предметов через инвентарь трибьюта — обелиск, терминал сброса припасов и магазин загрузки трансмиттера, используемый для переноса между серверами кластера.

Он делает одно дело и делает это без лишнего шума: попытки дюпа сообщаются в ваш Discord, а с постоянными нарушителями можно разбираться автоматически.

Что он делает

  • Обнаруживает дюп через инвентарь трибьюта/загрузки, без клиентского мода и без чего-либо, что нужно устанавливать вашим игрокам.
  • Оповещает ваш Discord. Каждое обнаружение публикуется в вебхук, который вы настраиваете.
  • Наказывает постоянных нарушителей. Как только игрок был обнаружен достаточное количество раз, DupeDetector может выполнить над ним серверную команду (кик, бан — что вы выберете) и опционально очистить его инвентарь. Наказания уходят в собственный вебхук, так что вы можете направить их в канал, доступный только администраторам.
  • Режим только отчётов, если вы этого хотите. Оставьте параметры наказания пустыми, и плагин будет только сообщать вам — он никогда не действует сам по себе.

Сколько поблажек получает игрок до срабатывания наказания — настраивается и намеренно не является фиксированным числом. См. Punishment.After.

ℹ️ Детали обнаружения намеренно не публикуются. Что именно вызывает обнаружение и сколько обнаружений допускается конкретному игроку, здесь не документировано — эта информация помогает только тем, кого вы пытаетесь поймать. Если вам нужно разобраться в конкретном оповещении, спросите в Discord Bytemart.

Требования

Требование Примечания
ArkApi 3.51 или новее Плагин не загрузится на более старых версиях API.
MySQL / MariaDB Плагин подключается при запуске, поэтому требуются корректные учётные данные. См. Общую конфигурацию.
Лицензионный ключ Bytemart Ничего не активируется, пока ключ не пройдёт аутентификацию.
Исходящий HTTPS Требуется для лицензирования и вебхуков Discord.

Установка

  1. Убедитесь, что на вашем сервере установлен ArkApi 3.51+.
  2. Настройте базу данных MySQL/MariaDB — см. Общую конфигурацию. База данных должна уже существовать.
  3. Скачайте DupeDetector.zip с вашей панели управления Bytemart.
  4. Остановите сервер (сначала выполните saveworld) или выгрузите любую предыдущую версию командой plugins.unload DupeDetector.
  5. Распакуйте архив в папку DupeDetector внутри ShooterGame/Binaries/Win64/ArkApi/Plugins/.
  6. Откройте config.json и заполните ваш LicenseKey, учётные данные Database и как минимум DupeDetection.AlertWebhook — см. Конфигурация.
  7. Запустите сервер и убедитесь, что при запуске нет ошибок.

⚠️ Настройте AlertWebhook перед запуском на боевом сервере. Он изначально пустой, и пустой вебхук означает, что обнаружения фиксируются, но никуда не публикуются.

Обновление

  • Вручную: plugins.unload DupeDetector, замените файлы, затем plugins.load DupeDetector.
  • Автоматически (горячая перезагрузка): переименуйте новый DupeDetector.dll в DupeDetector.dll.arkapi и поместите его в папку плагина — ArkApi загрузит новую версию и автоматически выгрузит старую.

DupeDetector восстанавливает свою конфигурацию при загрузке: отсутствующие ключи добавляются со значениями по умолчанию, а оригинал сначала сохраняется в config.json.bak. Несоответствие типа (строка там, где должно быть число) вместо этого прерывает загрузку с ошибкой, называющей ключ.

Команды

Доступ к консоли и RCON по определению является доступом администратора, поэтому они не требуют дополнительных прав.

Команда Каналы Описание
DupeDetector.help [page] Console, RCON Постраничный список всех зарегистрированных команд.
DupeDetector.reload Console, RCON Перечитать config.json без перезапуска сервера.

DupeDetector.reload подменяет действующую конфигурацию на лету, так что изменения вебхуков и наказаний вступают в силу немедленно. Он не запускает повторно проход восстановления конфигурации, поэтому проверяйте ваш JSON перед перезагрузкой.

Устранение неполадок

  • Плагин не загружается, код ошибки 1114 — синтаксическая ошибка JSON в config.json. Проверьте его через JSONLint.
  • «License key is missing» — LicenseKey всё ещё содержит значение-заглушку.
  • Ничего не приходит в Discord — URL должен быть настоящей конечной точкой вебхука Discord (https://discord.com/api/webhooks/...; формы discordapp.com, ptb. и canary. тоже принимаются). Всё остальное отбрасывается с записью в журнале.
  • Во всех остальных случаях — установите LogToFile в true и воспроизведите проблему; плагин пишет собственный ротируемый журнал DupeDetector.log рядом с config.json. Затем спросите в Discord Bytemart.

Дальнейшие шаги: