DriversRecommendedOutdated drivers can make a good PC feel brokenScan driver issues before chasing fixes manually.Scan NowHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run Scan×
Skip to content
World desk12 min

How to Automatically Update an ETS2 and ATS Dedicated Server

SteamCMD updates ETS2 and ATS dedicated-server files, but scheduling, backups, restarts, and version checks are your responsibility. Follow this safe automation process for Windows or Linux.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

SteamCMD is the updater for both Euro Truck Simulator 2 (ETS2) and American Truck Simulator (ATS), but it does not schedule updates itself. To keep a dedicated server current, schedule a maintenance job that stops the running server, backs up its files, runs SteamCMD against the same installation directory, checks the result, and starts the server again.

Use app ID 1948160 for ETS2 or 2239530 for ATS. The most common reason an update appears not to work is that SteamCMD updated a different directory from the one the server actually launches.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What automatic updating actually requires

SCS Software’s documentation explicitly warns: “Remember that SteamCMD does not auto-update your server.” SteamCMD can download the latest files whenever it is run, but a Windows Task Scheduler job, cron entry, or systemd timer must invoke it. The updater also cannot safely replace files while the dedicated-server process is using them, so a reliable job includes a clean stop and restart.

A complete update routine has five responsibilities:

  • Run at a maintenance time you choose rather than whenever a player is connected.
  • Target the exact directory used by the live dedicated server.
  • Preserve configuration, authentication, and exported package files.
  • Record SteamCMD’s exit status and output so a failed download is visible.
  • Restart the server only after the files and content packages are ready, then verify the reported game version.

Build numbers change as Steam depots are published, so an automation script should not contain a permanent “current build” number. Let SteamCMD resolve the current build and confirm the result in its output and in the server log.

Choose the correct Steam application

ETS2 and ATS use separate dedicated-server applications. Select the ID that matches the game your community runs.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Game Dedicated-server app ID SteamCMD update argument
Euro Truck Simulator 2 1948160 +app_update 1948160
American Truck Simulator 2239530 +app_update 2239530

These IDs are the dedicated-server applications identified in SCS Software’s current documentation. They are not the IDs for the normal client games. Using the client ID, or swapping the ETS2 and ATS IDs, can leave the server unchanged while SteamCMD appears to have completed successfully.

Prepare the server before scheduling anything

Locate the live installation directory

Find the directory from which the dedicated-server executable is launched. Check the service definition, startup script, Docker volume, or shortcut rather than assuming it is the directory where SteamCMD was first installed. The path passed to +force_install_dir must be identical to that live path, including the drive or mount point.

An SCS forum answer identifies a wrong directory as a common explanation for an update that seems not to take effect. If you maintain separate test and production copies, label them clearly and schedule the production job against only the production path.

Confirm SteamCMD access

Run SteamCMD manually once under the same account that will run the scheduled task. The account needs read and write permission to the server directory and to SteamCMD’s download cache. On a hosted machine, also confirm that outbound network access is allowed during the maintenance window.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Record how the server is started and stopped

Automation must use the same service manager or launch method as normal operations. A clean stop is preferable to killing a process: it gives the server time to close files and finish saving state. Write down the exact stop and start actions before creating the schedule; an updater that downloads correctly but never restarts the service still produces downtime.

The SteamCMD command pattern

For Windows, the basic ATS command is:

steamcmd.exe +force_install_dir "C:GameServer" +login anonymous +app_update 2239530 +quit

Replace 2239530 with 1948160 for ETS2 and replace the example directory with the directory used by your running server. The command tells SteamCMD to use an anonymous login, select the installation directory, download or update the ATS dedicated-server files, and exit.

On Linux, the equivalent pattern is:

steamcmd +force_install_dir /path/to/server +login anonymous +app_update 1948160 +quit

Use 2239530 for ATS. Replace the example path with the real absolute path. Relative paths are a frequent source of mistakes when a scheduler starts in a different working directory from an interactive shell.

Do not add a second +force_install_dir pointing elsewhere, and do not assume SteamCMD’s own directory is the game installation directory. Save the command output to a dated log when you automate it.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Build a safe update sequence

Use this order for every scheduled maintenance run, whether the server is self-hosted or rented:

  1. Announce maintenance. Tell players when connections will close and how long the expected interruption is. Do not begin while a critical convoy or event is in progress.
  2. Stop accepting new players. Use the server’s normal administrative procedure, then allow connected players to leave.
  3. Stop the dedicated-server process cleanly. Confirm that the process has exited before touching its files.
  4. Back up configuration and package files. At minimum, copy server_config.sii, server_packages.sii, and server_packages.dat to a dated backup location.
  5. Run SteamCMD. Use the correct app ID and the exact live installation directory.
  6. Check the exit status and log. A scheduler should mark the job failed if SteamCMD returns an error or cannot reach Steam.
  7. Restore preserved configuration if necessary. Never overwrite a known-good token or settings file with an unintended copy from a test directory.
  8. Re-export server packages when content changed. If the game or mod/DLC set changed, run the game’s export_server_packages command again and copy the refreshed package files to the dedicated-server directory.
  9. Start the server. Use the normal service or launch command.
  10. Verify operation. Read the new server log, check the reported game version, confirm the server logon token and listening ports, and connect with a client on the same build.
  11. Notify players. Announce availability only after the log shows a successful startup.

Keeping the backup step before SteamCMD means a failed update can be reversed without reconstructing configuration from memory.

Windows: schedule SteamCMD with Task Scheduler

Create an update wrapper

Use a batch file or PowerShell script that performs the stop, backup, SteamCMD update, status check, and start. Keep the server directory, SteamCMD executable path, backup destination, and the service or executable start command in one clearly documented place. The SteamCMD line inside that wrapper should follow the pattern shown above.

Redirect standard output and errors to a log file whose name includes the date. Capture SteamCMD’s exit code immediately after it exits; subsequent commands can overwrite that value. If the code is not successful, leave the server stopped (or trigger your documented recovery action) and alert the administrator instead of silently starting a partially updated installation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Create the scheduled task

  1. Open Task Scheduler and choose Create Task, not the simplified basic wizard if you need separate stop and start actions.
  2. On General, select an account that has permission to the server directory and choose Run whether user is logged on or not when the machine is unattended.
  3. On Triggers, choose a quiet weekly or daily window appropriate for your community. A schedule is a policy decision; it does not guarantee that a new build will exist every run.
  4. On Actions, launch the wrapper script. Set Start in to the script directory so relative log paths do not change under Task Scheduler.
  5. On Conditions, decide whether the task may wake the computer and whether it should wait for network availability.
  6. On Settings, enable a time limit and a retry policy that will not create overlapping SteamCMD runs. Never allow two update jobs to write to the same installation simultaneously.
  7. Run the task manually once. Confirm that the process stops, the backup is created, SteamCMD writes to the intended directory, and the server starts again.

Keep a separate manual maintenance task for emergency updates. The automated task should not be the only way to start the server after a failed maintenance window.

Linux: cron or systemd timer

Using cron

A cron entry can call a root-owned or service-owned wrapper at a quiet time. The wrapper should use absolute paths, because cron provides a smaller environment than an interactive shell. A typical entry has five time fields followed by the full path to the update script; redirect output to a log and prevent concurrent runs with a lock mechanism supported by your distribution.

The script should stop the dedicated-server service, test that it has stopped, create the configuration backup, run:

steamcmd +force_install_dir /path/to/server +login anonymous +app_update 1948160 +quit

then inspect the return code before starting the service. Use the ATS ID, 2239530, when appropriate. Ensure the account running cron can write both the installation and backup directories.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
NBCP PC Steering Wheel with 6-Speed H-Pattern Shifter and Linear Pedal
  • 【Hall Magnetic Encoder Steering – Precision & Durability】 Contactless Hall magnetic sensing technology delivers precise, wear‑free steering control. No potentiometers to wear out – ensuring consistent accuracy and long‑term reliability for intense sim racing sessions.
  • 【Complete Pedal Set: Linear Throttle, Brake & Clutch + 6-Speed H‑Pattern Shifter】 Linear pedals provide proportional control for precise throttle, braking, and clutch engagement. The 6‑speed H‑pattern shifter delivers authentic manual transmission shifting – perfect for sim racing, truck simulators, and realistic driving games.
  • 【11.02" Large Diameter Wheel with Ergonomic Wave‑Style Grips】 Extra‑large 11.02" wheel face provides a realistic driving feel – closer to a real car than standard 10" wheels. The one‑piece ergonomic wave‑shaped handles with thickened non‑slip texture offer comfortable, fatigue‑reducing grip during long races.
  • 【One-Key Angle Switching – 270°/450°/900°】 Instantly switch between 3 rotation angles with a single press. 270° for F1/arcade racing, 450° for truck/bus simulators, and 900° for realistic car driving. Adapts to different game genres without interrupting your gameplay.
  • 【Dual Vibration Motors & Sturdy Desk Mount】 Dual vibration motors deliver realistic road feedback – feel every bump, curb, and collision. Tilt‑adjustable design lets you find your perfect driving posture. The 27.5cm chassis base and 3‑47mm universal clamp fit most desks securely. Compatible with PC, PS3, and Euro Truck Simulator 2 (ETS2).

Using a systemd timer

Systemd timers are useful when the server already runs as a systemd service. Put the update logic in a oneshot service and make the timer trigger it. Order the update service after the network is online, and make it stop the game service before SteamCMD runs. Configure the timer to avoid overlapping invocations and inspect the service journal after the first run.

The exact unit names and calendar expression depend on your distribution and existing service file. What matters is the dependency order: network available, game service stopped, backup complete, SteamCMD finished successfully, then game service started. Test the unit interactively before enabling its timer.

Protect configuration, tokens, and exported packages

SteamCMD updates server binaries and related files; it is not a substitute for configuration backups. Preserve server_config.sii, which contains the server settings and logon token, before every maintenance run. Losing the token can prevent the expected server identity from returning after restart.

Also preserve server_packages.sii and server_packages.dat. These files describe the DLC and mod content exported for the dedicated session. A binary update can complete while these files still describe an older content set, producing missing-content or compatibility errors for clients.

When the game, DLC selection, or mods change, launch the game with the relevant content and run its export_server_packages command. Copy the refreshed server_packages.sii and server_packages.dat into the server directory, then restart and inspect the log. Keep the previous pair in the dated backup so you can restore the last working content definition if a new mod fails.

Verify that the update reached the live server

Do not treat “SteamCMD finished” as proof that players are on the new build. Verification has three independent checks:

  • SteamCMD output: confirm that the command used the intended app ID and installation directory, and that the download completed without an error.
  • Server startup log: confirm that the restarted process reports the expected game version and loads the preserved token, packages, and configured ports.
  • Client connection: connect with an ETS2 or ATS client that has been updated through Steam. If the client reports a version mismatch, keep the server closed to players until the cause is resolved.

Current build numbers are intentionally not listed here as permanent values; Steam depots change over time. Record the value shown by your own SteamCMD output and server log for each maintenance run.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Why a server remains on the old version

The wrong directory was updated

This is the most common failure. Compare the path in +force_install_dir with the path in the service file, launch script, or container volume. Check the modification time of the executable in the live directory, not in SteamCMD’s cache or a test copy.

The server was never restarted

An already running process keeps the old binaries in memory. Stop it completely, verify that no process remains, and start it only after SteamCMD exits successfully.

The app ID is wrong

Use 1948160 for ETS2 and 2239530 for ATS. A successful SteamCMD session against another application does not update the dedicated server you intended.

The scheduled account lacks permission

Interactive tests may work under your login while Task Scheduler, cron, or systemd runs under another account. Check write permissions, the working directory, network access, and the location of SteamCMD’s log and cache.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

SteamCMD could not download the depot

Review the captured output for authentication, network, disk-space, or file-lock errors. Leave the previous installation intact when the command fails, correct the underlying problem, and rerun the update manually before re-enabling the schedule.

Packages or mods are incompatible

A new game build can make a mod unusable even when SteamCMD reports success. Remove or update the incompatible mod, regenerate the exported package files, or hold the server on the last working build until the content set is ready. Do not reopen the server simply because the executable starts.

Handling mods and version alignment

Every participant needs a compatible combination of game client, dedicated-server build, and enabled mod/DLC content. Treat a game update as a compatibility event, not only a file download. Before the maintenance window, list the mods enabled for the server and identify which ones require a new release. After the update, export packages again if the set changed and inspect the log for load failures.

If one critical mod is not ready, the safest choices are to keep the server on the working build, remove that mod and re-export packages, or postpone the restart. The correct choice depends on whether preserving the existing session is more important than receiving the latest game fixes.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Self-hosting versus managed hosting

SCS confirms that a dedicated server can run on a rented or paid-for server. Managed hosting is therefore a legitimate alternative for communities that do not want to administer SteamCMD, operating-system updates, backups, and process supervision themselves. It does not remove the need to verify versions and content; it moves much of the maintenance responsibility to the provider.

Decision factor Self-hosted machine Managed or rented server
Operating-system access You choose the OS, permissions, firewall, and update policy. Access and permitted changes depend on the provider’s plan and control panel.
Scheduler and update control You create the Task Scheduler, cron, or systemd routine and decide its timing. The provider may offer automatic updates, or you may receive console access to configure your own job; verify which is included.
Backup responsibility You must back up configuration, tokens, and package files and test restoration. Backups may be included, optional, or excluded; confirm retention and whether game files and configuration are both covered.
Restart automation You control service dependencies, retries, health checks, and alerts. The host may provide restart and monitoring tools, but their behavior and limits vary.
Geographic latency You select the machine location if you control the hardware or VPS region. You choose among the provider’s available regions; measure the location against your player base.
Support You diagnose SteamCMD, OS, network, and mod failures yourself. Support scope may include the platform but not third-party mods or custom configuration.
Recurring cost Uses hardware, bandwidth, electricity, or an existing server budget. Requires a recurring rental fee whose included storage, CPU, bandwidth, backups, and support should be checked before purchase.

Choose self-hosting when you need unrestricted scheduler and filesystem control and are comfortable maintaining the operating system. Choose managed hosting when predictable availability and reduced administration outweigh the recurring cost and provider limitations. In either case, ask how an update is staged, where backups are stored, and how a failed build is rolled back.

Rollback and recovery plan

Keep at least one known-good backup of the configuration and exported package files, plus the previous server installation or a way to restore it. If the new build starts but clients cannot connect, stop the server, restore the previous working files and package definitions, and document which mod or build caused the failure. Do not overwrite the only backup with a copy from the failed run.

After recovery, decide whether to wait for a compatible mod, remove the offending content, or schedule another controlled update. Inform players which version is available so they do not repeatedly attempt to connect with an incompatible client.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A practical maintenance checklist

  • Correct app ID selected: ETS2 1948160 or ATS 2239530.
  • SteamCMD’s +force_install_dir exactly matches the live server directory.
  • Maintenance announcement sent and new connections paused.
  • Dedicated-server process stopped cleanly.
  • server_config.sii, server_packages.sii, and server_packages.dat backed up.
  • SteamCMD output and exit status captured.
  • Package export repeated when the game, DLC, or mod set changed.
  • Server restarted only after a successful update.
  • Startup log checked for version, token, ports, and package errors.
  • Client connection tested before the public “online” announcement.

The Bottom Line

Schedule SteamCMD; it will not schedule itself. Update the exact directory used by the running server, use app ID 1948160 for ETS2 or 2239530 for ATS, preserve configuration and package files, and verify the restarted server’s log and client compatibility before letting players back in.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.