Search is available after the production docs build.

Browse Docs
DocsRelease & UpdatesLauncher Individual Module Updates

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

  1. Read the release index channel metadata.
  2. Fetch the selected edition's echo-release.json.
  3. Fetch the pack manifest referenced by that release metadata.
  4. Expand moduleRequirements into managed files for the edition's artifact family.
  5. Compare installed files by path, version, size, and SHA-256.
  6. Download only missing, changed, or corrupt files that have an individual release asset URL.
  7. 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 |