Release & Updates
Launcher Individual Module Updates
How the launcher resolves moduleRequirements and updates only changed module files.
Launcher Individual Module Updates
Individual module updates are driven by the pack manifest's moduleRequirements array. This is the update path that lets the launcher replace one changed module instead of redownloading a whole Ashfall edition.
Manifest Shape
{
"moduleArtifactFamily": "neoforge",
"moduleRequirements": [
{
"id": "echoashfallprotocol",
"version": "1.0.0",
"required": true
}
]
}
Artifact Families
| Family | Default artifact |
| --- | --- |
| echo-addon | <module>-<version>.echo-addon |
| neoforge | <module>-<version>-neoforge.jar |
| standalone | <module>-<version>-standalone.jar |
Each requirement may override assetName, path, sha256, size, required, side, or artifactFamily when the default is not enough.
Update Flow
- Read the release index channel metadata.
- Fetch the selected edition's
echo-release.json. - Fetch the pack manifest referenced by that release metadata.
- Expand
moduleRequirementsinto managed files for the edition's artifact family. - Compare installed files by path, version, size, and SHA-256.
- Download only missing, changed, or corrupt files that have an individual release asset URL.
- Fall back to the full pack archive only when the changed file cannot be resolved individually.
Edition Families
| Edition | Module artifact family |
| --- | --- |
| Ashfall Native Edition | .echo-addon |
| Ashfall NeoForge Edition | -neoforge.jar |
| Ashfall Standalone Edition | -standalone.jar |