Configuración
DupeDetector se configura mediante un único config.json en la carpeta del
plugin:
Un segundo archivo, config_commented.json, se incluye junto a él. Es la
misma configuración con comentarios // — léelo, pero no lo renombres para
sustituir a config.json (los comentarios no son JSON válido).
Las claves LicenseKey, Verbose, LogToFile y Database son compartidas
por todos los plugins de Bytemart y están documentadas en la página de
Configuración común. Esta página
cubre solo el bloque DupeDetection, que es exclusivo de DupeDetector.
💡 Valida antes de empezar. Valida siempre tu JSON después de editarlo (por ejemplo, con JSONLint). Un código de error de carga
1114significa un error de sintaxis JSON.
DupeDetection
| Campo | Tipo | Predeterminado | Descripción |
|---|---|---|---|
AlertWebhook |
string | "" |
Webhook de Discord para las detecciones — un mensaje por detección, nombrando al jugador implicado. Vacío significa que las detecciones se siguen contando, pero no se publica nada. |
Punishment
Qué sucede una vez que un jugador ha acumulado suficientes detecciones. Todos
los campos son opcionales: deja Command vacío y ClearInventory en false, y
DupeDetector se vuelve solo informativo.
| Campo | Tipo | Predeterminado | Descripción |
|---|---|---|---|
PunishmentWebhook |
string | "" |
Webhook de Discord para los castigos. Se mantiene separado de AlertWebhook para que puedas dirigir los castigos (mucho más raros) a un canal solo para administradores. Vacío significa que no se publica nada. |
Command |
string | "" |
Un comando de consola del servidor para ejecutar contra el infractor cuando se alcanza el umbral — por ejemplo banplayer {steamid} o kickplayer {steamid}. Vacío significa que no se ejecuta ningún comando. |
ClearInventory |
boolean | false |
Vacía el inventario del infractor como parte del castigo. |
After.Min |
number | 1 |
Límite inferior del umbral de detección. |
After.Max |
number | 1 |
Límite superior del umbral de detección. |
El umbral After
Min y Max acotan cuántas detecciones puede acumular un jugador antes de
que se dispare el castigo. Darles valores diferentes deja el umbral exacto
impredecible, que es la configuración recomendada — un número fijo y conocido
es algo que un infractor puede sortear.
"Min": 1, "Max": 1— castiga en la primera detección (el valor predeterminado)."Min": 2, "Max": 5— castiga en algún punto de ese rango.
Los valores se comprueban dentro de un rango al cargar, así que no puedes configurar accidentalmente un umbral que nunca se dispare.
💡 Empieza en modo solo informativo. Deja
Commandvacío yClearInventoryen false durante los primeros días, observa lo que llega aAlertWebhook, y solo entonces decide cómo debería ser un castigo.
Webhooks
Ambos campos de webhook deben ser URLs de webhook de Discord. Se aceptan estos prefijos:
Cualquier otra cosa — incluyendo una cadena vacía — se descarta, con una línea en el registro del plugin que lo indica. Un webhook vacío nunca es un error; solo significa "no enviar nada".
🔒 Una URL de webhook es una credencial. Cualquiera que la tenga puede publicar en tu canal. Mantén
config.jsonfuera de repositorios públicos y capturas de pantalla.
Ejemplo completo
Próximos pasos:
- Descripción general — qué cubre el plugin, la instalación y los comandos.
- Configuración común —
LicenseKey,Database,LogToFile,Verbose.