The files

FileHoldsFields in each entry
whitelist.jsonPlayers allowed in when the whitelist is onuuid, name
ops.jsonOperatorsuuid, name, level, bypassesPlayerLimit
banned-players.jsonBanned accountsuuid, name, created, source, expires, reason
banned-ips.jsonBanned IP addressesip, created, source, expires, reason
usercache.jsonNames and UUIDs of players the server has looked up recentlyname, uuid, expiresOn

Example entries

A whitelist entry. The Whitelist Creator writes files in this format:

[
  {
    "uuid": "069a79f4-44e9-4726-a5be-fca90e38aaf5",
    "name": "Notch"
  }
]

An operator entry. level is the operator’s permission level (new operators get the op-permission-level value, 4 by default), and bypassesPlayerLimit lets the operator join when the server is full:

[
  {
    "uuid": "069a79f4-44e9-4726-a5be-fca90e38aaf5",
    "name": "Notch",
    "level": 4,
    "bypassesPlayerLimit": false
  }
]

A ban entry. Dates use the format yyyy-MM-dd HH:mm:ss Z, source is who issued the ban, and expires is forever for a permanent ban:

[
  {
    "uuid": "069a79f4-44e9-4726-a5be-fca90e38aaf5",
    "name": "Notch",
    "created": "2026-09-15 18:30:00 +0000",
    "source": "Server",
    "expires": "forever",
    "reason": "Example ban"
  }
]

Editing these files

  • Prefer commands while the server runs: /whitelist, /op, /deop, /ban, /ban-ip, /pardon and /pardon-ip. They update the files for you.
  • The server saves its in-memory lists when they change, which can overwrite edits made to the files in the meantime. Edit the files while the server is stopped, or use /whitelist reload for the whitelist.
  • A name that is out of date in these files doesn’t matter. The server goes by the UUID.
  • usercache.json is a cache. The server rebuilds it, so there is no need to edit it.

Bedrock Dedicated Server

Bedrock uses different files: allowlist.json for its allowlist and permissions.json for player permissions, with players identified by Xbox user ID (XUID) instead of UUID.