Skip to content
ct

Class

CraftingService

Generated GDScript class reference for ItemVault.CraftingService.

Status
Current
Version
v1.0
Updated
2026-07-31

Stateless-by-convention recipe transaction service over real Item Vault inventories. A craft follows exactly one atomic path: validate recipe → validate requested quantity → resolve exact total inputs and outputs (per requested quantity) → verify every item identity resolves in the Item Vault database → preflight input availability → preflight output capacity AFTER planned consumption (dry run on a transient clone using Item Vault's own transaction semantics) → begin one atomic InventoryTransaction → consume inputs → insert net outputs → commit → return a typed CraftingResult On ANY failure: no inputs remain partially consumed, no outputs remain partially inserted, no items are duplicated, the result carries a stable reason, and authoritative Item Vault state is unchanged. [method can_craft] is a pure/read-only query: it never mutates metrics, logs, or inventory state. Safe for UI previews, tooltips, and AI scoring. Logging routes through Item Vault's [ItemVaultLogger]; install a structured-event sink via [method set_log_sink] to receive one [CraftingLog] per craft attempt and outcome. Counter metrics are always tracked on [member metrics].

Source: addons/item_vault/crafting/services/crafting_service.gd

Syntax

class CraftingService extends RefCounted

Members

NameKindSummary
operation_counterPropertyMonotonic craft operation counter. Persisted via [CraftingSave] so operation identity continues across sessions without duplication.
metricsProperty
MAX_TRACKED_REQUESTSField
set_log_sinkMethod
clear_log_sinkMethod
set_metricsMethod
reset_metricsMethod
set_operation_counterMethod
clear_request_trackingMethod
can_craftMethod
craftMethod
craft_requestMethod
requiredProperty
producedProperty
required_totalProperty
availableProperty
wantProperty