From f1dd0f3d718430b202018d3d5d883bc33bc7b21a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chip=20Wolf=20=E2=80=AE?= Date: Fri, 26 Jun 2026 16:18:53 +0100 Subject: [PATCH] packwiz: re-load LOAD_ENV_FROM_FILE after the installer runs (#4137) --- docs/mods-and-plugins/packwiz.md | 2 ++ scripts/start-setupModpack | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/docs/mods-and-plugins/packwiz.md b/docs/mods-and-plugins/packwiz.md index 3d558bef..dfa8779a 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 26de549a..98410da4 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 }