Repository navigation
Admin Guide
A practical guide for server owners and junior moderators: from installation and configuration to debugging and troubleshooting.
This material is for administrators who want to:
- quickly launch PunisherX,
- safely assign permissions to moderators,
- efficiently use commands and
/punishtemplates, - know what to check when “something doesn’t work”.
If you are a beginner, read section by section.
If you are advanced, jump to Debug and Known issues.
- Paper/Folia (latest builds recommended),
- Java 21+,
- access to the
plugins/folder.
- Download the latest PunisherX release.
- Upload the
.jarfile toplugins/. - Start the server and wait until the plugin generates files.
- Configure
plugins/PunisherX/config.yml. - Restart the server.
- Join as admin and verify:
/punisherx version/punisherx reload
- Open
config.ymland setlanguage: en(or another available language). - In the lang folder, you will find language files (e.g.,
messages_en.yml). - Edit them to match your needs.
- Keep message style consistent (short and without caps lock).
For a small server, SQLite/H2 is enough.
For a network or heavier traffic, move to MySQL/MariaDB/PostgreSQL.
Check our proxy add-on PunisherX-Proxy-Bridge if you run a network and want synchronized bans across servers.
Do not give * to every moderator. Split roles! Example:
-
JuniorMod:
warn,mute,check,history -
Mod: +
kick,jail,unjail - Admin: full operational access
- Owner/TechAdmin: migrations, import/export, critical actions
This lowers the risk of accidental mass punishments.
- Check player history:
/check <name> all/history <name>
- Choose an adequate punishment:
- warning (
/warn) for minor violations, - temporary mute (
/mute) for spam/profanity, - ban (
/ban) for severe and repeated violations.
- warning (
- Use a clear reason (specific rule point).
- After an appeal: verify and then
/unmute//unbanif justified.
/warn <player> (time) <reason>/mute <player> (time) <reason>/jail <player> (time) <reason>/ban <player> (time) <reason>-
/unwarn,/unmute,/unjail,/unban -
/check,/history,/banlist /change-reason <id> <new_reason>-
/clearall <player>(careful, this is a bulk operation)
Time format: Xs, Xm, Xh, Xd (seconds/minutes/hours/days).
Templates provide consistency and speed. They help junior moderators avoid “inventing” punishments manually each time.
- Review the examples in
punish-templates.yml. - Edit them to match your needs, save them on the server, and restart the server.
- Test them in practice with
/punish <player> <template_name>.
- One template = one specific violation type.
- Keep names short and clear (e.g.,
spam_1,cheats_perm). - Reason should always map to your rules (e.g., “Rules 3.2 – spam”).
- Separate escalation levels (1h → 1d → 7d → perm).
- First offense:
punish: warn - Second offense:
punish: mutetime: 1h - Third offense:
punish: mutetime: 1d - Fourth offense:
punish: bantime: 7d
- With predefined punishment templates, you can quickly apply punishments and their escalation level:
/punish <player> <template_name> <escalation_level>.
The biggest value of templates: consistent punishment policy across moderator shifts.
PunisherX offers a GUI that speeds up daily moderation — effectively /punish, but graphical:
- player selection,
- punishment type selection,
- time and reason selection,
- quick jump to history.

If your staff is young/inexperienced, GUI + predefined templates is the best combination (fewer mistakes, fewer typos).
When commands do not work correctly:
-
Plugin version and status
/punisherx version- check startup logs.
-
Permissions
- does the player/mod have the correct permission nodes,
- is there a conflict with your permission manager.
-
Configuration
- check whether
config.ymland language files have syntax errors, - after changes use
/punisherx reload(or preferably restart the server).
- check whether
-
Database
- verify credentials,
- verify database availability and connection stability.
-
Integrations
- PlaceholderAPI, webhooks, proxy bridge — test separately, not all at once.
- check if another plugin conflicts (e.g., another punishment system).
-
Cache and diagnostics
- use
/prx diagwhen you need a quick test and support-ready data.
- use
Rule of thumb: verify version + permissions + database first, then hunt “exotic bugs”.
Most often missing permissions or an alias conflict with another plugin.
Fix: check permission nodes and alias list in config.yml.
Usually a database or bridge problem.
Fix: run a DB connection test and inspect bridge logs.
Invalid MiniMessage/Legacy syntax in language files.
Fix: rollback recent edits and re-edit section by section.
No operational standard.
Fix: implement /punish templates, an escalation table, and a short SOP for staff.
This is a simple standard operating procedure for moderators.
- Always start with
/checkand/history. - Never punish “from memory”; use facts.
- Use templates instead of free-typing reasons.
- Every severe punishment must be justified by the rules.
- If in doubt, escalate to Admin instead of guessing.
This is the difference between “chaotic moderation” and a professional team.
SyntaxDevTeam is open to feedback, questions, and issue reports.
- Community Discord: https://discord.gg/Zk6mxv7eMh
- Repository: https://github.com/SyntaxDevTeam/PunisherX
- Issue reports: GitHub Issues (preferably with logs and server/plugin versions)
- PunisherX version,
- Paper/Folia version,
- Java version,
- log excerpt,
- reproduction steps.
If you want professional moderation, “having a good plugin” is not enough.
You need: good configuration + sensible permissions + punishment policy + a debugging procedure.
PunisherX gives you the tools. Moderation quality depends on the standard you enforce in your team. Invest time in moderator training and clear rules, and the results will show immediately. Good luck!