# How to Give OP Permissions on Your Minecraft Bedrock Server (/docs/minecraft-bedrock/op-setup)



import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
import { Step, Steps } from 'fumadocs-ui/components/steps';

Operator (OP) status gives a player access to admin commands like `/gamemode`, `/give`, `/tp`, `/kick`, and `/ban`. Bedrock Edition uses a three-tier permission system that works differently from Java Edition.

Permission Levels Explained [#permission-levels-explained]

| Level        | Name     | What They Can Do                                                                                          |
| ------------ | -------- | --------------------------------------------------------------------------------------------------------- |
| **visitor**  | Visitor  | Look around only. Cannot build, mine, or interact with anything                                           |
| **member**   | Member   | Normal gameplay — build, mine, craft, fight. No admin commands                                            |
| **operator** | Operator | Full admin commands including `/op`, `/kick`, `/ban`, `/gamemode`, `/give`, `/tp`, `/summon`, `/gamerule` |

The `default-player-permission-level` in `server.properties` controls what level new players receive. It defaults to `member`.

Method 1: Console Command (Fastest) [#method-1-console-command-fastest]

<Steps>
  <Step>
    Open the Console [#open-the-console]

    Log in to the [XGamingServer Panel](https://panel.xgamingserver.com) and click **Console** in the sidebar. Your server must be running.

    {/* Screenshot needed: Console page with command input field */}
  </Step>

  <Step>
    Run the OP command [#run-the-op-command]

    Type the following in the command input field and press Enter:

    ```
    op "PlayerName"
    ```

    > Always use quotes around the gamertag. Xbox gamertags can contain spaces (e.g., `"Cool Player 123"`), and the command will fail without quotes if they do.

    The player will immediately receive operator permissions. They do **not** need to relog.
  </Step>
</Steps>

To remove OP:

```
deop "PlayerName"
```

Method 2: Edit permissions.json (Persistent) [#method-2-edit-permissionsjson-persistent]

The console `/op` command writes to `permissions.json` automatically, but you can also edit this file directly — useful for adding players who haven't joined yet.

<Steps>
  <Step>
    Open permissions.json [#open-permissionsjson]

    In the panel sidebar, click **Files**. Open `permissions.json` in the root directory.

    {/* Screenshot needed: File Manager showing permissions.json */}
  </Step>

  <Step>
    Add the player's XUID [#add-the-players-xuid]

    Each entry needs the player's **Xbox User ID (XUID)** — a 16-digit number tied to their Microsoft account.

    ```json
    [
      {
        "permission": "operator",
        "xuid": "2535416790845590"
      },
      {
        "permission": "member",
        "xuid": "2535428967123456"
      }
    ]
    ```
  </Step>

  <Step>
    Save and reload [#save-and-reload]

    Click **Save Content**, then run this in **Console** to apply without restarting:

    ```
    permission reload
    ```
  </Step>
</Steps>

Finding a Player's XUID [#finding-a-players-xuid]

<Tabs items={['From the Console', 'From an Online Lookup']}>
  <Tab value="From the Console">
    When a player is online, run:

    ```
    list
    ```

    This outputs each connected player's gamertag alongside their XUID.
  </Tab>

  <Tab value="From an Online Lookup">
    If the player isn't online, look up their gamertag at:

    * [cxkes.me/xbox/xuid](https://www.cxkes.me/xbox/xuid)
    * [xuidlookup.com](https://www.xuidlookup.com)

    Enter their exact Xbox gamertag to get the XUID.
  </Tab>
</Tabs>

Checking Current Permissions [#checking-current-permissions]

Run this in **Console** to see who has what permission level:

```
permission list
```

Common Issues [#common-issues]

| Problem                     | Cause                                     | Fix                                                                                            |
| --------------------------- | ----------------------------------------- | ---------------------------------------------------------------------------------------------- |
| "No targets matched"        | Player is offline or name is misspelled   | Use exact gamertag with quotes. Player must be online for `/op`                                |
| OP commands don't work      | `allow-cheats=false` in server.properties | Set `allow-cheats=true` and restart. See [Enable Cheats](/docs/minecraft-bedrock/cheats-setup) |
| XUID not working            | `online-mode=false`                       | XUIDs require Xbox Live auth. Set `online-mode=true`                                           |
| Player lost OP after rejoin | permissions.json was empty or corrupted   | Edit the file directly instead of relying on `/op`                                             |

Related Guides [#related-guides]

* [Enable Cheats](/docs/minecraft-bedrock/cheats-setup)
* [Server Properties Reference](/docs/minecraft-bedrock/server-properties)
* [Whitelist Players](/docs/minecraft-bedrock/whitelist)
