Skip to content

Model

Defines the authoring and lookup layer for inventory items.

This folder contains the core types that describe what an item is and how it is resolved at runtime.


Purpose

Provide the source of truth for item identity and lookup.


What Lives Here

  • ItemDefinition → ScriptableObject describing an item
  • ItemDatabase → concrete registry for item lookup
  • IItemDatabase → read-only contract for item resolution

Important Notes

  • This layer defines authoring and lookup only
  • It does not implement container behaviour or mutation logic
  • It is safe to reference from runtime and editor systems

Usage Guidance

ItemDefinition

Represents a single item definition.

Includes:

  • stable identifier (guid)
  • presentation data
  • stack limits
  • classification (category, tags)
  • optional gameplay hooks

ItemDatabase

Provides lookup of item definitions by GUID.

  • lookups are case-insensitive
  • keys are normalised before comparison
  • duplicate entries may resolve to the last registered definition

May include an optional placeholder for missing items.


IItemDatabase

Read-only contract for item lookup.

Allows systems to resolve items without depending on concrete implementations.


Not for Production Use

This folder defines items; it does not hold what a player is carrying

This folder does not:

  • Enforce stacking rules
  • Perform inventory mutation
  • Provide container storage
  • Enforce authority
  • Define UI behaviour

  • ../
  • ../Stacks/README.md
  • ../../Containers/README.md