This is the configuration for the Kim Jong Un servers.
In order to use this configuration, clone it in your doi/cfg folder, i.e. as
doi/cfg/doi-config. It's not possible in Source configs to handle paths
dynamically, thus the location cannot be changed.
Afterwards, create a server config that loads the init-<gamemode>.cfg config
files. For example, for the Coop Commando configuration set, your server.cfg
might look like this:
hostname "MY-SERVER-NAME"
rcon_password "MY-PASSWORD"
exec doi-config/init-coop-commando.cfg
The included prepare_server.sh can be used to start up the server and perform
most automatic tasks. It will update SourceMod, Metamod:Source, SourceBans, and
etc., as well as install symbolic links to the Git folder where needed.
If prepare_server.sh is being called with a second parameter, it will
interpret that parameter as a server config (in the texts folder) should be
used.
By defining the RCON_PASSWORD environment variable, prepare_server.sh will
also create an appropriate rcon.cfg and include it.
Lastly, the appropriate workshop ID file in the configs folder for the server
has to be passed on commandline to SRCDS via sv_workshop_list_file. It's not
possible to set this dynamically after launch, unfortunately.
The configuration includes a setting of r_hunkalloclightmaps 0 to prevent
crashes with large maps like ardennes. Community made maps of that size
contain significant lightmap data, and will otherwise experience what's known
as an Engine Hunk
Overflow. Under
certain circumstances, like loading such a map as the default server map, it
might be necessary to add this to the server launch parameters.
The game server requires certain 32-bit libraries being installed on Linux. These are
glibc
libgcc
libstdc++
SDL2
zlib
It is possible to replace SDL2 with the sdl2-compat compatibility layer that
implements SDL2 atop SDL3.
The Steam Client library has the following additional possible dependencies, which are however only loaded by client apps and not servers:
SDL3
libX11
PulseAudio (libpulse)
The game server binaries contain references to the following libraries as well:
OpenAL
util-linux
freetype2
fontconfig
These libraries would only be loaded by the client code paths in engine.so,
and thus if the game asks for any of them, there's something going wrong. In
particular, this happened when BattlEye got removed from the game with in
2025
until resolved the next day in a second
update.
The tickrate for Day of Infamy should not be changed. While it's possible to run with 128 tick, the game never supported this properly. In particular, at 128 tick, throwables like grenades will start to bounce excessively. Effectively, the game physics break down, even if the game otherwise runs fine.
Included is a SourceMod plugin that automatically adjusts the bot count
depending on the amount of players, independent from map scripting. For this to
work, the currently active game mode needs to have a server_<gamemode>.cfg as
it should have from the gamemodes folder.
In order to enable stats with custom content and the playlist restrictions not
to apply, the provided engine_srv.so in the server-patch directory has to be
copied into doi/bin. It has been modified to not enforce the aforementioned
restrictions.
The admin menu sm_admin requires the keys 6 to 0 to be bound. Add the
following to your client configuration (config.cfg):
bind "6" "slot6"
bind "7" "slot7"
bind "8" "slot8"
bind "9" "slot9"
bind "0" "slot10"
Both SourceMod and the SourceBans web components use the MaxMindDB GeoIP2
databases for some functionality. The packages of each include such MMDB files,
but they've not been updated in years. A much cleaner solution is to install and
configure geoipupdate. This tool needs
a free registration with MaxMind, but with that it will provide the latest and
greated GeoIP2 databases in /var/lib/GeoIP. The prepare_server.sh and
deploy_sourcebans.sh scripts include logic to symlink the GeoIP2 databases
from that location if available.