Egg Repository

Pterodactyl Community Egg Repository

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.

Read Me

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

NameGithub Profile
brainsheadhttps://github.com/brainshead

Server Ports

IW4X requires up to 1 ports

Portdefault
Game28960

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

Yolks
NameTag
Wine Latest ghcr.io/ptero-eggs/yolks:wine_latest
Wine Staging ghcr.io/ptero-eggs/yolks:wine_staging
Variables and Startup

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

Steam User

This is a required setting and cannot be set to anonymous.

Environment Variable: STEAM_USER
Default Value:
User Viewable:
User Editable:
Steam Password

Steam User Password

Environment Variable: STEAM_PASS
Default Value:
User Viewable:
User Editable:
Game ID

The ID corresponding to the game to download and run using SRCDS

Environment Variable: SRCDS_APPID
Default Value: 10190
User Viewable:
User Editable:
Steam Auth

Steam account auth code. Required if you have 2fa enabled

Environment Variable: STEAM_AUTH
Default Value:
User Viewable:
User Editable:
Auto Update Server

This is to auto-update the game server

Environment Variable: AUTO_UPDATE
Default Value: 1
User Viewable:
User Editable:
Windows Install

Environment Variable: WINDOWS_INSTALL
Default Value: 1
User Viewable:
User Editable:
Winetricks

Environment Variable: WINETRICKS_RUN
Default Value: vcrun2022
User Viewable:
User Editable:
Wine Debug

Environment Variable: WINEDEBUG
Default Value: -all
User Viewable:
User Editable:
Mod Dir

Name of the Dir where the mod are.

Environment Variable: MOD_DIR
Default Value:
User Viewable:
User Editable:
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 Variable: SERVER_NAME
Default Value: Pterodactyl IW4X
User Viewable:
User Editable:
Server Password

Password Protected Server. Leave blank if you want players to join or set password if you want to keep public out.

Environment Variable: SERVER_PASSWORD
Default Value:
User Viewable:
User Editable:
Install Script
#!/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 "-----------------------------------------"
Installation Imageghcr.io/ptero-eggs/installers:debianInstallation Entrypointbash