Objectives
An objective is a single goal inside a contract: kill an animal, craft an item, hack a crate. A contract needs at
least one. The type field selects which objective it is and which fields it carries. Each per-type page in this
section lists its complete field set, shared and type-specific alike.
Every objective shares title, description and a conditions map (a keyed map, not an array) of
optional conditions that restrict when progress counts. Progress ticks only when the
objective’s main requirement and every attached condition are met.
Objectives also share an optional hideDetails flag (default false). The menu normally renders an
objective’s fields and conditions for players (the objective display).
Setting hideDetails: true suppresses that for the objective, leaving your title and description as the only
explanation players get.
Item and entity lists
Section titled “Item and entity lists”Fields that take items (items, item, fish, bait) or entities (entities) use Rust shortnames / prefab
names, lowercase: rifle.ak, scrap, animal_bear, not display names. One exception: the entities list on
Kill and Damage also matches the display names of
custom NPCs from plugins like BetterNpc or NpcSpawn.
Any item/entity list also accepts preset references written as @presetName. At runtime the plugin expands the
reference into that preset’s list, so you can define a list (e.g. all rifles) once and reuse it. Invalid shortnames are
dropped when the config loads.
Objective conditions
Section titled “Objective conditions”Contracts’ strength comes from the versatility and possibilities of how objectives can be augmented with conditions. The same objective with no condition can be given a whole new flavor and level of difficulty when you add conditions to it.
Pacing
Section titled “Pacing”Amount-based objectives can optionally shape how progress adds up over time:
