concepts dependencies - cheaterbob/CR-Guide GitHub Wiki
Dependencies and load order
Required dependencies load first. A missing, incompatible, invalid, conflicting, or disabled required dependency disables the dependent pack with an explanation.
Optional dependencies affect ordering only when a compatible enabled pack is present. Their absence does not disable the consumer.
loadAfter and loadBefore are soft ordering hints. Explicit conflicts and overrides should be used when two packs cannot safely coexist or intentionally target the same public slot.
Required and optional dependencies
"dependencies": [
{ "id": "core", "version": ">=0.1.0" },
{ "id": "example.shared-library", "version": ">=1.2.0" }
],
"optionalDependencies": [
{ "id": "example.extra-art", "version": ">=1.0.0" }
]
Required dependencies are part of the pack's validity. Optional dependencies may enable compatibility or ordering but must have a safe absence path.
Deterministic ordering
The resolver combines:
- required dependency edges;
- compatible optional dependency edges;
loadAfterandloadBeforehints;- numeric
priority; - pack ID as the final deterministic tie breaker.
Filesystem enumeration order is never an API. Do not rely on folder names to decide which pack loads last.
Conflicts and overrides
Use conflicts when two complete packs cannot safely run together. Use overrides for each exact content or asset-slot ID a pack intentionally replaces. An override declaration is authorization, not a wildcard and not proof that the replacement itself is valid.
"conflicts": ["example.incompatible-pack"],
"overrides": ["core:weapon/pistol/body"]
If multiple enabled packs replace the same slot without a permitted resolution, the loader reports a conflict and preserves a deterministic safe baseline.
Catalog installation
The catalog installer resolves compatible required dependencies before downloading and displays the full transaction. Optional dependencies are not installed automatically. Catalog dependency and conflict metadata must match the downloaded release manifest exactly.
See Installing mods for player behavior and Publishing to the community catalog for release metadata.