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.
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.
maxLevel
integer | 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.