> For the complete documentation index, see [llms.txt](https://docs-nightbeam.gitbook.io/infinity-rifts/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-nightbeam.gitbook.io/infinity-rifts/docs/permissions.md).

# Permissions

## Permission inventory

| Node                                                     | Declared | Default                                                              | Controls                                                                  |
| -------------------------------------------------------- | -------: | -------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| `infinityrifts.use`                                      |      Yes | `true`                                                               | Root `/rift`; explicitly checked by invite, kick, and join                |
| `infinityrifts.admin.edit`                               |      Yes | `op`                                                                 | Nothing in current source                                                 |
| `infinityrifts.admin`                                    |       No | Bukkit implicit undeclared-node behavior; normally operator-oriented | `/rift admin`, `/rift list`; also treated as spawn-condition admin bypass |
| `infinityrifts.admin.give`                               |       No | Implicit                                                             | Player use of `/rift give`; console bypasses this explicit check          |
| `infinityrifts.admin.reload`                             |       No | Implicit                                                             | `/rift reload`                                                            |
| `infinityrifts.bypass.conditions`                        |       No | Implicit                                                             | Default per-gateway condition bypass node; the exact node is configurable |
| Values in `spawn-conditions.player.required-permissions` |  Dynamic | Defined by the permission provider                                   | Per-gateway activation requirements                                       |

There are no child permissions declared. `infinityrifts.admin.edit` does not grant the other admin nodes. The descriptor's root `infinityrifts.use` may prevent a player from reaching an admin subcommand even when that player has only an admin-specific node.

Administrators should define all implementation nodes explicitly in their permission plugin until `plugin.yml` is corrected.

## LuckPerms example

```
/lp group default permission set infinityrifts.use true
/lp group moderator permission set infinityrifts.admin true
/lp group moderator permission set infinityrifts.admin.give true
/lp group administrator permission set infinityrifts.admin.reload true
/lp group administrator permission set infinityrifts.bypass.conditions true
```

For a gateway with `required-permissions: ["server.rifts.void"]`:

```
/lp group vip permission set server.rifts.void true
```

The repository declares no official wildcard or inheritance policy. Any LuckPerms grouping such as an `infinityrifts.admin.*` wildcard is an operator-created convention, not a plugin-declared child tree.
