Content IDs & Namespaces

Every public custom definition uses a ContentId:

owner.namespace:local_name
community.example:flame_cleave
community.example:items.ember_axe.name

ContentId.Parse normalizes valid IDs to lowercase. The namespace must equal the registered owner for registration, activation, and removal.

  • Mod IDs are lowercase dotted segments, start with a letter, and are at most 128 characters.
  • Full content IDs contain exactly one colon and are at most 256 characters.
  • Local names start with a letter and may use lowercase letters, digits, underscores, dots, and hyphens without empty segments.
  • Keep released IDs stable when a save or another mod may reference them.
  • Use distinct localization IDs instead of reusing a definition ID.
  • Register and activate dependencies before content that references them.

Use ContentId.TryParse when invalid user input should return an error rather than throw.