Forever Winter Mods
Created at: September 3, 2026, last updated at: September 7, 2026
An interactive CLI for installing, enabling, and disabling mod triplets for The Forever Winter.
Mods for The Forever Winter are not individual files. A playable mod is a matching .pak, .ucas, and .utoc triplet. Copying individual files by hand can leave a partial installation that the game cannot use. Forever Winter Mods makes that contract explicit: it discovers a game install, reads compatible archives, and operates on complete triplets only.
The project is published as @sabinmarcu/foreverwinter.
How it works
Run fw-mods with no command to open a terminal list of the complete mod triplets in the selected mods directory. Each entry can be enabled or disabled as one operation, so its three required files always stay in the same state.
Use fw-mods install <archive> to inspect a .zip, .7z, or .7zip archive. A single new triplet installs immediately. Archives that contain several triplets, or a mod that is already present, open a selector first. Before installing, the CLI compares the archive timestamps with the installed triplet and labels each entry as new, update, older, or installed.
The CLI does not extract an archive with unexpected payloads. Documentation files are permitted, but other file types cause it to stop and ask the player to read the archive's installation instructions. It also does not delete installed mods. That is a deliberate boundary: the tool manages complete triplets and refuses to guess how an unfamiliar archive or unrelated file should be handled.
Terminology
Mod triplet
A set of three files with the same basename: .pak, .ucas, and .utoc. For example, Example_P.pak, Example_P.ucas, and Example_P.utoc make one triplet. The CLI only lists, toggles, or installs a mod when all three matching files are present.
Enabled and disabled
An enabled triplet keeps its normal filenames. A disabled triplet appends .disabled after each extension, such as Example_P.pak.disabled. The payload stays in the same directory; only the names change.
Mods directory
The directory under the game's Paks directory that contains mod triplets. The game installation normally uses Windows/ForeverWinter/Content/Paks beneath its Steam directory. The CLI accepts any existing directory when --path is supplied.
Archive
A .zip, .7z, or .7zip file containing one or more mod triplets. Archive folders are allowed, but each mod is identified by its own complete, same-named triplet.
Automatic mods-directory detection
At startup, the CLI first checks a supplied --path. It resolves that path to a real directory; a missing path or a file is rejected. Without --path, it searches common Steam installation locations on Windows and Linux.
On Windows, it checks C:\Program Files (x86)\Steam and C:\Program Files\Steam. On Linux, it checks ~/.steam/steam, ~/.local/share/Steam, and the Flatpak Steam location at ~/.var/app/com.valvesoftware.Steam/.local/share/Steam. For each existing Steam library, it looks for both The Forever Winter and Forever Winter below steamapps/common, then checks the game's Windows/ForeverWinter/Content/Paks directory.
Within an existing Paks directory, every subdirectory whose name contains mods is a candidate. Candidates are ordered by name: ~mods is preferred, then mods, then names ending in mods, and finally every other matching directory in alphabetical order. The first candidate is used.
This is intentionally a directory-name heuristic, not a Steam library parser. It does not read Steam configuration or scan arbitrary disks. If it cannot find a suitable directory, it prompts for the full path. You can also bypass detection explicitly:
yarn dlx @sabinmarcu/foreverwinter --path "/path/to/~mods"