Skip to content
Contractsv1.9.0

Player Workbench

⭐ Premium

Progress counts only when the player’s craft level is within the specified bounds at the moment of the action. Craft level is the workbench benefit the game itself tracks: 0 with no workbench in range, otherwise the highest level (1 to 3) among the workbenches the player is standing at.

{
"type": "PlayerWorkbench",
"minLevel": 2
}
FieldTypeDescription
typestringExactly 'PlayerWorkbench'
minLevelinteger | null (0 to 3)Minimum craft level, 0 to 3. Follows the game's crafting rule, so a higher tier covers a lower requirement: a minLevel of 2 is satisfied at a level 2 or level 3 workbench. Null (or omitted) means no lower bound.
maxLevelinteger | null (0 to 3)Maximum craft level, 0 to 3. A maxLevel of 0 requires the player to have no tier workbench in range at all. Null (or omitted) means no upper bound.
  • The condition tests the instant the progress lands. On Craft objectives that is when the item finishes crafting, not when it is queued. A player who queues items at a bench and walks away gets no progress, they need to still be at the bench when each item completes. This is because the craft objective credits progress when the item finishes crafting, so that’s also when conditions are checked.
  • Bounds follow the game’s crafting rule: a higher level bench covers a lower requirement, so minLevel: 2 is satisfied at a level 2 or level 3 workbench.
  • Range is the game’s own workbench radius, the same one that unlocks bench-locked recipes. There is no custom distance check. It should work with other plugins that change the workbench radius. As long as you can see the visual workbench indicator on your HUD, the condition will be satisfied.
  • maxLevel: 0 flips the condition around: the player must have no workbench in range at all.
  • Either bound can be null (or omitted entirely) for “no limit on that side”, but at least one bound is required. A condition with neither bound would always be satisfied, so it is invalid and the contract will not load.
  • If minLevel is greater than maxLevel, the plugin swaps them and logs a warning. Values outside 0 to 3 are clamped into range.

Craft bandages at a level 2 workbench or better:

{
"type": "Craft",
"amountRequired": 10,
"items": ["bandage"],
"conditions": {
"at_workbench": {
"type": "PlayerWorkbench",
"minLevel": 2
}
}
}

Craft stone tools out in the wild, away from any workbench:

{
"type": "Craft",
"amountRequired": 5,
"items": ["stonehatchet", "stone.pickaxe"],
"conditions": {
"no_workbench": {
"type": "PlayerWorkbench",
"maxLevel": 0
}
}
}