Skip to content
Contractsv1.7.0

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 requirement display). Setting hideDetails: true suppresses that for the objective, leaving your title and description as the only explanation players get.

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.

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.

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.

Amount-based objectives can optionally shape how progress adds up over time: