Dependency Checking
Estimated reading time: 2 minutesModLoader runs dependency checks when loading Mods to ensure version constraints in boot.json's dependenceInfo are satisfied. Dependency checks are performed by DependenceChecker before a Mod is loaded.
Concepts
ModOrderContainer
ModLoader uses an internal Mod order container to manage load order. Load order affects:
- Override behavior when Mod names collide (later-loaded overrides earlier)
- Dependency resolution (dependency targets must load before dependents)
Final load order is determined by merging local, remote, localStorage, and IndexedDB lists; DependenceChecker runs when each Mod is loaded.
Check Flow
For each Mod, ModLoader calls DependenceChecker.checkFor() to:
- Read boot.json: Parse the
dependenceInfofield from the Mod zip - Check each dependency: Verify target Mod/ModLoader/GameVersion exists and version matches
- On failure: Skip loading the Mod and record an error
dependenceInfo Declaration
Declare dependencies in boot.json via the dependenceInfo array:
Dependency Target Types
Version Constraint Syntax
Versions follow Semantic Versioning and are validated with semver:
Tip
For GameVersion, only the main version is compared; anything after the first - is ignored.
Notes
- Dependent Mods must load before the Mod that depends on them
- If Mod A depends on Mod B and Mod B is not loaded or version is incompatible, Mod A is skipped
- Game version checking needs an adapter Mod (e.g., CheckGameVersion for DoL)
