Skip to content
Contractsv1.7.0

Repair

⭐ Premium

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"]
}
FieldTypeDescription
typestringExactly 'Repair'
titlestringShort, human-readable name. Must not be empty.
descriptionstringA blurb of 1 to 3 sentences. May be empty if the title is self-explanatory.
amountRequiredinteger (≥ 1)How much the player must repair, in the unit set by 'target': repair actions with 'Item', HP restored with 'Entity'.
cooldownobject | nullOptional 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.
burstobject | nullOptional 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.
conditionsmapOptional 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.
hideDetailsbooleanWhen 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.
targetenum: Item | EntityWhat 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.
targetsstring[]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.
  • With "Item", a unit is one repair action: a successful repair at a repair bench, or a workbench refill. The targets list holds item shortnames, so “repair 5 weapons” is written as amountRequired: 5 with 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. The targets list holds entity short prefab names, so “restore 3000 HP of structures” is amountRequired: 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.

  • 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.

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.