King of the Road
Euro Truck Simulator 2 workshop
SCS Software European Long-Haul Trucking Sim · Trucking Simulation / Logistics
Player tools indexed: 5
Admin consoles: 5
Cargo profit and fuel cost in both real and game hours, a pure-physics drivetrain and gradeability solver, range and refuel planning, time compression with delivery scheduling, and Convoy join troubleshooting; on the admin side a builder and linter over the official 26 server_config.sii keys (violations block output entirely), console and moderator commands split into three provenance tiers, server_packages export and migration, the virtual/physical port matrix with firewall rules, and SteamCMD deployment plus the logon token.
Server notes
ETS2 ships an official dedicated server (server AppID 1948160, downloadable anonymously via SteamCMD - the host need not own the game, but every joining player must; the ATS dedicated server is a different AppID, 2239530, and the two are not interchangeable). The first launch only creates the server home and a default server_config.sii and then always fails with "Server packages file not found": on a machine that owns the game set uset g_console to "1" in config.cfg, load a map, press ~ and run export_server_packages, then copy the generated server_packages.sii and server_packages.dat into the server home (they are not linked to any account and can be copied freely; the dedicated server does not use the Steam Client and therefore cannot access Workshop). There are two classes of port: connection_virtual_port 100 and query_virtual_port 101 are virtual (official allowed range <100,200> and explicitly no forwarding needed), while connection_dedicated_port 27015 and query_dedicated_port 27016 are the physical ports used by the Steam game server api and forwarding must cover both TCP and UDP; for LAN the official range for query_dedicated_port is <27015,27020>. Multiple instances on one machine need -nosingle, and the official text requires that "ports and logon token must be different for each session instance". A server_logon_token must be requested at steamcommunity.com/dev/managegameservers using the **game appid 227300** - officially "Use the game appID to generate token, not the server appID!", and the upstream egg README adds that the wrong appid makes the server "crash upon startup". Whether a token is required at all has two readings (the wiki says an anonymous account yields a non-persistent server id and a token is only needed for persistence; the upstream egg README calls it required), so both are listed. The official session limit is 8 players (the comment reads "limit is 8 players"); the widely repeated 128 comes from the unofficial g_max_convoy_size, which needs config_ds.cfg in the server home plus chmod 400 on Linux, and is unsupported. The server has no UI, no RCON and no runtime promotion: moderators are pre-registered by SteamID64 in server_config.sii, runtime intervention is limited to the three chat commands /set_time, /set_rain_factor and /help, and stopping the server is Ctrl+C. NAT: there is no punching, so appearing in the session browser needs a public IP or port forwarding, but the official text states "session direct search works even for server that is behind NAT"; searching only works by the session search id printed at startup, never by server name. On Linux, [S_API FAIL] SteamAPI_Init() failed means steamclient.so is missing - either run the server_launch.sh shipped next to the executable or ln -s steamcmd/linux64/steamclient.so ~/.steam/sdk64/steamclient.so (the upstream egg places both sdk32 and sdk64). An incomplete server_config.sii does not stop the server: it silently falls back to defaults, which looks like "running but with no server name, so it cannot be found in the list". No server was run, no live session was established and no server branch buildid was obtained here. One more note: hasServerList being false here means "this site has not implemented the ETS2 query protocol, so no live server status is offered", not "this game has no server list" - ETS2 does have a real dedicated server and an in-game session browser; the official text only says these physical ports are used by the Steam game server api and never states that they answer standard A2S, so the protocol is not guessed.