Configuration
plugins/AdminControl/config.yml. Missing keys are added on start without touching your values. /ac reload
applies most changes; the table says which need a restart. Most day-to-day settings (security, retention, Discord,
LuckPerms, reports) live in the panel under Settings → Server instead.
General
| Key | Default | Meaning |
|---|---|---|
config-version |
1 |
Version of the file layout; leave it. |
language |
en |
Language of in-game and console messages: en or pl. Only the starting value: once Settings → General is saved in the panel, the panel's default language is used. |
server-name |
"" |
This server's name in a network of servers on one MySQL database (a-z, 0-9, _, -, at most 32 characters), best the same as in velocity.toml (or in the servers section of BungeeCord's config.yml). Empty: the name of the server's folder (with the start of the server id after it for a folder like container or data that every server of a host shares). Restart to change. |
Panel (web)
All web.* keys need a restart.
| Key | Default | Meaning |
|---|---|---|
web.enabled |
true |
Turn the panel off to run AdminControl without it. |
web.host |
0.0.0.0 |
Address the panel listens on. Use 127.0.0.1 behind a reverse proxy on the same machine. |
web.port |
8080 |
Port of the panel. |
web.base-path |
/ |
Path the panel is served under, e.g. /panel on a shared domain. |
web.public-url |
"" |
Public address of the panel (https://panel.example.com), used for links shown in game and in the console. |
web.hsts |
false |
When the panel is reached over https (an https public-url, or a trusted proxy that says so): browsers use only https on this host for a year. It covers every port of the host, so leave it off when something else there runs on plain http (a Dynmap or BlueMap on another port). |
Database (database)
All database.* keys need a restart. See Database.
| Key | Default | Meaning |
|---|---|---|
database.type |
sqlite |
sqlite (a file in the plugin folder) or mysql (MySQL or MariaDB; mariadb works too, in any case). A server that used MySQL never falls back to a new SQLite file when this value cannot be read: it stays without a database until config.yml is fixed. |
database.sqlite.file |
data.db |
The SQLite file name. |
database.mysql.host |
localhost |
MySQL/MariaDB host. |
database.mysql.port |
3306 |
Port. |
database.mysql.database |
admincontrol |
Database name. |
database.mysql.user |
admincontrol |
User. |
database.mysql.password |
"" |
Password. |
database.mysql.pool-size |
6 |
Connections kept open. |
database.mysql.use-ssl |
true |
Encrypt the connection; the certificate is not checked, so self-signed ones work. |
database.mysql.ssl-ca |
"" |
The database server's CA certificate (.pem, full path). When set, the certificate and the host name are checked, so nobody between this server and the database can pose as it. Recommended for a database on another machine. |
Modules (modules)
Turn whole features off. Turning console, announcements, reports or import on or off needs a restart; the
others apply with /ac reload.
| Key | Default | Meaning |
|---|---|---|
modules.stats |
true |
Dashboard statistics and history. |
modules.punishments |
true |
Punishments, templates and warning rules. |
modules.chat |
true |
Chat log, filters, chat controls. |
modules.announcements |
true |
Announcements and the rotation. |
modules.console |
true |
The console in the panel. |
modules.reports |
true |
Player reports. |
modules.import |
true |
Importing punishments from other plugins. |
Punishments (punishments)
| Key | Default | Meaning |
|---|---|---|
punishments.shortcuts |
true |
Short commands (/ban, /mute, ...). Turn off when another plugin owns them; /ac ban always works. Needs a restart. |
essentials.take-over-commands |
true |
With EssentialsX: its punishment commands (/ban, /tempban, /mute, /kick, ... also /essentials:ban, /eban) run as AdminControl's (see Integrations). false: Essentials keeps them. |
bedrock.geysermc-skins |
true |
Heads of Bedrock players (Geyser and Floodgate) from GeyserMC's API, which gets the player's Xbox user id (see Privacy). false: the default head, nothing sent. |
placeholders.sensitive |
false |
Give other plugins %admincontrol_mute_reason%, %admincontrol_punishments% and %admincontrol_open_reports% (see Integrations). Takes effect on /ac reload. |
punishments.mute-blocked-commands |
[msg, tell, w, r, me, whisper, reply, pm, m, t, emsg, etell, ewhisper, er, ereply, teammsg, tm, mail] |
Commands a muted player cannot use (without the slash; also blocked with a plugin prefix, e.g. minecraft:msg). |
Chat (chat)
| Key | Default | Meaning |
|---|---|---|
chat.retention-days |
30 |
Days the chat log keeps messages, 7–365. Only the starting value: once Settings → Retention is saved in the panel, the panel's values are used. |
chat.private-commands |
[msg, tell, w, whisper, pm, emsg, etell, ewhisper] |
Commands logged as private messages: /<command> <player> <text>. Add the aliases of your messaging plugin. |
chat.reply-commands |
[r, reply, er, ereply] |
Replies to the last private conversation partner: /<command> <text>. |
Messages
messages_en.yml and messages_pl.yml hold every in-game message in MiniMessage format
(<green>, <bold>, <white><player></white>). Edit them freely; /ac reload applies the changes. Keep the
<placeholders> a message already uses.
Panel settings
Settings → Server in the panel (needs settings.manage):
- General: server name, default language, time zone, whether private messages are logged.
- Security: idle sign-out (5–240 minutes), session limit (1–72 hours), IP whitelist, trusted proxies.
- Data retention: audit log (30–1095 days), chat (7–365), private messages (1–365), raw stats (1–30), hourly stats (30–1095).
- Player reports: cooldown between reports (10–3600 seconds), reminder of open reports on join.
- Integrations: Discord webhook and events, LuckPerms group sync. See Features.