Skip to content

Pricing & Perks

Two ways to bend prices: a temporary global adjustment for everyone, and per-group perks (better pricing + higher limits) for VIPs, donors, or any permission group.

A signed percentage applied to every item’s price while it’s enabled β€” a weekend markup or a sale. In config.yml:

pricing:
temporary-adjustment:
enabled: true # flip to false to end it
percent: -20 # 20% off everything (or 20 for a +20% markup)

/dshop reload to apply. It affects everyone; group perks still apply on top.

Groups are defined in groups.yml and matched by permission, so you grant them with LuckPerms (or any permission plugin). A player who matches several groups gets the highest-priority one.

Each group can give:

  • Better pricing β€” either a percentage discount (mode: percent, e.g. 10% off) or a fixed final price (mode: fixed, e.g. everything costs 50).
  • A flat per-player limit override β€” e.g. VIP can buy up to 16 of any item per rotation, regardless of the item’s own limit.
groups:
vip:
permission: "drotatingshop.group.vip"
priority: 10
price: { mode: percent, value: 10 } # 10% off
limit: 16

Grant it: /lp user <player> permission set drotatingshop.group.vip β†’ /dshop reload.

if the player's group has a FIXED price β†’ that's the price (ignores base + global)
otherwise:
start from the item's base price
apply the global adjustment (if enabled)
apply the group's % discount (if any)
floor at 0, round to 2 decimals

So a 100-coin item with a +20% global markup and a VIP 10% discount costs 100 Γ— 1.20 Γ— 0.90 = 108. An MVP on mode: fixed, value: 50 always pays 50.

Prices and limits are per viewer β€” each player sees their own in the shop menu and the buy menu, and is charged accordingly. /dshop list still shows the base values (admin view).

Stock is a single server-wide pool, so it isn’t per-group β€” only the price and the per-player limit change per group.