Harvest
Requires the player to harvest plants, whether they grew them or found them growing wild. Counts the yield amount taken.
{ "type": "Harvest", "title": "Harvest pumpkins", "description": "", "amountRequired": 50, "conditions": {}, "items": ["pumpkin"], "source": "Planted", "genes": []}Fields
Section titled “Fields”| Field | Type | Description |
|---|---|---|
type | string | Exactly 'Harvest'. |
title | string | Short, human-readable name. Must not be empty. |
description | string | A blurb of 1 to 3 sentences. May be empty if the title is self-explanatory. |
amountRequired | integer (≥ 1) | How many produce items the player must harvest. |
cooldown | object | null | Optional pacing limit on how fast progress adds up: at most maxAmount units of progress count in any sliding window of windowSeconds. Absent means progress adds up freely. While the window's budget is used up, further progress is ignored and the player sees a countdown to the next available moment. |
burst | object | null | Optional clustering requirement: actions only count when they arrive clustered, at least amount units within one trailing window of windowSeconds forming one burst. When present, amountRequired counts completed bursts instead of raw actions. Actions that age out of the window without completing a burst never count. Absent means no clustering. |
conditions | map | Optional conditions that restrict when progress counts. Progress is recorded only when the objective's main requirement and all of these conditions are met. Use an empty map for none. |
hideDetails | boolean | When true, hides this objective's in-game condition strip and details popup, so the description is the only explanation players get. Title, description and progress still show. Absent means false. |
items | string[] | Harvested produce item shortNames (e.g. corn, pumpkin, black.berry). Empty = any plant. |
source | enum: Any | World | Planted | Whether the harvested plant must be wild (World), player-grown (Planted), or either (Any). |
genes | object[] | Optional gene filter: a list of { mode, composition } requirements where a plant counts if it matches at least one of these (OR). An empty or absent list (the default) counts any plant. composition is 1-6 letters from G/Y/H/W/X (Growth, Yield, Hardiness, Water, Empty) matched as a multiset (order ignored), and mode is 'Exact' (the full six-slot genome, short compositions padded with Empty) or 'AtLeast' (at least the listed count of each named type). |
- Progress increments by the harvested item amount (the plant’s yield).
sourcefilters by the plant’s origin: who it belongs to, not where it sits:World: the plant grew wild (no owner).Planted: a player grew it. A player-grown plant counts asPlantedwherever it was grown, in a planter or in the ground.Any: either.
- In some cases, Harvest overlaps with Loot: picking a
wild pumpkin is both a Harvest and a Loot. This is because both involve the same Rust event triggered (
OnCollectiblePickup). - See also Cloning for taking cuttings and Plant for planting seeds.
Genes Property
Section titled “Genes Property”The optional genes field restricts the objective to specific gene
compositions. It is a list of requirements where any matching requirement counts (OR). An empty or absent list counts any gene composition (the default).
Each requirement is { mode: "Exact" | "AtLeast", composition: string }:
compositionis 1 to 6 letters drawn fromG(Growth),Y(Yield),H(Hardiness),W(Water),X(Empty). Order is ignored, only the count of each letter matters, soGGYYYY,YGYGYG, andYYYYGGare the same requirement.modecontrols how the composition is matched:Exact(default): the plant’s full six-slot genome must equal the composition. A composition shorter than six letters pads the remaining slots withX(Empty), soExact "GGYY"means exactlyGGYYXX. (2 Growth, 2 Yield, 2 Empty in any order)AtLeast: the plant must have at least the listed count of each named gene type; the other slots can be anything.AtLeast "YYYY"counts any plant with 4 or more Yield genes.
{ "type": "Harvest", "title": "Harvest top-tier corn", "amountRequired": 50, "items": ["corn"], "source": "Planted", "genes": [{ "mode": "Exact", "composition": "GGYYYY" }]}A genes filter only applies to grown plants. Instant world pickups (wild
mushrooms, hemp or berries) carry no genome, so an objective with a genes filter never counts them.
A Harvest objective with source set to World and a genes filter is effectively never completable: wild plants grow with random genes, so they almost never match a specific filter, and instant world pickups carry no genome at all. The plugin corrects such objectives to source: "Any" automatically.
