A permission plugin for Pumpkin MC. Pumpkin's built-in permission system only stores player permissions in memory (lost on restart) and has no group/role system. Seed adds persistent TOML-based storage with groups, inheritance, and per-player overrides.
- Persistent storage - Permissions survive server restarts via TOML files
- Group system - Define groups with sets of permissions (e.g.
default,moderator,admin) - Inheritance - Groups can inherit permissions from other groups
- Per-player overrides - Grant extra permissions or deny specific ones per player
- Wildcard support - Use
*to grant all permissions
- Build the plugin with
cargo build --release - Copy
target/release/seed.dll(Windows) ortarget/release/libseed.so(Linux) into your Pumpkin server'splugins/directory - Start the server
On first load, Seed creates a plugins/seed/ folder with a default group. All /seed commands require the seed:admin permission, so only the server console can manage permissions initially. Use the console to create groups and assign players as needed.
Defines permission groups. Each group has a list of permissions and can inherit from other groups. Only the default group is created on first load:
[default]
permissions = ["minecraft:command.help", "minecraft:command.list"]
inheritance = []You can add more groups via commands or by editing the file directly. For example, a typical setup:
[default]
permissions = ["minecraft:command.help", "minecraft:command.list"]
inheritance = []
[moderator]
permissions = ["minecraft:command.kick", "minecraft:command.ban"]
inheritance = ["default"]
[admin]
permissions = ["seed:admin", "*"]
inheritance = ["moderator"]Giving a group seed:admin allows its members to use /seed commands in-game.
Stores per-player group assignments and permission overrides.
[players."550e8400-e29b-41d4-a716-446655440000"]
username = "Steve"
group = "moderator"
extra_permissions = ["some:custom.perm"]
denied_permissions = ["minecraft:command.ban"]When a permission is checked for a player, Seed evaluates in this order:
- Denied - If the permission is in the player's
denied_permissions, it is blocked - Extra - If the permission is in the player's
extra_permissions, it is granted - Group chain - Walk the player's group and its inheritance tree; if the permission (or
*) is found, it is granted - Default - If none of the above match, Seed does not interfere and Pumpkin's default behavior applies
Players not in the store are treated as members of the default group.
All commands are under /seed and require the seed:admin permission.
| Command | Description |
|---|---|
/seed group create <name> |
Create a new empty group |
/seed group delete <name> |
Delete a group (cannot delete default) |
/seed group addperm <group> <permission> |
Add a permission to a group |
/seed group removeperm <group> <permission> |
Remove a permission from a group |
/seed group info <group> |
Show a group's permissions, inheritance, and effective permissions |
/seed group list |
List all groups |
| Command | Description |
|---|---|
/seed player setgroup <player> <group> |
Assign a player to a group |
/seed player addperm <player> <permission> |
Grant an extra permission to a player |
/seed player removeperm <player> <permission> |
Remove an extra permission from a player |
/seed player deny <player> <permission> |
Deny a specific permission for a player (overrides group) |
/seed player undeny <player> <permission> |
Remove a denied permission from a player |
/seed player info <player> |
Show a player's group, extras, denials, and effective permissions |
| Command | Description |
|---|---|
/seed reload |
Reload configuration from disk |
/seed save |
Force save configuration to disk |
/seed group create admin
/seed group addperm admin seed:admin
/seed group addperm admin *
/seed player setgroup Steve admin
This creates an admin group with full permissions (including the ability to use /seed commands), then makes Steve an admin. Steve can now manage permissions in-game.
/seed group create vip
/seed group addperm vip minecraft:command.fly
/seed group addperm vip minecraft:command.gamemode
/seed player setgroup Alex vip
/seed player deny Alex minecraft:command.gamemode
/seed player info Alex
This creates a vip group with fly and gamemode permissions, assigns Alex to it, then denies gamemode specifically for Alex. Alex can fly but cannot change gamemode.