Permissions
Shop Permissions
Section titled “Shop Permissions”The Shop System uses the unified ks.<mod>.<scope>.<action> scheme plus rental/listing nodes and per-item dynamic permissions.
Core Permission Nodes
Section titled “Core Permission Nodes”| Permission | Default | Description |
|---|---|---|
ks.shop.user.browse | ✅ allowed | Browse shops — list, open block shops, NPC shops |
ks.shop.user.create | ✅ allowed | Create a new player shop (token interaction + command) |
ks.shop.user.edit | ✅ allowed | Edit your own shop (prices, items, layout, name, description) |
ks.shop.user.delete | ✅ allowed | Delete your own shop |
ks.shop.user.rate | ✅ allowed | Rate another player’s shop |
ks.shop.user.collect | ✅ allowed | Collect sold items or coins from your shop |
ks.shop.admin | ❌ staff only | Every /ksshopadmin subcommand |
All user nodes default to allowed via hasPermission(node, true). Revoke from a group to restrict.
Rental / Listing Nodes
Section titled “Rental / Listing Nodes”| Permission | Default | Description |
|---|---|---|
ks.rental.rent | ✅ allowed | Rent a rental-plot player shop |
ks.rental.bid | ✅ allowed | Place a bid on a rental auction |
ks.shop.list.free | ❌ opt-in | Grant free listings (no listing-fee) |
ks.shop.list.permanent | ❌ opt-in | Shop never expires (used by ShopService for listing duration logic) |
Player Commands
Section titled “Player Commands”| Command | Permission | Description |
|---|---|---|
/ksshop browse | ks.shop.user.browse | Browse all shops |
/ksshop open <id> | ks.shop.user.browse | Open a shop by ID |
/ksshop list | ks.shop.user.browse | List all available shops |
/ksshop create ... | ks.shop.user.create | Create a player shop |
/ksshop edit ... | ks.shop.user.edit | Edit your shop |
/ksshop delete <id> | ks.shop.user.delete | Delete your shop |
/ksshop rate <id> <stars> | ks.shop.user.rate | Rate a shop |
/ksshop collect <id> | ks.shop.user.collect | Collect shop earnings |
Right-click on a Shop Block with the creation-token also gates on ks.shop.user.create.
Admin Commands
Section titled “Admin Commands”All admin subcommands gate on ks.shop.admin.
| Command | Description |
|---|---|
/ksshopadmin panel | Open the admin panel |
/ksshopadmin create ... | Create a server shop |
/ksshopadmin edit ... | Edit any shop (including players’) |
/ksshopadmin delete <id> | Force-delete any shop |
/ksshopadmin list | List every shop incl. expired |
/ksshopadmin reload | Reload shop configs |
/ksshopadmin rental ... | Manage rental plots & auctions |
/ksshopadmin grant <player> <perm> | Grant a listing flag |
| (additional subcommands for moderation, analytics, payout tools) | — |
Alias: /shopadmin.
Per-Item / Dynamic Permissions
Section titled “Per-Item / Dynamic Permissions”Individual server shop items can require a custom permission string for purchase. This is set per-item in the shop JSON:
{ "items": [ { "itemId": "Weapon_Sword_Adamantite", "name": "VIP Sword", "cost": 50, "permission": "shop.vip" } ]}The mod calls hasPermission() on whatever string you set — the shop.vip prefix is convention, not enforced. Players without the permission see a NO_PERMISSION result at purchase.
If permission is unset or null, the item is open to everyone.
LuckPerms Examples
Section titled “LuckPerms Examples”# Staff admin/lp user Steve permission set ks.shop.admin true
# VIP group: free listings + permanent listings + VIP items/lp group vip permission set ks.shop.list.free true/lp group vip permission set ks.shop.list.permanent true/lp group vip permission set shop.vip true
# Revoke shop creation from a restricted group/lp group spectator permission set ks.shop.user.create false/lp group spectator permission set ks.shop.user.edit false/lp group spectator permission set ks.shop.user.delete falseMigration from Legacy Nodes
Section titled “Migration from Legacy Nodes”Earlier docs referenced kyuubisoft.admin as the shop admin gate. This was inaccurate — the shop system has always had its own admin command. The correct node is now ks.shop.admin. Per-item permissions (shop.<custom>) remain user-authored.