Repair
Requires the player to repair things. The target field decides what gets
repaired and what a unit of progress is.
{ "type": "Repair", "title": "Service your kit", "description": "", "amountRequired": 5, "conditions": {}, "target": "Item", "targets": ["jackhammer"]}{ "type": "Repair", "title": "Patch up the base", "description": "", "amountRequired": 1000, "conditions": {}, "target": "Entity", "targets": ["wall", "foundation", "floor"]}Fields
Section titled “Fields”| Field | Type | Description |
|---|---|---|
type | string | Exactly 'Repair' |
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 much the player must repair, in the unit set by 'target': repair actions with 'Item', HP restored with 'Entity'. |
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. |
target | enum: Item | Entity | What gets repaired and what a unit is. 'Item' counts repair actions, one per repair bench repair or workbench refill, and the targets list holds item shortNames. 'Entity' counts HP restored by hammering structures, deployables or vehicles, and the targets list holds entity short prefab names. Repairing a vehicle module at a car lift counts as 'Entity' HP restored to the module, not as an item repair. |
targets | string[] | What must be repaired, named by 'target'. With 'Item', item shortNames, lowercase dotted (e.g. jackhammer, rifle.ak, metal.plate.torso). With 'Entity', entity short prefab names (e.g. wall, foundation, furnace, autoturret_deployed, minicopter.entity). Empty = anything repairable. |
What counts as a unit of progress
Section titled “What counts as a unit of progress”- With
"Item", a unit is one repair action: a successful repair at a repair bench, or a workbench refill. Thetargetslist holds item shortnames, so “repair 5 weapons” is written asamountRequired: 5with the weapons listed. - With
"Entity", a unit is one HP restored: hammer swings on building blocks, deployables, vehicles, boats and trains, plus vehicle module repairs at a car lift. Thetargetslist holds entity short prefab names, so “restore 3000 HP of structures” isamountRequired: 3000.
An empty targets list means anything repairable counts. The two targets are
not combinable in one objective, so use two objectives if you want both.
What counts as a repair
Section titled “What counts as a repair”- Repair bench repairs count as
"Item"actions, one per repaired item. - Workbench refills count as
"Item"actions too. Items like the jackhammer cannot be repaired at a bench, but placing them into a workbench and refilling them is the game’s only repair path for them, and it counts. - Hammer swings count as
"Entity"HP. Entity amounts move in chunks rather than one point at a time. - Car lift module repairs count as
"Entity"HP restored to the module, even though the lift technically repairs the module item. A “repair vehicles” contract catches both the hammer and the lift this way. Only non-module items count toward"Item"progress.
A repair that restores nothing counts nothing. Swinging at a full-health wall, hitting the recently-damaged window, or lacking resources all progress zero. Hammering an under-construction siege weapon is construction, not repair, and never counts.
No anti-farm guard
Section titled “No anti-farm guard”If the game allowed the repair, it counts, whoever the target belongs to. A player can damage their own stuff and repair it to farm a repair objective. Re-repairing your own walls is paced by the repair’s resource cost. For that reason, it is highly recommended that you put a cooldown on the objective.
- The editor suggests curated structure and deployable names for the
"Entity"target, but any valid short prefab name works. The editor only warns that a name exists, never that it is repairable. A valid but unrepairable entity simply never progresses.
