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.
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.
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[]
Clone item shortNames to create (e.g. clone.corn, clone.hemp). Empty = any clone.
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 number of clones a cutting produces. That count
scales with the plant’s genetics: better Yield genes yield more clones per
cutting, so a single cutting can advance the objective by more than one.
See also Harvest for taking the yield and
Plant for planting seeds.
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 }:
composition is 1 to 6 letters drawn from G (Growth), Y (Yield), H (Hardiness), W (Water), X (Empty).
Order is ignored, only the count of each letter matters, so GGYYYY, YGYGYG, and YYYYGG are the same requirement.
mode controls 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
with X (Empty), so Exact "GGYY" means exactly GGYYXX. (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.