🔍 DupeDetector
DupeDetector — это небольшой, узкоспециализированный плагин ArkApi, который ловит дюп предметов через инвентарь трибьюта — обелиск, терминал сброса припасов и магазин загрузки трансмиттера, используемый для переноса между серверами кластера.
Он делает одно дело и делает это без лишнего шума: попытки дюпа сообщаются в ваш Discord, а с постоянными нарушителями можно разбираться автоматически.
Что он делает
- Обнаруживает дюп через инвентарь трибьюта/загрузки, без клиентского мода и без чего-либо, что нужно устанавливать вашим игрокам.
- Оповещает ваш Discord. Каждое обнаружение публикуется в вебхук, который вы настраиваете.
- Наказывает постоянных нарушителей. Как только игрок был обнаружен достаточное количество раз, DupeDetector может выполнить над ним серверную команду (кик, бан — что вы выберете) и опционально очистить его инвентарь. Наказания уходят в собственный вебхук, так что вы можете направить их в канал, доступный только администраторам.
- Режим только отчётов, если вы этого хотите. Оставьте параметры наказания пустыми, и плагин будет только сообщать вам — он никогда не действует сам по себе.
Сколько поблажек получает игрок до срабатывания наказания — настраивается и
намеренно не является фиксированным числом. См.
Punishment.After.
ℹ️ Детали обнаружения намеренно не публикуются. Что именно вызывает обнаружение и сколько обнаружений допускается конкретному игроку, здесь не документировано — эта информация помогает только тем, кого вы пытаетесь поймать. Если вам нужно разобраться в конкретном оповещении, спросите в Discord Bytemart.
Требования
| Требование | Примечания |
|---|---|
| ArkApi 3.51 или новее | Плагин не загрузится на более старых версиях API. |
| MySQL / MariaDB | Плагин подключается при запуске, поэтому требуются корректные учётные данные. См. Общую конфигурацию. |
| Лицензионный ключ Bytemart | Ничего не активируется, пока ключ не пройдёт аутентификацию. |
| Исходящий HTTPS | Требуется для лицензирования и вебхуков Discord. |
Установка
- Убедитесь, что на вашем сервере установлен ArkApi 3.51+.
- Настройте базу данных MySQL/MariaDB — см. Общую конфигурацию. База данных должна уже существовать.
- Скачайте
DupeDetector.zipс вашей панели управления Bytemart. - Остановите сервер (сначала выполните
saveworld) или выгрузите любую предыдущую версию командойplugins.unload DupeDetector. - Распакуйте архив в папку
DupeDetectorвнутриShooterGame/Binaries/Win64/ArkApi/Plugins/. - Откройте
config.jsonи заполните вашLicenseKey, учётные данныеDatabaseи как минимумDupeDetection.AlertWebhook— см. Конфигурация. - Запустите сервер и убедитесь, что при запуске нет ошибок.
⚠️ Настройте
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.
Дальнейшие шаги:
- Конфигурация — блок
DupeDetection. - Общая конфигурация — общие ключи
LicenseKey,Database,LogToFileиVerbose.