diff --git a/docs/mods-and-plugins/packwiz.md b/docs/mods-and-plugins/packwiz.md index 3d558befda2..dfa8779aa3e 100644 --- a/docs/mods-and-plugins/packwiz.md +++ b/docs/mods-and-plugins/packwiz.md @@ -13,6 +13,8 @@ docker run -d --pull=always \ packwiz modpack definitions are processed before other mod definitions (`MODPACK`, `MODS`, etc.) to allow for additional processing/overrides you may want to perform (in case of mods not available via Modrinth/CurseForge, or you do not maintain the pack). +If the pack ships a `.env` file that you reference with `LOAD_ENV_FROM_FILE`, that file is re-loaded immediately after the packwiz installer runs, so the freshly downloaded values are applied to the remaining startup stages. Note that `TYPE` and `VERSION` are resolved earlier (before the deploy is dispatched), so a pack-provided `.env` cannot change those from within packwiz; use `LOAD_ENV_FROM_GENERIC_PACK` or `LOAD_ENV_FROM_ARCHIVE` for those. + !!! note packwiz is pre-configured to only download server mods. If client-side mods are downloaded and cause issues, check your pack.toml configuration, and make sure any client-only mods are not set to `"both"`, but rather `"client"` for the side configuration item. diff --git a/scripts/start-setupModpack b/scripts/start-setupModpack index 26de549a18b..98410da4024 100755 --- a/scripts/start-setupModpack +++ b/scripts/start-setupModpack @@ -50,6 +50,16 @@ function handlePackwiz() { logError "Failed to run packwiz installer" exit 1 fi + + # packwiz may have just downloaded/updated the env file referenced by + # LOAD_ENV_FROM_FILE. The initial load in start-configuration happened + # before this point, so re-load it now to pick up the pack's values for + # the remaining setup stages (server.properties, JVM args, etc.). + if [[ ${LOAD_ENV_FROM_FILE:-} ]]; then + if ! loadEnvFromFile "${LOAD_ENV_FROM_FILE}"; then + exit 1 + fi + fi fi }