// REQUIREMENTS
// SETUP (ONE TIME)
Create an Account
Register at dirtforever.net if you haven't already.
Generate a Game Token
Log in and go to your Dashboard — click Generate Game Token and copy it. This links the local server to your account.
Download and Run DirtForever
Download the latest release and run it. No Python or other tools needed.
Windows: the app will ask for administrator access to install a local TLS certificate and redirect game traffic to your machine. Then paste your game token.
Linux: chmod +x DirtForever-linux-x86_64, run it, then click START. A polkit prompt asks for your password once to grant the binary port-443 access and add the redirect entries to /etc/hosts. The app then installs the TLS cert into DR2's Proton prefix automatically (launch DR2 once via Steam first if you've never run it).
Or run from source: git clone https://github.com/winrid/dirtforever && cd dirtforever && uv run python dirtforever.py
Play
Run DirtForever.exe, then launch DiRT Rally 2.0 via Steam. Clubs, events, and leaderboards are powered by dirtforever.net.
Run DirtForever.exe before each gaming session. The game needs it running to connect.
// COMPATIBILITY
Working
- Login
- Events / Career mode
- Clubs with custom events
- Stage time submission & leaderboards
- Vehicle select, repairs, tuning
Not Yet
- Full championship progression
- Multiplayer / Time Trial ghosts
- In-game currency / store
// MANUAL (WINDOWS)
If you'd rather not grant DirtForever admin access each session, uncheck Easy Setup Mode in the app and do the hosts + certificate setup once yourself. After that the app can run without elevation.
1. Trust the TLS certificate. Launch DirtForever once so it generates %APPDATA%\DirtForever\certs\dr2server-cert.pem. Then open certmgr.msc → Trusted Root Certification Authorities → Certificates, right-click → All Tasks → Import..., and import that .pem file. Or from an elevated prompt: certutil -addstore Root "%APPDATA%\DirtForever\certs\dr2server-cert.pem".
2. Redirect the game's servers to your machine. Open C:\Windows\System32\drivers\etc\hosts in an elevated editor and append:
# BEGIN DIRTFOREVER
127.0.0.1 prod.egonet.codemasters.com
127.0.0.1 qa.egonet.codemasters.com
127.0.0.1 terms.codemasters.com
127.0.0.1 aurora.codemasters.local
# END DIRTFOREVER
3. Run DirtForever with Easy Setup off. Open the app, uncheck Easy Setup Mode (Requires Admin), and click START. It will skip the elevation prompt and just launch the server on :443 / :8080. Stopping the server will leave your hosts file intact.
Note: binding to port 443 still requires admin on most Windows setups. If start-up fails, either run DirtForever as administrator once (Easy Setup will still be off) or grant your user account port-443 permission.
// MANUAL (LINUX)
If you'd rather not have DirtForever drive polkit each session, configure the three pieces yourself once and uncheck Easy Setup Mode. The binary then starts without prompting.
1. Grant the binary port-443 access. Run once:
sudo setcap cap_net_bind_service=+ep ./DirtForever-linux-x86_64
If you run from source via uv, target the venv interpreter instead: sudo setcap cap_net_bind_service=+ep "$(readlink -f "$(uv run which python)")". Note: this lets any script run through that interpreter bind low ports until you revoke it with sudo setcap -r <path>. STOP does not undo it.
2. Add the hosts entries. Edit /etc/hosts as root and append:
# BEGIN DIRTFOREVER
127.0.0.1 prod.egonet.codemasters.com
127.0.0.1 qa.egonet.codemasters.com
127.0.0.1 terms.codemasters.com
127.0.0.1 aurora.codemasters.local
# END DIRTFOREVER
3. Trust the TLS certificate inside DR2's Proton prefix. Launch DirtForever once so it generates ~/.config/dirtforever/certs/dr2server-cert.pem, then run (after launching DR2 via Steam at least once so the prefix exists):
protontricks-launch --appid 690790 \
certutil -addstore Root ~/.config/dirtforever/certs/dr2server-cert.pem
If protontricks is not installed, use the Proton-bundled wine directly: WINEPREFIX=~/.steam/steam/steamapps/compatdata/690790/pfx ~/.steam/steam/steamapps/common/Proton*/files/bin/wine certutil -addstore Root ~/.config/dirtforever/certs/dr2server-cert.pem
4. Run DirtForever with Easy Setup off. Launch the app, uncheck Easy Setup Mode, and click START. The server binds :443 and :8080 without any polkit prompt.
// UNINSTALLING (WINDOWS)
Run DirtForever.exe --setup to reconfigure, or to fully remove:
1. Delete DirtForever.exe
2. Remove hosts entries: open C:\Windows\System32\drivers\etc\hosts as admin and delete the # BEGIN DIRTFOREVER block
3. Remove the certificate via certmgr.msc (look under Trusted Root for "dirtforever")
4. Delete config: %APPDATA%\DirtForever\
// UNINSTALLING (LINUX)
1. Delete DirtForever-linux-x86_64 (its cap_net_bind_service capability is removed with it). If you ran from source via uv, also revoke the capability on the venv Python: sudo setcap -r "$(readlink -f "$(uv run which python)")"
2. Remove hosts entries: sudo sed -i '/# BEGIN DIRTFOREVER/,/# END DIRTFOREVER/d' /etc/hosts
3. Remove the certificate from DR2's Proton prefix: protontricks-launch --appid 690790 certutil -delstore Root prod.egonet.codemasters.com
4. Delete config: rm -rf ~/.config/dirtforever