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.