mirror of
https://github.com/vladtrc/iw4L
synced 2026-10-26 02:11:39 -04:00
a2f189df10
Prepare progression and loading through Bevy scheduling, preserve round HUD and bombsite props, restore grenade and T5 shadow presentation, and keep menus usable while classes load. Report update progress and continue startup after update failures. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
56 lines
3.4 KiB
Markdown
56 lines
3.4 KiB
Markdown
# Portable Windows folder
|
|
|
|
Players download `iw4l-windows.zip` from the GitHub release; it holds the executable.
|
|
A server operator hands out the `.iw4l-server` descriptor separately.
|
|
`make release` packs every `.iw4l-server` in the root folder unchanged into `iw4l-windows-community.zip`; `make launcher windows` writes the same under `dist/windows/`.
|
|
The archive password is `t.me/contextrot`. Extract into a dedicated writable folder:
|
|
|
|
```text
|
|
IW4L/
|
|
├── iw4l.exe
|
|
├── Modern Warfare 2.lnk
|
|
├── Black Ops.lnk optional
|
|
├── Modern Warfare 3.lnk optional
|
|
├── community.iw4l-server optional
|
|
└── iw4l-artifacts/ created on first launch: saves, caches, demos, logs
|
|
```
|
|
|
|
`iw4l.exe licenses` prints the licence and notice texts compiled into the executable.
|
|
The runtime reads the installations those shortcuts point to. MW2 multiplayer data
|
|
is required for the menu; BO1 and MW3 are optional. For each missing title,
|
|
`iw4l.exe` checks the Steam libraries and creates its shortcut when exactly one
|
|
install has supported multiplayer data. Existing shortcuts and titles already
|
|
found in the configured folders are preserved. If several installs qualify,
|
|
create a shortcut to the one you want. If MW2 is still missing, the launcher shows
|
|
the folders it tried and how to add the shortcut: right-click inside the launcher
|
|
folder, New > Shortcut, paste the game folder path.
|
|
|
|
Launch `iw4l.exe`. Before starting the game or contacting QUIC, it checks its
|
|
community's HTTPS manifest. An unchanged executable starts normally. An update
|
|
is downloaded, decompressed with a size limit and verified against SHA-256.
|
|
A temporary copy of the same executable waits for the original process, replaces
|
|
it and restarts with the original arguments. Failed installation or spawning
|
|
restores the previous executable. There is no permanent second executable.
|
|
|
|
The temporary files are `iw4l.update.exe`, `iw4l.previous.exe` and a helper in
|
|
`%TEMP%`; the next verified startup removes the backup and helper. The lock file
|
|
`iw4l-artifacts/iw4l.update.lock` serializes update checks; the artifacts directory
|
|
is created as needed beside the executable. `iw4l.update-helper` records cleanup.
|
|
Update checks log DNS/TLS settings, HTTP results, download bytes/percentage/speed,
|
|
verification and handoff steps to the console and `iw4l-artifacts/logs/`.
|
|
If checking or downloading fails, the reason is logged and the installed game
|
|
starts with the selected community. Online play still needs a reachable master
|
|
and a compatible version. DNS/connect waits are limited to 8s; each HTTP request to 180s.
|
|
Without a community descriptor, local development can launch without checking.
|
|
|
|
A descriptor pins a public CA and the master's TLS name for both HTTPS and QUIC.
|
|
Use a descriptor from a trusted source: its operator can distribute executable
|
|
updates. Its settings take precedence over the legacy master environment keys.
|
|
One adjacent `.iw4l-server` is selected automatically. With several, choose under
|
|
Options → Community Servers → Apply & Restart; the choice is saved beside the
|
|
executable in `iw4l.community.json`. With no choice, the menu opens offline; `IW4L_COMMUNITY` overrides the saved choice.
|
|
Invalid adjacent descriptors are skipped. See [`MASTER.md`](MASTER.md).
|
|
|
|
On Windows, the executable directory is the working directory; `.env` and
|
|
`IW4L_GAMES` can override game discovery. Publishing: [`DEPLOY.md`](DEPLOY.md).
|