Minecraft anticheat guide

Protecting Staff Accounts on Minecraft Servers

Lock down Minecraft staff accounts with two-factor login, personal logins, least-privilege ranks, and offboarding steps that cut off compromised admin access.

Answer: protect the accounts that can act on the server

Most server takeovers start with a staff account, not with the anticheat itself. Require two-factor authentication on every account that can ban players, edit configs, or reach the console. Give each staff member a personal login, never a shared one. Limit each login to the access its role needs, and remove access on the day someone leaves.

List every account that can act on the server

Staff access often spreads across more places than the game itself. Write down each system, who holds an account, and what that account can change. This list is the basis for every control below.

Accounts that can affect a Minecraft server
Account typeWhy it mattersMinimum control
Discord staff accountCan read alerts, post to webhook channels, or receive secrets pasted in chatTwo-factor login and role-based channel access
Minecraft or platform accountCan join as operator if it has operator rightsTwo-factor login on the account that owns the Minecraft profile
Hosting panel accountCan read files, restart the server, and open the consoleTwo-factor login and per-user panel roles
Config repository accountCan change plugin configs and deploy themTwo-factor login and reviewed merges
Database or dashboard accountCan read player records or ban historySeparate credentials and read-only access where possible

Control operator access in the game

Vanilla operator entries live in ops.json. Each entry grants a permission level. Keep the list short, and review it against your staff roster every time someone joins or leaves. The example below uses placeholders. Do not copy a real UUID into a public document.

Example ops.json entry in the vanilla format (placeholders only)
[
  {
    "uuid": "<player-uuid>",
    "name": "<staff-name>",
    "level": 2,
    "bypassesPlayerLimit": false
  }
]

Set up two-factor login and personal accounts

Enable two-factor authentication on each account in the table, starting with panel and repository access. Use a password manager so each service has a unique password. Shared logins hide who did what, and they make it hard to revoke one person without disrupting the rest of the team. Two-factor login protects the account, not the device it runs on, so keep staff devices patched and use a dedicated browser profile for panel administration.

Review sessions and console use

Review who can reach the console and who has active sessions on the hosting panel and repository. Revoke sessions you do not recognize. Treat console access as a privileged action, and limit it to the people who need to restart or troubleshoot the server.

Offboard staff the same day

Offboarding is the step most servers skip. A former moderator who still has panel access, an operator entry, or a Discord role can still act on the server. Use one checklist for every departure, and complete it before the person is told. Schedule a quarterly check that each account still belongs to an active staff member, because an unreviewed list drifts within a few months.

What we have not verified

We have not checked which hosting panels or Discord plans offer every control described here, so confirm the options with your provider. We have not tested how any anticheat handles operator bypass or staff exemptions beyond what its own documentation states. For rank-based bypass rules, use the separate permissions audit process and the anticheat's documentation.

FAQ

Is two-factor login enough to protect a staff account?

It removes the most common route, a stolen password, but it does not stop a session that is already open on an unmanaged device. Pair it with session reviews and prompt offboarding.

Can staff share a moderator login for a single event?

Avoid it. A shared login makes the log useless for accountability, and it keeps working after the event ends. Create a temporary personal account with a fixed end date instead.

Why does the ops.json file matter if the panel is locked down?

The panel protects the files, but anyone with console access can change operator state. A local operator entry also persists across restarts, so an old entry can outlast the staff member it was meant for.

What should I do first if I think a staff account was compromised?

Revoke its sessions, change its password, and remove its operator and panel access. Then review the console and activity logs for actions taken since the suspected compromise, and record each step.

Related sources and official pages

Browse all anticheat guides