Commands
Contracts is driven mostly from its in-game menu, but a few commands let players tweak their view and let admins manage rotations and troubleshoot.
Players type the chat command in chat. Admins run console commands from the server console (RCON) or
the F1 client console. The chat command name is configurable. This page uses the default
contracts (see Command Configuration). Admin and debug commands require the
contracts.admin permission (see Permissions Configuration).
In the tables below, <angle brackets> mark required arguments and [square brackets] optional ones.
Player commands
Section titled “Player commands”Available to anyone with the contracts.use permission. Type them in chat.
| Command | Arguments | Description |
|---|---|---|
/contracts |
None | Opens the Contracts menu. |
/contracts hud |
None | Toggles the on-screen HUD on or off. |
/contracts scale |
[amount] |
Adjusts the plugin’s UI scale for the player. amount should be between 0.5 and 1.0 (default). Players should set this to their Rust UI scale. |
/contracts score |
None | Shows the player their current Contract Score (CS) in chat. |
⭐ Premium /contracts hud toggles the on-screen HUD, which is premium. On the lite edition the HUD
does not exist, so the argument is unrecognized and the command simply opens the menu.
Admin commands
Section titled “Admin commands”Require the contracts.admin permission. Run them from the server console or the F1 console.
| Command | Arguments | Description |
|---|---|---|
contracts.rotate_category |
<categoryId> |
Immediately re-rolls one category’s active contracts and reschedules its next rotation. |
contracts.add_to_rotation |
<categoryId> <contractId> |
Puts one specific contract live in a category’s active rotation without re-rolling the rest. Also adds the contract to the category’s contract list if it is missing. If the category is dormant (had no contracts), this starts a fresh rotation. |
contracts.remove_from_rotation |
<categoryId> <contractId> [confirm] |
Removes one contract from the active rotation only (it stays a candidate for the next cycle). In-progress players lose their work on that contract, logged as expired. Players who already completed it still get their reward. If any player has work in progress, the command reports the impact and does nothing until you re-run it with confirm. |
contracts.reset_all_progress |
None | Wipes every player’s contract progress and all unclaimed rewards. Cannot be undone! |
contracts.view_score |
<steamId|name> |
Shows a player’s Contract Score (CS). |
contracts.give_score |
<steamId|name> <amount> |
Grants a player Contract Score (CS). amount must be a whole number of at least 1. |
contracts.take_score |
<steamId|name> <amount> |
Removes Contract Score (CS) from a player. Their CS never drops below zero. |
contracts.wipe_scores |
None | Resets every player’s Contract Score (CS) to zero. Cannot be undone! |
Debug commands
Section titled “Debug commands”Also require contracts.admin. These are for troubleshooting and support, so you won’t need them in
normal operation. Output prints to the console you run them from.
| Command | Arguments | Description |
|---|---|---|
contracts.debug.hooks |
None | Lists every game hook Contracts uses and whether it is currently subscribed or not. Contracts automatically unsubscribes from hooks when no active contract’s objective needs it. |
contracts.debug.reset_data |
<yes> |
Resets all plugin data (contracts, categories, presets, progress, preferences, pending rewards) to defaults, then reloads the plugin. You must pass the literal yes to confirm. Cannot be undone! |
contracts.debug.refresh.all |
None | Rebuilds every objective cache from the current data. |
contracts.debug.tainted_items |
None | Prints how many items are flagged as tainted in the loot objective cache. This usually stays under 1000. Clear if it exceeds 100k (never happens in practice). |
contracts.debug.clear_tainted_items |
None | Clears the tainted-item set from the loot objective cache. |
contracts.debug.transfers |
None | Prints how many in-flight item transfers are tracked in the loot objective cache. Transfers should typically be completed within a single tick. It should ideally be 0 all the time. |
contracts.debug.clear_transfers |
None | Clears tracked item transfers from the loot objective cache. You can usually safely run this, because it’s unlikely you’ll clear any active transfers. |
Cache inspection
Section titled “Cache inspection”Each objective type keeps a cache for fast objective progress lookups on high-frequency game events. These commands dump the contents of one cache (or all of them) to the console for diagnosis. You will likely never need to run these. They’re only documented here for completeness and for support purposes.
| Command | Arguments | Description |
|---|---|---|
contracts.debug.cache.all |
None | Dumps every objective cache. |
contracts.debug.cache.attackers |
None | Dumps the attackers cache. |
contracts.debug.cache.kill |
None | Dumps the kill objective cache. |
contracts.debug.cache.damage |
None | Dumps the damage objective cache. |
contracts.debug.cache.loot |
None | Dumps the loot objective cache. |
contracts.debug.cache.gather |
None | Dumps the gather objective cache. |
contracts.debug.cache.harvest |
None | Dumps the harvest objective cache. |
contracts.debug.cache.craft |
None | Dumps the craft objective cache. |
contracts.debug.cache.heal |
None | Dumps the heal objective cache. |
contracts.debug.cache.fishing |
None | Dumps the fishing objective cache. |
contracts.debug.cache.plant |
None | Dumps the plant objective cache. |
contracts.debug.cache.card_swipe |
None | Dumps the card-swipe objective cache. |
contracts.debug.cache.crate_hack |
None | Dumps the crate-hack objective cache. |
