# Permissions

{% hint style="info" %}
All permission nodes can be custom configured inside the `configuration/permissions.yml` file
{% endhint %}

{% hint style="danger" %}
Below is the configuration for the latest staff++ version.\
It's best to check your own configuration file to see the correct permissions
{% endhint %}

```yaml
############################################################
# +------------------------------------------------------+ #
# |                     Permissions                      | #
# +------------------------------------------------------+ #
############################################################

# Use this to give a player all Staff+ permissions.
# Take note that this will NOT give the player the "block" permission.
# This also gives the player permission to toggle other player's vanish, staff mode, and etc.
wild-card: "staff.*"
# Permission for using /staffplus
staffplus: "staff"
# Use this for players who's ip should not be shown in examine mode
ipPerm: "staff.hideip"
# Permission for blocking listed commands at "blocked-commands" and "blocked-mode-commands".
block: "staff.block"
# Permission for bypassing the word blacklist.
blacklist: "staff.blacklist.bypass"

# Permission for giving a player's previous inventory back.
revive: "staff.revive"
# Permission for being noted as a staff member in the staff list command and for login.
member: "staff.member"
# Permission for using "/strip".
strip: "staff.strip"
# Permission for managing the alerts you will get
broadcast: "staff.broadcast"
# Permission for initializing clicks per second tests
cps: "staff.cps"
# Permission for using examine
examine: "staff.examine"
# Permission to open the infractions gui
infractions:
    view: "staff.infractions.view"

staff-list.view: "staff.personnel.view"
staff-hub.view: "staff.hub.view"

########################
# REPORTS
# GROUP: staff.chatchannels
# permissions should be suffixed with the chatchannel type
# Example: staff.chatchannels.leave.report
########################

chatchannels:
    join: "staff.chatchannels.join"
    leave: "staff.chatchannels.leave"
    open: "staff.chatchannels.open"
    close: "staff.chatchannels.close"
########################
# REPORTS
# GROUP: staff.reports
########################
# Permission for reporting players.
report: "staff.reports.report"
reports:
    chat: "staff.reports.chat"
    # All permission for managing reports
    manage:
        view: "staff.reports.manage.view"
        delete: "staff.reports.manage.delete"
        accept: "staff.reports.manage.accept"
        resolve: "staff.reports.manage.resolve"
        reject: "staff.reports.manage.reject"
        teleport: "staff.reports.manage.teleport"
        reopen-other: "staff.reports.manage.reopen-other"
# Permission for bypassing reports.
report-bypass: "staff.reports.report-bypass"
# Permission for receiving notifications when a report is accepted/deleted/closed
report-update-notifications: "staff.reports.update.notifications"
# Permission to open to my reports gui
view-my-reports: "staff.reports.view-my-reports"

########################
# WARNINGS
# GROUP: staff.warnings
########################

# Permission to open to my warnings gui
view-my-warnings: "staff.warnings.view-my-warnings"
# Permission for using "/warn" and clearing/getting player warnings.
warn: "staff.warnings.warn"
# Permission for bypassing warnings.
warn-bypass: "staff.warnings.warn-bypass"
warnings:
    notifications: "staff.warnings.notifications"
    # All permission for managing warnings
    manage:
        view: "staff.warnings.manage.view"
        delete: "staff.warnings.manage.delete"
        expire: "staff.warnings.manage.expire"
    appeals:
        create: "staff.warnings.appeals.create"
        create-others: "staff.warnings.appeals.create.others"
        approve: "staff.warnings.appeals.approve"
        reject: "staff.warnings.appeals.reject"
        notifications: "staff.warnings.appeals.notifications"

########################
# INVESTIGATION
# GROUP: staff.investigation
########################
investigations:
    # All permission for managing investigations
    manage:
        investigate: "staff.investigation.manage.investigate"
        notifications: "staff.investigation.manage.notifications"
        view: "staff.investigation.manage.view"
        link-evidence: "staff.investigation.manage.link-evidence"
        add-note: "staff.investigation.manage.add-note"
        delete-note: "staff.investigation.manage.delete-note"
        delete-note-others: "staff.investigation.manage.delete-note-others"

########################
# VANISH
# GROUP: staff.vanish
########################
# Permission for using the vanish command
vanish: "staff.vanish.vanish"
# Permission for using the vanish command
vanish-others:
    total: "staff.vanish.others.total"
    list: "staff.vanish.others.list"
    player: "staff.vanish.others.player"
see-vanished: "staff.vanish.see-vanished"
# Permission for using "/v total".
vanish-total: "staff.vanish.total"
# Permission for using "/v list".
vanish-list: "staff.vanish.list"
# Permission for using "/v player".
vanish-player: "staff.vanish.player"

########################
# CHAT
# GROUP: staff.chat
########################
# Permission for using "/chat clear".
chat-clear: "staff.chat.clear"
# Permission for using "/chat toggle".
chat-toggle: "staff.chat.toggle"
# Permission for using "/chat slow".
chat-slow: "staff.chat.slow"

########################
# ALERTS
# GROUP: staff.alerts
########################
alerts:
    # Permission for managing the alerts you will get
    manage-alerts: "staff.alerts.alerts"
    notifications:
        # Permission for receiving mention alerts.
        mention: "staff.alerts.mention"
        # Permission for receiving name change alerts.
        name-change: "staff.alerts.namechange"
        # Permission for receiving xray alerts.
        xray: "staff.alerts.xray"
        # Permission for receiving alt detect alerts.
        alt-detect: "staff.alerts.alt-detects"
        # Permission for receiving chat word mentions alerts.
        chat-phrase-detection: "staff.alerts.chat-phrase-detection"
        # Permission for receiving chat word mentions alerts.
        command-detection: "staff.alerts.command-detection"
        # Permission for bypassing chat word mentions alerts.
        # Permission for receiving chat blacklist alerts.
        blacklist-detection: "staff.alerts.blacklist-detection"

name-change-bypass: "staff.namechange-bypass"
mention-bypass: "staff.mention-bypass"
xray-bypass: "staff.xray-bypass"
command-detection-bypass: "staff.command-detection.bypass"
# Permission for bypassing chat phrase detection.
chat-phrase-detection-bypass: "staff.chat-phrase-detection.bypass"

########################
# MODE
# GROUP: staff.mode
########################
# Permission for toggling staff mode.
mode: "staff.mode.mode"
# Permission for turning on a specific staff mode
mode-specific: "staff.mode.specific-mode"
# permission to interact with chests/hoppers/dispensers.
mode-silent-chest-interaction: "staff.mode.silent-chest-interaction"
# Permission for using the staff mode compass
compass: "staff.mode.compass"
# Permission for using the staff mode random teleport
random-teleport: "staff.mode.random-teleport"
# This excludes the player from being randomly teleported to!
random-teleport-bypass: "staff.mode.random-teleport.bypass"
# Permission for the staff mode GUI hub
gui: "staff.mode.gui"
# Permission for the staff mode counter GUI
counter: "staff.mode.counter"
# Permission to show if staff members are vanished in the counter GUI
counter-show-vanished: "staff.mode.counter-show-vanished"
# Permission for using staff mode follow
follow: "staff.mode.follow"

########################
# FREEZE
# GROUP: staff.freeze
########################
# Permission for using freeze.
freeze: "staff.freeze.freeze"
# Permission for bypassing freeze.
freeze-bypass: "staff.freeze.freeze-bypass"
freeze-chat: "staff.freeze.chat"

########################
# TELEPORT
# GROUP: staff.teleport
########################
# Permission for using teleport.
teleport-to-location: "staff.teleport.teleport-to-location"
# Permission for using teleportToPlayer.
teleport-to-player: "staff.teleport.teleport-to-player"
# Permission for using teleportHere.
teleport-here: "staff.teleport.teleport-here"
# Permission for bypassing teleport.
teleport-bypass: "staff.teleport.teleport.bypass"

########################
# TRACE
# GROUP: staff.trace
########################
# Permission for using trace.
trace: "staff.trace.trace"
# Permission for bypassing being traced.
trace-bypass: "staff.trace.bypass"

########################
# PROTECT
# GROUP: staff.protect
########################
# Permission to toggle protection of a player
protect-player: "staff.protect.protect-player"
# Permission to toggle protection of an area
protect-area: "staff.protect.protect-area"

########################
# BANS
# GROUP: staff.bans
########################
# ban permissions
ban: "staff.bans.ban"
tempban: "staff.bans.tempban"
extendban: "staff.bans.extendban"
reduceban: "staff.bans.reduceban"
ban-silent: "staff.bans.ban-silent"
ban-view: "staff.bans.ban-view"
ban-template-overwrite: "staff.bans.ban-template-overwrite"
unban: "staff.bans.unban"
ban-bypass: "staff.bans.ban-bypass"
ban-notifications: "staff.bans.ban-notifications"
bans:
    migrate: "staff.bans.migrate"
    appeals:
        view: "staff.bans.appeals.view"
        create: "staff.bans.appeals.create"
        create-others: "staff.bans.appeals.create.others"
        approve: "staff.bans.appeals.approve"
        reject: "staff.bans.appeals.reject"
        notifications: "staff.bans.appeals.notifications"

########################
# IP BANS
# GROUP: staff.ipban
########################
ipban:
    ban: "staff.ipban.ban"
    tempban: "staff.ipban.tempban"
    unban: "staff.ipban.unban"
    ban-check: "staff.ipban.ban-check"
    ban-view: "staff.ipban.ban-view"
    ban-silent: "staff.ipban.ban-silent"
    ban-template-overwrite: "staff.ipban.ban-template-overwrite"
    ban-notifications: "staff.ipban.ban-notifications"
    migrate: "staff.ipban.migrate"

########################
# IP
# GROUP: staff.ips
########################
ips:
    clear-ips: "staff.ips.clear-ips"
    notifications: "staff.ips.notifications"

########################
# KICKS
# GROUP: staff.kicks
########################
# Permission to kick players
kick: "staff.kicks.kick"
kick-notifications: "staff.kicks.kick-notifications"
# Permission to bypass being kicked
kick-bypass: "staff.kicks.kick-bypass"

########################
# MUTES
# GROUP: staff.mutes
########################
# Permission to mute players
mute: "staff.mutes.mute"
mute-view: "staff.mutes.mute-view"
tempmute: "staff.mutes.tempmute"
unmute: "staff.mutes.unmute"
extendmute: "staff.mutes.extendmute"
reducemute: "staff.mutes.reducemute"
mute-bypass: "staff.mutes.mute-bypass"
mute-override-softhard: "staff.mutes.mute-override-softhard"
mute-notifications: "staff.mutes.mute-notifications"
view-my-mutes: "staff.mutes.view-my-mutes"
mutes:
    appeals:
        view: "staff.mutes.appeals.view"
        create: "staff.mutes.appeals.create"
        create-others: "staff.mutes.appeals.create.others"
        approve: "staff.mutes.appeals.approve"
        reject: "staff.mutes.appeals.reject"
        notifications: "staff.mutes.appeals.notifications"
########################
# ALT DETECT
# GROUP: staff.altdetects
########################
# Permission to add/remove players from the alt detection whitelist
alt-detect-whitelist: "staff.altdetects.whitelist"
# Permission to run an alt detection check
alt-detect-check: "staff.altdetects.check"
# Permission to bypass the alt detection
alt-detect-bypass: "staff.altdetects.bypass"

########################
# INVENTORY INTERACTION
# GROUP: staff.inventory
########################
# Permission for using the clear inventory config
invClear: "staff.inventory.clearinv"
# Permission for bypassing clear inventory
invClear-bypass: "staff.inventory.clearinv-bypass"
# Permission to have inventory interaction while in examine mode
examine-inventory-interaction.online: "staff.inventory.inventory-interaction"
# Permission to have inventory interaction while in examine mode for offline players
examine-inventory-interaction.offline: "staff.inventory.inventory-interaction-offline"
# Permission to view player's inventory while in examine mode
examine-view-inventory.online: "staff.inventory.view-inventory"
# Permission to view player's inventory while in examine mode for offline player
examine-view-inventory.offline: "staff.inventory.view-inventory-offline"
# Permission to view player's ip in the examine view
examine-view-ip: "staff.examine.view-ip"

########################
# ENDERCHEST
# GROUP: staff.enderchests
########################
# Permissions to view/interact with players enderchests
enderchests:
    view:
        online: "staff.enderchests.view.online"
        offline: "staff.enderchests.view.offline"
    interact: "staff.enderchests.interact"

# Permission to open the players GUI.
players: "staff.players"
########################
# PLAYER GUI VIEW
# GROUP: staff.player-view.detail
# GROUP: staff.player-view.overview
# Below permissions determine what GUI items are shown in the player detail view
########################
playerView:
    detail:
        food: "staff.player-view.detail.food"
        ip: "staff.player-view.detail.ip"
        uuid: "staff.player-view.detail.uuid"
        gamemode: "staff.player-view.detail.gamemode"
        location: "staff.player-view.detail.location"
        timeplayed: "staff.player-view.detail.timeplayed"
        frozen: "staff.player-view.detail.frozen"
        protected: "staff.player-view.detail.protected"
        investigation: "staff.player-view.detail.investigation"
        muted: "staff.player-view.detail.muted"
        vanished: "staff.player-view.detail.vanished"
    overview:
        online-players: "staff.player-view.overview.onlineplayers"
        offline-players: "staff.player-view.overview.offlineplayers"
        staff-members: "staff.player-view.overview.staff"
        miners: "staff.player-view.overview.miners"
        protected: "staff.player-view.overview.protected"

########################
# PLAYER NOTES
# GROUP: staff.player-notes
########################
player-notes:
    view: "staff.player-notes.view"
    create: "staff.player-notes.create"
    create-private: "staff.player-notes.create-private"
    delete: "staff.player-notes.delete"
    delete-other: "staff.player-notes.delete-other"
    notifications: "staff.player-notes.notifications"

########################
# STAFF LOCATIONS
# GROUP: staff.staff-locations
########################
staff-locations:
    view: "staff.staff-locations.view"
    create: "staff.staff-locations.create"
    delete: "staff.staff-locations.delete"
    teleport: "staff.staff-locations.teleport"
    edit: "staff.staff-locations.edit"
    view-notes: "staff.staff-locations.notes.view"
    delete-note: "staff.staff-locations.notes.delete"
    create-note: "staff.staff-locations.notes.create"

webui:
    register: "staff.webui.register"

show-style-info: "staff.show-style-info"
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.staffplusplus.org/permissions-and-commands/permissions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
