Features
Economy
Economy System
SCS2 integrates with Vault to provide a full economy system for claims. When enabled, players pay to claim chunks and can sell their claims to other players.
Enable economy in config.yml:
claims:
economy:
enabled: true
max-price: 1_000_000_000
formatted-number: true
- enabled — activates the economy system
- max-price — maximum price a player can set when selling a claim
- formatted-number — displays prices with formatting (e.g., 1,000,000 instead of 1000000)
Vault and an economy plugin (e.g., EssentialsX, CMI, PlayerPoints) must be installed for the economy system to work. Without them, the economy features are silently disabled.
Chunk Costs & Multipliers
Each time a player claims a chunk, they pay a configurable cost. How that cost grows as a claim gets bigger is controlled by the cost mode and the cost multiplier.
Cost modes
The global claims.economy.cost-mode option chooses how the per-chunk price is computed (N = the number of chunks the player already owns):
| Mode | Formula | Behaviour |
|---|---|---|
EXPONENTIAL (default) | chunk-cost × cost-multiplier ^ N | Large claims get progressively (steeply) more expensive. |
LINEAR | chunk-cost + cost-multiplier × N | Steady growth — cost-multiplier becomes a flat amount added per chunk. |
FIXED | chunk-cost | The same price for every chunk, whatever the claim size. |
claims:
economy:
cost-mode: EXPONENTIAL # EXPONENTIAL | LINEAR | FIXED
cost-mode is server-wide and applies to everyone after a /scs reload. The key is added to your config.yml automatically on update; an unknown or missing value falls back to EXPONENTIAL, so existing setups are unchanged.
How chunk cost works (EXPONENTIAL)
The formula for the Nth chunk is:
cost = chunk_cost * (cost_multiplier ^ (N - 1))
Where N is the number of chunks the player already owns + 1.
Example
With chunk-cost: 100 and cost-multiplier: 1.5:
| Chunk # | Cost |
|---|---|
| 1st chunk | 100 |
| 2nd chunk | 150 |
| 3rd chunk | 225 |
| 4th chunk | 337.5 |
| 5th chunk | 506.25 |
Example — LINEAR
With chunk-cost: 100, cost-multiplier: 50 and cost-mode: LINEAR, every chunk costs 50 more than the previous one: 100, 150, 200, 250, 300, …
The max-claim-price cap (0 = no cap) is applied to each chunk in every mode.
In EXPONENTIAL mode, set cost-multiplier: 1.0 for a flat rate per chunk, or higher values to make large claims progressively more expensive.
Both chunk cost and cost multiplier can be set per player via permissions (scs.limit.cost.<amount>, scs.limit.cost-multiplier.<amount>) or admin commands.
Paying past your chunk limit (Added in 2.6.6)
By default a player is hard-stopped the moment they reach their max-chunks limit. With pay-over-limit you let them keep claiming beyond that limit as long as they can pay a per-chunk fee. Chunks up to the limit are unaffected (free, or at the normal chunk cost); only the chunks past the limit are charged this extra fee.
claims:
economy:
pay-over-limit:
enabled: false
price: 1000.0 # price of the 1st chunk past the limit
mode: FIXED # FIXED | LINEAR | EXPONENTIAL
multiplier: 1.0
max-price: 0.0 # per-chunk cap, 0 = no cap
When enabled: true — with the economy on and price > 0 — the fee for each over-limit chunk is derived from how many chunks the player is already past the limit (over, starting at 0 for the first one):
| Mode | Fee for an over-limit chunk |
|---|---|
FIXED (default) | price — a flat fee for every chunk past the limit. |
LINEAR | price + multiplier × over |
EXPONENTIAL | price × multiplier ^ over |
max-price caps the fee of a single over-limit chunk (0 = no cap). This applies only to the chunk limit (max-chunks); the claim-count limit (max-claims) stays a hard limit and is never sold past. If the player can't afford the fee they are blocked as usual with the "not enough money" message.
Left at enabled: false (the default), max-chunks remains a hard limit and nothing changes. Like every economy feature, this needs Vault + an economy plugin.
Selling & Buying Claims
Players can put their claims up for sale and other players can buy them:
Selling
/claim sell [claim] <price>
Puts the specified claim up for sale at the given price. The claim appears in the sale list and on map integrations with a "for sale" style. A sale announcement can be broadcast to the server (configurable).
Cancelling a sale
/claim cancel-sale [claim]
Removes the claim from the sale listing.
Buying
/claim buy
Buys the claim you are standing in (if it is for sale). The price is deducted from the buyer's balance and added to the seller's balance. Full ownership — including all chunks, members, permissions, flags, and settings — transfers to the buyer.
The maximum sale price is capped by the max-price config value and optionally by the player's scs.limit.max-claim-price.<amount> permission.
Claim Tax / Rent
Claims can optionally incur a recurring tax that the owner must pay to keep them. Disabled by default — opt in via config:
claims:
tax:
enabled: false
taxation-period: 1d
amount-per-chunk: 1.0
grace-periods: 3
- taxation-period — how often the tax is charged. Any duration:
30s,15m,1h,2h,1d,1w… The owner is billed once per elapsed period. - amount-per-chunk — amount charged per owned chunk, per
taxation-period, summed across all of the owner's claims. - grace-periods — how many consecutive unpaid periods the owner can accumulate before all their claims are auto-unclaimed.
How it works
- Billing is timestamp-based, not tick-based: the plugin stores each owner's
last-tax-paidtime and charges for every wholetaxation-periodelapsed since. It survives restarts — if the server is offline across several periods, the next run bills for them all at once. - Total charged =
amount-per-chunk × number of chunks × periods elapsed. Chunk counts come straight from the database, so every owner is billed — not only those whose claims happen to be loaded. - On success the balance is debited and the meter advances by exactly the periods charged; any sub-period remainder carries over to the next run.
- If the balance doesn't cover the bill the owner is warned (when online) but not charged. Once unpaid periods exceed
grace-periods, every claim the owner has is unclaimed automatically.
The check frequency is auto-derived (taxation-period ÷ 10, floored at 30s) and is not configurable — it only affects how punctually a charge lands, never the amount. Use taxation-period to control billing.
Requires Vault and an economy plugin — without them the collector runs but charges nothing. A startup message is logged if amount-per-chunk is ≤ 0 or taxation-period is invalid.