ReportSystem
Players report trouble, staff work one clean queue.
Somebody breaks a rule, a player types /report, and the case is sitting in your staff queue with an id on it before the argument in chat is even over. That is the whole job of ReportSystem. It turns loose chat complaints into cases your team can list, claim, and close, in game, on Discord, or straight from the console.
Got something that is not about one player? /ticket opens a general ticket in the same queue. Every case carries a status of open, claimed, or closed, and when reports start piling on one player fast, the plugin raises its hand and tells you with a loud alert.
What the desk does
- Player reports:
/report <name> <what happened>files a report with its own id and an open status. - General tickets:
/ticket <message>opens a ticket for anything that is not about one player. - One staff queue: every report and ticket gets an id and a status of open, claimed, or closed, so nothing slips through.
- Console and RCON tools: staff list, view, claim, and close any case from the console or RCON.
- In game staff list:
/reportsshows open cases in game for staff who hold the node. - Discord posts: turn on a webhook and every report and ticket posts a clean embed to your staff channel.
- Loud escalation alert: when the same player gets many reports fast, ReportSystem fires an alert on the alert webhook.
- Map spot and tribe: each report can save the target and reporter coords, plus the map and tribe, so staff find the trouble fast.
- Reporter feedback: tell a player their report was sent, and ping them when staff close it.
- Offline targets welcome: report someone who logged off by name and the case still files.
- Spam guard: a per player cooldown and a shortest reason length keep the queue clean.
- Auto cleanup: closed reports get pruned after a set number of days.
For your players
Every command name is set in config.json, so rename away or switch one off.
| Command | What It Does |
|---|---|
/report <name> <reason> |
Files a report on a player. |
/ticket <message> |
Opens a general ticket for staff. |
/myreports |
Shows a player their own cases and the status of each. |
/reports |
Staff only. Lists the open cases in game. Needs the staff node. |
Staff tools
Your team works the queue from the console or RCON with these:
| Command | What It Does | Where |
|---|---|---|
ReportSystem.Reload |
Reloads config.json without a restart. | Both |
ReportSystem.List |
Lists the open cases in the queue. | Both |
ReportSystem.View <id> |
Shows the full detail of one case. | Both |
ReportSystem.Claim <id> |
Marks a case as claimed by you. | Both |
ReportSystem.Close <id> [note] |
Closes a case with an optional note. | Both |
ReportSystem.TestDiscord |
Sends a test post to your webhook. | Console |
There is one permission node, and it only covers the in game list:
| Node | What It Unlocks |
|---|---|
ReportSystem.Staff |
The in game /reports list for staff. |
If Permissions is turned off in config, or Permissions.dll is not installed, the in game /reports list is closed to everyone and staff work the queue from the console or RCON, which are already admin only. So ReportSystem fails closed on the in game list and stays safe.
Tuning
Every setting has a plain note next to it in our docs. If you would rather click than hand edit JSON, our configuration editor does the typing for you.
Getting it installed
You need:
- AsaApi v2.01 or newer
- A Windows ARK: Survival Ascended dedicated server
- Permissions (optional, works without it, only gates the in game staff list)
- Discord is optional. ReportSystem runs fine with posts turned off.
Then:
- Unzip the download so you get a folder named
ReportSystem. - Place that
ReportSystemfolder inArkApi/Plugins/. AsaApi wants the folder to carry the same name as the DLL, so do not rename it. - Open
config.jsonand set your command names, staff node, and Discord webhook if you want posts. - Relaunch the server with
AsaApiLoader.exe. - Watch
ArkApi.logfor the lineLoaded plugin ReportSystem.
Questions owners ask
Can players report someone who already logged off? Yes. The reporter types the name, the case files with that name, and the reporter is told the target was offline. Staff still get the full report, so nobody escapes a report by logging out fast.
How do I keep the queue from filling with junk?
Two settings do that work. CooldownSeconds makes a player wait between reports, 120 out of the box, so one every two minutes. MinReasonLength throws out empty or one letter reasons. Closed cases also get pruned after KeepClosedDays days, so old clutter cleans itself up.
What happens when one player gets a pile of reports at once?
That is the alarm bell built into ReportSystem. When EscalateAtReports open reports land on the same player inside EscalateWindowMinutes, an @here alert goes to your alert webhook. Default is three reports inside thirty minutes. You catch the real problem player without reading every single case.
Do I need Discord or Permissions for this to work?
No to both. Discord posts are off until you add a webhook, and everything still runs in game without one. Permissions only guards the in game /reports list. Without it, that list stays shut and staff use the console or RCON, which are admin only anyway.
Where do the plugin files go?
Unzip the download from nordbots.cc, keep the folder named ReportSystem, and place it in ArkApi/Plugins/. Set up config.json, restart with AsaApiLoader.exe, and look for the loaded line in ArkApi.log. There is no hot reload file in the zip, so a restart is how it comes alive the first time.
Can players see their own reports?
Yes. /myreports shows a player their own cases and where each one stands. They never see anyone else's cases, but they do see that theirs got read.
Need help?
Stuck on a step or something looks off? Come find me in the Discord and I will walk you through it: https://discord.gg/8GGaEzWk9p
ReportSystem v0.0.1
All versions
- v0.0.2Jul 22, 2026
- ReportSystem-v0.0.2.zip
- v0.0.1Jul 21, 2026
- ReportSystem-v0.0.1.zip