IW4x
GamesIW4x is a community-driven modification for Call of Duty Modern Warfare 2 (2009) that enhances the game with improved security, dedicated servers, and extensive modding capabilities.
README
IW4X
IW4x is a community-driven modification for Call of Duty Modern Warfare 2 (2009) that enhances the game with improved security, dedicated servers, and extensive modding capabilities. See https://iw4x.io/
Author & Contributers
| Name | Github Profile |
|---|---|
| brainshead | https://github.com/brainshead |
Server Ports
IW4X requires up to 1 ports
| Port | default |
|---|---|
| Game | 28960 |
This can be changed to any port.
[!IMPORTANT]
Before installing IW4x, you need to obtain a legitimate copy of Call of Duty: Modern Warfare 2 (2009) from Steam.
- This is required for installation of the server files.
- Client also need need to use the IW4x files installed to connect to the server.
Files can be found on
[!CAUTION] [Only Steam is supported] IW4x does not support game copies from the Microsoft Store!
Install Notes
Memory 1GB and 20 GB storage is needed at least without modicification.
Settings
Most setting can be done by opening userraw/server.cfg and edit settings inside
Server hosting rules
Can be found at IW4X Docs.
Violation of any rule may result in your server being delisted.
If you are unsure about the rules or want to report a server please do so via our Discord server. Discord Server IW4X
Docker Images (2)
| Name | Image |
|---|---|
Wine Latest | ghcr.io/ptero-eggs/yolks:wine_latest |
Wine Staging | ghcr.io/ptero-eggs/yolks:wine_staging |
Startup Command
./iw4x-launcher --update && wine iw4x.exe -dedicated -stdout +set fs_game $MOD_DIR +set sv_lanonly 0 +set net_port $SERVER_PORT +exec server.cfg +set party_enable "0" +map_rotate Variables (11)
Steam User
This is a required setting and cannot be set to anonymous.
- Environment:
STEAM_USER- Default:
None- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string
Steam Password
Steam User Password
- Environment:
STEAM_PASS- Default:
None- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string
Game ID
The ID corresponding to the game to download and run using SRCDS
- Environment:
SRCDS_APPID- Default:
10190- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
string
Steam Auth
Steam account auth code. Required if you have 2fa enabled
- Environment:
STEAM_AUTH- Default:
None- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
nullable|string|max:5
Auto Update Server
This is to auto-update the game server
- Environment:
AUTO_UPDATE- Default:
1- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|boolean
Windows Install
- Environment:
WINDOWS_INSTALL- Default:
1- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|max:20
Winetricks
- Environment:
WINETRICKS_RUN- Default:
vcrun2022- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|max:20
Wine Debug
- Environment:
WINEDEBUG- Default:
-all- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|max:20
Mod Dir
Name of the Dir where the mod are.
- Environment:
MOD_DIR- Default:
None- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
nullable|string
Server Name
Sets the server hostname. SERVER COLORS ^1 = Red, ^2 = Green, ^3 = Yellow, ^4 = Blue, ^5 = Cyan, ^6 = Pink, ^7 = White, ^8 = Depends on the team colors playing., ^9 = Grey, ^0 = Black, ^: = Rainbow colors.
- Environment:
SERVER_NAME- Default:
Pterodactyl IW4X- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|max:100
Server Password
Password Protected Server. Leave blank if you want players to join or set password if you want to keep public out.
- Environment:
SERVER_PASSWORD- Default:
None- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
nullable|string|max:100
Installation Script
ghcr.io/ptero-eggs/installers:debianbash#!/bin/bash
# steamcmd Base Installation Script
## just in case someone removed the defaults.
if [ "${STEAM_USER}" == "" ]; then
echo -e "steam user is not set.\n"
echo -e "Using anonymous user.\n"
STEAM_USER=anonymous
STEAM_PASS=""
STEAM_AUTH=""
else
echo -e "user set to ${STEAM_USER}"
fi
## download and install steamcmd
cd /tmp
mkdir -p /mnt/server/steamcmd
curl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzvf steamcmd.tar.gz -C /mnt/server/steamcmd
cd /mnt/server/steamcmd
# SteamCMD fails otherwise for some reason, even running as root.
# This is changed at the end of the install process anyways.
chown -R root:root /mnt
export HOME=/mnt/server
## install game using steamcmd
./steamcmd.sh +force_install_dir /mnt/server +login anonymous +app_update 1628350 validate +quit ## other flags may be needed depending on install. looking at you cs 1.6
./steamcmd.sh +force_install_dir /mnt/server +login anonymous +app_update 1493710 validate +quit ## other flags may be needed depending on install. looking at you cs 1.6
./steamcmd.sh +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s "-beta ${SRCDS_BETAID}" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s "-betapassword ${SRCDS_BETAPASS}" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6
## set up 32 bit libraries
mkdir -p /mnt/server/.steam/sdk32
cp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so
## set up 64 bit libraries
mkdir -p /mnt/server/.steam/sdk64
cp -v linux64/steamclient.so ../.steam/sdk64/steamclient.so
#Install IW4X launcher
cd /mnt/server
wget https://github.com/iw4x/launcher/releases/latest/download/iw4x-launcher-x86_64-unknown-linux-gnu.tar.gz
tar xfv iw4x-launcher-x86_64-unknown-linux-gnu.tar.gz
rm iw4x-launcher-x86_64-unknown-linux-gnu.tar.gz
chmod +x iw4x-launcher
#Getting server configs
cd /mnt/server
wget -q https://github.com/iw4x/iw4-server-configs/archive/main.zip
unzip main.zip
mv -f iw4-server-configs-main/* .
rmdir iw4-server-configs-main
rm main.zip
rm LICENSE
rm README.md
## install end
echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"