🔍 DupeDetector
DupeDetector is a small, focused ArkApi plugin that catches item duplication carried out through the tribute inventory — the obelisk, supply drop terminal, and transmitter upload store used for cluster transfers.
It does one thing and does it quietly: duplication attempts are reported to your Discord, and repeat offenders can be dealt with automatically.
What it does
- Detects duplication through the tribute/upload store, with no client mod and nothing for your players to install.
- Alerts your Discord. Every detection is posted to the webhook you configure.
- Punishes repeat offenders. Once a player has been detected enough times, DupeDetector can run a server command against them (kick, ban, whatever you choose) and optionally clear their inventory. Punishments go to their own webhook so you can route them to an admin-only channel.
- Report-only if you want it. Leave the punishment options empty and the plugin only ever tells you — it never acts on its own.
How much rope a player gets before a punishment fires is configurable, and
deliberately not a fixed number. See
Punishment.After.
ℹ️ Detection details are intentionally not published. What triggers a detection, and how many detections a given player is allowed, are not documented here — that information only helps the people you are trying to catch. If you need to understand a specific alert, ask in the Bytemart Discord.
Requirements
| Requirement | Notes |
|---|---|
| ArkApi 3.51 or newer | The plugin will not load on older API versions. |
| MySQL / MariaDB | The plugin connects on startup, so valid credentials are required. See Common Configuration. |
| A Bytemart license key | Nothing activates until the key authenticates. |
| Outbound HTTPS | Needed for licensing and for Discord webhooks. |
Installation
- Make sure you have ArkApi 3.51+ installed on your server.
- Set up a MySQL/MariaDB database — see Common Configuration. The database must already exist.
- Download
DupeDetector.zipfrom your Bytemart Dashboard. - Stop the server (run
saveworldfirst), or unload any previous version withplugins.unload DupeDetector. - Extract the archive into a
DupeDetectorfolder insideShooterGame/Binaries/Win64/ArkApi/Plugins/. - Open
config.jsonand fill in yourLicenseKey,Databasecredentials, and at leastDupeDetection.AlertWebhook— see Configuration. - Start the server and confirm there are no errors during startup.
⚠️ Set
AlertWebhookbefore you go live. It ships empty, and an empty webhook means detections are recorded but never posted anywhere.
Updating
- Manual:
plugins.unload DupeDetector, replace the files, thenplugins.load DupeDetector. - Automatic (hot-reload): rename the new
DupeDetector.dlltoDupeDetector.dll.arkapiand drop it into the plugin folder — ArkApi loads the new version and unloads the old one automatically.
DupeDetector repairs its own config on load: missing keys are added with their
defaults and your original is backed up to config.json.bak first. A type
mismatch (a string where a number belongs) aborts the load instead, with an error
naming the key.
Commands
Console and RCON access is admin access by definition, so these need no extra permission.
| Command | Channels | Description |
|---|---|---|
DupeDetector.help [page] |
Console, RCON | Paginated list of every registered command. |
DupeDetector.reload |
Console, RCON | Re-read config.json without restarting the server. |
DupeDetector.reload swaps the live config in place, so webhook and punishment
changes take effect immediately. It does not re-run the config repair pass,
so validate your JSON before reloading.
Troubleshooting
- Plugin doesn't load, error code
1114— a JSON syntax error inconfig.json. Run it through JSONLint. - "License key is missing" —
LicenseKeyis still the placeholder value. - Nothing reaches Discord — the URL must be a real Discord webhook endpoint
(
https://discord.com/api/webhooks/...; thediscordapp.com,ptb.andcanary.forms are accepted too). Anything else is dropped with a line in the log. - Anything else — set
LogToFiletotrueand reproduce; the plugin writes its own rotatingDupeDetector.lognext toconfig.json. Then ask in the Bytemart Discord.
Next steps:
- Configuration — the
DupeDetectionblock. - Common Configuration — the shared
LicenseKey,Database,LogToFile, andVerbosekeys.