SteonMod
IW4L screenshot
Rust rewritePlayableVerifiedFeatured

IW4L

A standalone, experimental Call of Duty: Modern Warfare 2 runtime written from scratch in Rust on Bevy and wgpu. Loads your own MW2 files.

The base layer of the 2010 Rust Rewrite Mashup and many forks since. Point it at your MW2 install: it reads the game data and never modifies your game folder.

IW4L

IW4L is an open-source runtime for Call of Duty: Modern Warfare 2 (2009), written in Rust with Bevy. Point it at a copy of MW2 you already own and it loads that installation's maps, models, textures and weapons into its own engine. You can try implemented movement and combat on multiplayer maps, then inspect or change how those systems work.

Bomb planting in IW4L Tanker explosion in IW4L

What you can try

Explore maps, fight bots, and record and replay demos. Gameplay remains incomplete; expect missing behavior, bugs and desyncs. The asset readers also cover MW3 and Black Ops.

APIs, configuration, caches and the wire protocol change between commits; multiplayer peers must run the same build.

Windows: prebuilt release

  1. Download iw4l-windows.zip from Releases and extract it into an

    empty writable folder. The archive password is t.me/contextrot.

  2. Launch iw4l.exe. It finds MW2 in your Steam libraries and creates a

    Modern Warfare 2.lnk shortcut next to itself. For an install outside Steam, create that shortcut to your MW2 folder yourself.

For online play, put the .iw4l-server file you received from a server operator next to iw4l.exe. With it the game finds that master and updates itself on launch. Details: Windows guide.

Build and run

Install Rust through rustup and GNU Make. Build dependencies cover Linux's C/C++ toolchain and system libraries, and macOS's Xcode command line tools. Windows instructions cover building and arranging a portable folder.

You need your own installed MW2 Multiplayer data. IW4L distributes no game assets and reads installations without patching or replacing their files. Caches, demos and logs go under iw4l-artifacts/; Linux settings use a separate configuration directory described in the run guide.

From the repository root:

cp .env.example .env
# Edit .env: set IW4L_GAMES to the folder containing your game installations.
make map mp_boneyard CMDS='wait world; spawn 0; force_match_start; bot add 3'

This builds the optimized play profile and starts a local match with three bots. force_match_start skips the warmup that otherwise freezes movement.

Inside the engine

AreaImplementation
AssetsNative FastFile readers convert game data into a shared intermediate representation.
ShadersRetail Direct3D 9 Shader Model 3 bytecode is translated to WGSL.
RenderingWorld geometry, models and effects feed one sorted draw-surface list.
SimulationServer authority, client prediction and replay share one simulation step over explicit Bevy ECS state.
NetworkingCustom UDP traffic; a QUIC master provides browsing and relaying. The host simulates the match.

Where to go next

This whole project is written by an LLM.

Acknowledgements and license

OpenAssetTools and its iw4x-x64 fork informed asset layouts; IW4x informed asset and protocol behavior; KisakCOD informed engine structure. Ghidra was used to inspect the original binaries.

IW4L's source is licensed under Apache 2.0. Preserve required attribution and bundled font license texts when redistributing; see NOTICE. Original game assets and trademarks belong to their owners. IW4L is unaffiliated with them.

From the project's repository, fetched . Images load from GitHub.

Releases

Feed
  1. v0.1.0-demo.3 Steam discovery for MW3 and Black Ops Pre-release 93
    Release notes

    Adds automatic Steam discovery for Modern Warfare 3 and Black Ops (BO1), alongside Modern Warfare 2. Each title is discovered independently; existing shortcuts remain intact, and multiple matching installs require a manual choice.

    Commit: d352dbdfd877. Built for Windows x86-64 with the play profile; protocol 10.

    Validation: Linux launcher compilation, Windows discovery compilation, the full Windows release build, and fixture checks for title selection, existing shortcuts, multiple installs and game-envelope validation passed. Actual Windows shortcut creation and a client pulling the update have not been exercised.

    The archive password is t.me/contextrot. The community descriptor is distributed separately. Game files are not included.

  2. v0.1.0-demo.2 Pre-release 25
    Release notes

    Prebuilt Windows executable built from d48a9f6 (play profile, x86_64-pc-windows-msvc).

    Install: extract iw4l-windows.zip (password t.me/contextrot) into an empty writable folder, add a shortcut to your MW2 installation folder next to iw4l.exe, launch iw4l.exe. For online play, put the .iw4l-server file from your server operator beside it; the game then updates itself on launch. Players already on demo.1 with the community file receive this build automatically.

    Exercised: Linux build of the same commit on iw4 mp_rust, iw5 mp_dome and t5 mp_nuked with bots; two Linux clients through a dev master; the prod update origin serving this build.

    Limitations: gameplay is incomplete — expect missing behavior, bugs and desyncs. All players need the same build. Online play requires the community .iw4l-server file.

  3. v0.1.0-demo.1 Pre-release 33
    Release notes

    Prebuilt Windows executable built from 3694c35 (play profile, x86_64-pc-windows-msvc).

    Install: extract iw4l-windows.zip (password t.me/contextrot) into an empty writable folder, add a shortcut to your MW2 installation folder next to iw4l.exe, launch iw4l.exe. For online play, put the .iw4l-server file from your server operator beside it; the game then updates itself on launch.

    Exercised: the master and its update origin on Linux; the Windows client from this archive is being tested now.

    Limitations: gameplay is incomplete — expect missing behavior, bugs and desyncs. All players need the same build.

Works for me

Did it work on your PC? A quick report tells other players which versions are safe to try.

Sign in to add a report

Forks & ports

Built on IW4L (1)

Discussion

No posts yet. Ask a question, share your setup or post a clip.

Sign in to post