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.
ConditionsOptional rules that restrict when progress counts, for example 'only at night', or 'only with a specific weapon'.