DUXPLIMA Documentation

Limits and costs

The numeric nodes, their defaults, and how STACK, MAX and MIN combine them.

Limits, costs and delays are entitlements: a number resolved from a player's permissions. They are declared in entitlements.yml, where each has a default value, a combining strategy and a multiplier.

The nodes

NodeControlsDefaultStrategyRate
uxmclaims.limit.claim.<n>Claims a player may own1STACK×1
uxmclaims.limit.chunk.<n>Chunks across all their claims10STACK×1
uxmclaims.limit.member.<n>Members in one claim50STACK×1
uxmclaims.limit.time.<n>Claim lifetime in seconds2592000STACK×1
uxmclaims.limit.warp.<n>Warps per claim3MAX×1
uxmclaims.limit.role.<n>Custom roles per claim5MAX×1
uxmclaims.limit.ban.<n>Bans per claim25MAX×1
uxmclaims.limit.invite.<n>Pending invitations per claim10MAX×1
uxmclaims.cost.claim.<level>.<price>Creating a claim0.0MINflat
uxmclaims.cost.chunk.<count>.<price>Buying a chunk25.0MINflat
uxmclaims.cost.warp.<count>.<price>Creating a warp0.0MINflat
uxmclaims.cost.role.<count>.<price>Creating a role0.0MINflat
uxmclaims.cost.warptp.<public|private>.<price>Teleporting to a warp0.0MINflat
uxmclaims.cost.invite.<count>.<price>Sending an invitation0.0MINflat
uxmclaims.cost.rename.<price>Renaming a claim0.0MINflat
uxmclaims.cost.time.<price>Extending, per second5.0MINflat
uxmclaims.delay.teleport.<n>Teleport warmup in seconds3MIN×1

2592000 seconds is 30 days.

The three strategies

StrategyCombines several grants byRight for
STACKAdding them upLimits that should accumulate across ranks
MAXTaking the largestLimits where the best rank should simply win
MINTaking the smallestCosts and delays (smaller is the upgrade)

A player holding both uxmclaims.limit.claim.2 and uxmclaims.limit.claim.3:

  • under STACK: 1 + 2 + 3 = 6 claims; the default is included
  • under MAX: 3 claims
  • under MIN: 2 claims

The default value participates in STACK, which is why limit.claim ships with a default of 1 and not 0.

incrementRate

For limits, incrementRate multiplies the number in the node. With a rate of 20, uxmclaims.limit.claim.5 grants 100 claims: the node becomes a tier rather than a count. All shipped limits use rate 1, so what you write is what you get.

For costs, incrementRate is a percentage increase per item already owned. With a rate of 10.0 and a base of 100, the first claim costs 100, the second 110, the third 121. All shipped costs use 0.0, meaning flat pricing.

MIN on costs means an ungranted rank is not the cheapest one

Because costs use MIN, a player with no cost node pays defaultValue. Granting uxmclaims.cost.chunk.1.10 makes chunks cost 10 for that rank. Granting a rank a higher number than the default does nothing at all: MIN keeps the default. Cost nodes can only ever discount.

Worked example

default:
  - uxmclaims.limit.claim.1     # 1 default + 1 = 2 claims
  - uxmclaims.limit.chunk.15    # 10 default + 15 = 25 chunks
vip:
  - uxmclaims.limit.claim.2     # …+2 = 4 claims when stacked on default
  - uxmclaims.limit.chunk.25    # …+25 = 50 chunks
  - uxmclaims.limit.warp.10     # MAX: 10 warps, not 13
  - uxmclaims.cost.chunk.1.10   # MIN: chunks cost 10 instead of 25
  - uxmclaims.delay.teleport.1  # MIN: 1 second warmup instead of 3

Because limit.claim and limit.chunk stack, a VIP who also holds the default group's nodes gets the sum. If you inherit groups in LuckPerms, count the inherited nodes too: this is the single most common source of "why does my VIP have twelve claims".