-
Notifications
You must be signed in to change notification settings - Fork 0
Permissions
Rivet works with normal Paper permissions. You can use its built-in group manager or grant the same nodes through another permissions plugin.
Default settings/permissions.yml:
groups:
default:
permissions:
- rivet.message
staff:
parent: default
permissions:
- rivet.teleport
- rivet.vanish
- rivet.vanish.see
admin:
parent: staff
permissions:
- "*"Players without an assignment use the default group. Each group may have one parent. Rivet walks the parent chain and ignores a repeated group, so an accidental inheritance loop cannot run forever.
Direct grants and group assignments are saved in data/permissions.yml.
Rivet recognises:
-
*for every permission; - a full node such as
rivet.home; - a suffix wildcard such as
rivet.utility.*.
rivet.utility.* matches nodes beginning with rivet.utility.. It does not match unrelated prefixes.
/group list
/group info staff
/group set Alex staff
/perm add Alex rivet.fly
/perm remove rivet.fly Alex
/perm list Alex
/perm check Alex rivet.fly
/perm reload
Important
The remove command uses permission first, then player: /perm remove <permission> <user>.
Changes are applied immediately to online players. Permission updates also refresh vanish visibility, hologram visibility, managed flight and display names.
| Node | Purpose | Paper default |
|---|---|---|
rivet.home |
Set, use and remove homes | Everyone |
rivet.warp |
Use public warps | Everyone |
rivet.warp.set |
Set and remove public warps | OP |
rivet.spawn |
Use /spawn
|
Everyone |
rivet.spawn.set |
Use /setspawn
|
OP |
rivet.tpa |
Use all TPA commands | Everyone |
rivet.back |
Use /back
|
Everyone |
rivet.rtp |
Use /rtp in the current world |
Everyone |
rivet.rtp.world |
Choose another RTP world | OP |
rivet.rtp.cooldown.bypass |
Ignore RTP cooldown | OP |
rivet.near |
Use /near
|
Everyone |
rivet.findbiome |
Use /findbiome
|
Everyone |
| Node | Purpose | Paper default |
|---|---|---|
rivet.message |
/msg and /r
|
Everyone |
rivet.socialspy |
Toggle and receive social spy | OP |
rivet.ignore |
Manage an ignore list | Everyone |
rivet.ignore.bypass |
Bypass a recipient's ignore list | OP |
rivet.chatcolor |
Set own chat colour | Everyone |
rivet.chatcolor.others |
Set another player's colour | OP |
rivet.chatcolor.advanced |
Use gradients and rainbow | OP |
rivet.afk |
Toggle own AFK state | Everyone |
rivet.afk.others |
Use the AFK player target flag | OP |
rivet.afk.silent |
Make silent AFK changes | OP |
rivet.afkcheck |
Check own AFK status | Everyone |
rivet.afkcheck.others |
Check a player or all AFK players | OP |
rivet.nick |
Set own nickname | Everyone |
rivet.nick.format |
Use colour and decoration tags | OP |
rivet.nick.others |
Change another player's nickname | OP |
rivet.stats |
View own statistics | Everyone |
rivet.stats.others |
View another player's statistics | OP |
rivet.playtime |
View own playtime | Everyone |
rivet.playtime.others |
View another player's playtime | OP |
rivet.me |
Send /me action messages |
Everyone |
rivet.me.format |
Format /me text with colours and decorations |
OP |
rivet.list |
List visible online players | Everyone |
rivet.ping |
View own connection latency | Everyone |
rivet.ping.others |
View another player's connection latency | OP |
rivet.help |
Open permission-aware Rivet help | Everyone |
| Node | Purpose | Paper default |
|---|---|---|
rivet.gamemode |
/gmc and /gms
|
OP |
rivet.teleport |
Direct /tp
|
OP |
rivet.vanish |
Toggle vanish | OP |
rivet.vanish.see |
See vanished players | OP |
rivet.fly |
Toggle managed flight | OP |
rivet.flyspeed |
Set own flight speed | OP |
rivet.flyspeed.others |
Set another player's flight speed | OP |
rivet.heal |
Heal self | OP |
rivet.heal.others |
Heal another player | OP |
rivet.feed |
Feed self | OP |
rivet.feed.others |
Feed another player | OP |
rivet.god |
Change own god mode | OP |
rivet.god.others |
Change another player's god mode | OP |
rivet.bossbarmsg |
Send timed boss bars | OP |
rivet.notes |
Add, list, remove and clear staff notes | OP |
rivet.sameip |
Compare current online session addresses | OP |
rivet.toast |
Send temporary advancement toasts | OP |
rivet.admin |
Rivet information and reload | OP |
| Node | Purpose | Paper default |
|---|---|---|
rivet.inventory |
/clear and /i
|
OP |
rivet.inventory.clear.others |
Clear another player's inventory | OP |
rivet.condense |
Condense plain materials | Everyone |
rivet.donate |
Donate held items | Everyone |
rivet.giveall |
Give an item to everyone | OP |
rivet.inventory.invsee |
Inspect a live inventory | OP |
rivet.inventory.enderchest |
Open own ender chest | Everyone |
rivet.inventory.enderchest.others |
Open another live ender chest | OP |
rivet.repair |
Repair held item | OP |
rivet.repair.all |
Use /repair all
|
OP |
rivet.rename |
Rename held item | OP |
rivet.rename.format |
Format item names | OP |
rivet.lore |
Edit held-item lore | OP |
rivet.lore.format |
Format lore lines | OP |
rivet.trash |
Open the trash inventory | Everyone |
rivet.head |
Create a cached player head | OP |
rivet.filter |
Use the pickup filter | Everyone |
rivet.filter.admin |
Bypass filter-size limit | OP |
rivet.hat |
Swap a held item with the helmet slot | Everyone |
| Node | Purpose | Paper default |
|---|---|---|
rivet.backpack |
Open a backpack | Everyone |
rivet.backpack.rows.1 |
Allow at least 1 backpack row | Not granted |
rivet.backpack.rows.2 |
Allow at least 2 backpack rows | Not granted |
rivet.backpack.rows.3 |
Allow at least 3 backpack rows | Not granted |
rivet.backpack.rows.4 |
Allow at least 4 backpack rows | Not granted |
rivet.backpack.rows.5 |
Allow at least 5 backpack rows | Not granted |
rivet.backpack.rows.6 |
Allow all 6 backpack rows | Not granted |
rivet.backpack.rows.* |
Grants every row node | OP |
rivet.kit |
List and claim kits | Everyone |
rivet.kit.starter |
Claim the shipped starter kit | Everyone |
rivet.kit.<name> |
Claim a named configured kit | Per kit |
rivet.kit.* |
Claim every kit | OP |
rivet.daily |
Claim daily rewards | Everyone |
The backpack default row count still applies when no row node is granted. Row permissions can only increase that configured default.
| Node | Purpose | Paper default |
|---|---|---|
rivet.utility.craft |
Portable crafting table | Everyone |
rivet.utility.anvil |
Portable anvil | Everyone |
rivet.utility.smithing |
Portable smithing table | Everyone |
rivet.utility.stonecutter |
Portable stonecutter | Everyone |
rivet.utility.grindstone |
Portable grindstone | Everyone |
rivet.jump |
Jump safely to the targeted block | OP |
rivet.ride |
Mount a targeted entity or dismount | OP |
rivet.pose.sit |
Use /sit
|
Everyone |
rivet.pose.lay |
Use /lay
|
Everyone |
rivet.pose.crawl |
Use /crawl
|
Everyone |
| Node | Purpose | Paper default |
|---|---|---|
rivet.flat |
Legacy /flat command |
OP |
rivet.world |
Test worlds, world spawn and mob cleanup | OP |
rivet.environment |
Time and weather | OP |
rivet.eggcapture |
Capture mobs with thrown eggs | Everyone |
rivet.permissions.manage |
Built-in permission commands | OP |
rivet.holograms |
Create and manage holograms | OP |
rivet.holograms.view.* |
Wildcard view node declared by Rivet | Not granted |
rivet.holograms.view.<name> |
View one permission-limited hologram | Per hologram |
rivet.glow |
Add, change and remove player glows | OP |
rivet.top |
Move to the highest safe point in a column | OP |
rivet.top.others |
Use /top on another player |
OP |
rivet.tree |
Generate a vanilla tree at the target | OP |
Tree felling, vein mining, graves, crop protection, mob-head drops, announcements and join messages do not have per-player permission nodes. Control those features with modules.yml and their settings.
Disable the permissions module in modules.yml, restart, and grant the nodes above through your preferred plugin. Rivet's command and event checks use Paper's standard hasPermission, so they continue to work.
Do not run two systems that both attach overlapping wildcard permissions unless you understand the final Paper permission result.
Rivet documentation | Home | Commands | Configuration | Source