Permissions
Player Shops Permissions
Section titled “Player Shops Permissions”How permissions are evaluated
Section titled “How permissions are evaluated”The plugin code passes default = true to every player-side permission check. LuckPerms ignores that default and answers false to any unset permission. So in practice, every permission must be granted explicitly.
Wildcard sentinel
Section titled “Wildcard sentinel”A LuckPerms wildcard like * or ks.shop.* would normally make every hasPermission check return true. To stop OPs from silently inheriting privileged listing/limit perks, the plugin uses a wildcard sentinel probe:
// A node no real perm setup would ever grant. If the backend says "yes",// we know the player has a wildcard. We then treat the perk as "not granted"// and fall back to the global config default.private static final String WILDCARD_SENTINEL = "ks.shop.__wildcard_probe.sentinel_check_zzz";This sentinel guards:
ks.shop.list.permanentks.shop.list.freeks.shop.limit.shops.Nks.shop.limit.items.Nks.rental.limit.N
To grant any of these to an OP intentionally, deny the matching wildcard first:
lp user <admin> permission set ks.shop.* falselp user <admin> permission set ks.shop.list.permanent trueks.shop.admin is not wildcard-guarded - admins should keep their admin rights via *.
Player permissions
Section titled “Player permissions”| Node | Grants | Default |
|---|---|---|
ks.shop.user.create | /ksshop create | unset |
ks.shop.user.edit | /ksshop edit, open, close, rename, delete, deposit, transfer | unset |
ks.shop.user.browse | /ksshop browse, search, visit | unset |
ks.shop.user.rate | /ksshop rate | unset |
ks.shop.user.collect | /ksshop collect | unset |
ks.shop.user.delete | /ksshop delete (own shop) | unset |
ks.rental.rent | Rent fixed-price slots | unset |
ks.rental.bid | Bid in auctions | unset |
Limit overrides (explicit grants only)
Section titled “Limit overrides (explicit grants only)”| Node | Effect | Default |
|---|---|---|
ks.shop.limit.shops.N | Max N owned shops (overrides playerShops.maxShopsPerPlayer) | global default |
ks.shop.limit.items.N | Max N items per shop (overrides playerShops.maxItemsPerShop) | global default |
ks.rental.limit.N | Max N concurrent rentals (overrides rentalStations.maxConcurrentRentalsDefault) | global default |
Highest matched N wins. Scan range: 1..200. Wildcard match falls back to the global config default.
Listing perks
Section titled “Listing perks”| Node | Effect |
|---|---|
ks.shop.list.permanent | Shop is forever-listed without paying |
ks.shop.list.free | Pay 0g for any listing duration (still day-clamped) |
Both wildcard-guarded. To grant on an OP, deny ks.shop.* first.
| Node | Grants |
|---|---|
ks.shop.admin | All /kssa * commands - admin shops, rental admin, force-expire, etc. |
Recommended setup
Section titled “Recommended setup”Default group (every player)
Section titled “Default group (every player)”lp group default permission set ks.shop.user.create truelp group default permission set ks.shop.user.edit truelp group default permission set ks.shop.user.browse truelp group default permission set ks.shop.user.collect truelp group default permission set ks.shop.user.rate truelp group default permission set ks.shop.user.delete truelp group default permission set ks.rental.rent truelp group default permission set ks.rental.bid trueVIP rank (3 -> 5 shops, 50 items each, 3 parallel rentals)
Section titled “VIP rank (3 -> 5 shops, 50 items each, 3 parallel rentals)”lp group vip permission set ks.shop.limit.shops.5 truelp group vip permission set ks.shop.limit.items.50 truelp group vip permission set ks.rental.limit.3 truePremium rank (10 shops, 100 items, free permanent listing)
Section titled “Premium rank (10 shops, 100 items, free permanent listing)”lp group premium permission set ks.shop.limit.shops.10 truelp group premium permission set ks.shop.limit.items.100 truelp group premium permission set ks.shop.list.permanent trueStaff (admin)
Section titled “Staff (admin)”lp user StaffName permission set ks.shop.admin trueAnti-patterns
Section titled “Anti-patterns”These setups produce nonsensically generous results. Avoid:
| Setup | Problem |
|---|---|
ks.shop.* on default group | Matches ks.shop.limit.shops.200 too -> 200 shops per player effectively |
ks.rental.* on default group | Matches ks.rental.limit.200 too -> unlimited rentals |
* on a non-staff rank | Same as above plus permanent free listings |
The wildcard sentinel guards against the worst of these (limits + permanent listing) but does not retroactively undo a wildcard grant of all the user-action perms. Use specific grants only.