Permissions
Controls who can use Contracts, who counts as an admin, and how many contracts each group of players may run and pin to their HUD.
{ "Permissions": { "Use Contracts Features": "contracts.use", "Admin": "contracts.admin", "Max Active Contracts": { "contracts.use": 3, "contracts.vip": 5, "contracts.admin": -1 }, "Max Paused Contracts": { "contracts.use": 0, "contracts.vip": 0, "contracts.admin": -1 }, "Max Tracked Contracts (HUD)": { "contracts.use": 2, "contracts.vip": 5, "contracts.admin": -1 } }}Fields
Section titled “Fields”| Field | Type | Default | Description |
|---|---|---|---|
Use Contracts Features | string | "contracts.use" | Permission a player needs to use contracts at all. Registered by the plugin on load. |
Admin | string | "contracts.admin" | Permission for admin commands. Registered by the plugin on load. |
Max Active Contracts | map | {"contracts.use":3,"contracts.vip":5,"contracts.admin":-1} | How many contracts a player can have active at once, per permission. A player with several of these permissions gets the highest cap. -1 means unlimited. Keys can be any permission name, including ones from other plugins. |
Max Paused Contracts ⭐ Premium | map | {"contracts.use":0,"contracts.vip":0,"contracts.admin":-1} | How many contracts a player can keep paused at once, per permission. A player with several of these permissions gets the highest cap. -1 means unlimited. A player who holds none of them cannot pause, which is why every row ships at 0. Pausing is premium-only. |
Max Tracked Contracts (HUD) ⭐ Premium | map | {"contracts.use":2,"contracts.vip":5,"contracts.admin":-1} | How many contracts a player can track on the HUD at once, per permission. A player with several of these permissions gets the highest cap. The plugin caps this at 25, and -1 (unlimited) also lands on 25, unless you turn on "Ignore HUD Pin Limit" in Misc. |
How the limits resolve
Section titled “How the limits resolve”Max Active Contracts, Max Paused Contracts and Max Tracked Contracts (HUD) are maps from a
permission to a number.
You grant the permissions to players (or groups) with your framework’s permission system, then set a
limit per permission here.
When a player holds more than one of the listed permissions, the limit resolves like this:
- The player gets the highest limit among the permissions they hold. A VIP who also has
contracts.usegets5, not3. - If any held permission is set to
-1, the player is unlimited, regardless of the other numbers. - A value below
-1is treated as-1(unlimited). Max Tracked Contracts (HUD)is the exception to-1. It stops at 25 pins per player, and-1resolves to 25 as well. See the HUD pin limit below.- A player holding none of the listed permissions has no limit applied. For that reason, it’s important to include the
Use Contracts Featurespermission in the map. Max Paused Contracts: A player holding none of its listed permissions gets0, so they cannot pause anything.
The HUD pin limit
Section titled “The HUD pin limit”Every HUD update does work for each contract a player has pinned, and objective progress can tick
many times a second. Think of a Damage objective with a minigun, that’s exactly how I make performance decisions like this when developing Contracts. So Max Tracked Contracts (HUD) stops at 25 pins per player, whatever the
config says. A value above 25 resolves to 25 and the plugin prints a warning on load. -1 resolves
to 25 too, quietly, since it is the shipped default for contracts.admin.
The HUD scrolls, so nothing is hidden by the limit, it only bounds how much the plugin redraws.
To lift it, set "Ignore HUD Pin Limit": true in the Misc section. Then
Max Tracked Contracts (HUD) accepts any value again and -1 means unlimited. Read the note on that
page first, because there’s a real performance cost.
- Contracts registers permissions listed in the config file at startup.
