Learn what SteamCMD is and how to use SteamCMD to install, update and validate dedicated servers, choose the right login and fix download errors.
SteamCMD is Valve’s command-line Steam client. It is mainly used to install, update and validate dedicated game-server files without the full graphical Steam app. Download the official archive, extract it to its own folder, run it, log in anonymously or with an entitled account, then use app_update with the required app ID.
What is SteamCMD used for?
SteamCMD is best suited to unattended server installation, scripted updates and machines without a desktop interface. In flight and train simulation, it is relevant when a simulator or related title provides a Steam dedicated-server tool.
| Requirement | Full Steam client | SteamCMD |
|---|---|---|
| Interface | Graphical desktop application | Command prompt or script |
| Best use | Playing and managing normal games or simulators | Installing and updating dedicated servers |
| Automation | Limited | Designed for repeatable command-line jobs |
| Account | Steam account required | Anonymous access for some servers; account required for others |
Use the full client for an ordinary simulator installation; our full-client installation process for Train Simulator Classic shows that conventional route. SteamCMD can download only the depots Steam makes available to it. It does not manage a publisher’s separate installer, a distinction illustrated by the difference between Steam-managed and standalone DCS installations.
How do you install SteamCMD?
Install SteamCMD in its own folder and run it under a standard, unprivileged user account. Obtain the archive only from Valve’s official SteamCMD distribution rather than a repackaged download.
- Create a SteamCMD folder. Examples are
C:\steamcmdon Windows or/home/steam/steamcmdon Linux. Keep this separate from the dedicated server’s installation directory. - Extract the archive. On Windows, this produces
steamcmd.exe. Linux and macOS packages provide a shell script. - Run SteamCMD. It downloads its own updates and eventually displays the
Steam>prompt. - Check Linux dependencies if it will not start. SteamCMD may require 32-bit compatibility libraries on a 64-bit Linux installation. Install those through the operating system’s normal package management tools.
SteamCMD itself can update several servers, so you do not need a separate copy for every installation. Give each server a different target folder instead.
SteamCMD commands for installing a dedicated server
The basic command sequence selects the destination, logs in, downloads the app and exits. Replace APP_ID with the numeric ID specified by the dedicated server’s documentation; it is often different from the playable game’s app ID.
- Set the installation directory before logging in:
force_install_dir "D:\Servers\Example" - Log in anonymously when supported:
login anonymous - Download or update the server:
app_update APP_ID - Validate managed files when needed:
app_update APP_ID validate - Close SteamCMD cleanly:
quit
The Windows commands can also be combined for a batch file or scheduled task:
steamcmd.exe +force_install_dir "D:\Servers\Example" +login anonymous +app_update APP_ID validate +quit
On Linux, call the supplied SteamCMD shell script and use a Linux path. Quote any path containing spaces. If the server requires a beta branch, the documented branch can be selected with -beta BRANCH; do not choose a branch unless the server publisher specifically requires it.
SteamCMD downloads the software but does not configure the simulator, open firewall ports or create a working multiplayer session. Our DCS dedicated-server configuration example shows the separate launching, mission and network work that follows installation.
Can SteamCMD update an existing server automatically?
Yes. Run the same app_update APP_ID command against the existing installation directory whenever an update is required.
Stop the dedicated server before updating so executables and libraries are not locked. The validate option checks Steam-managed files and reacquires missing or altered ones, but it takes longer and may restore files you intentionally edited. Keep configuration and mission files backed up, especially if the application stores them inside managed directories.
Do you need a Steam account for SteamCMD?
No account is needed when the dedicated-server app permits anonymous access. Otherwise, use login USERNAME and enter the password and Steam Guard code when prompted.
SteamCMD respects ownership and licensing. It cannot download paid app content unless the account has the required licence, and it does not bypass DRM. Avoid putting a password directly into a batch file, shell script or command history; use interactive authentication or the application’s supported secure deployment method.
Can SteamCMD download Steam Workshop mods?
SteamCMD can download some Workshop items, but only when the application and item permissions allow it. The command is workshop_download_item APP_ID ITEM_ID, using the parent application ID and Workshop item ID.
Anonymous Workshop access is not universal, and some content requires an account that owns the application. Many dedicated servers have their own Workshop collection or mod-loading system, so downloading an item does not necessarily activate it.
Common SteamCMD errors and fixes
Most SteamCMD failures come from the wrong app ID, an unsupported login method, file permissions or a server process left running.
| Symptom | Likely cause | Fix |
|---|---|---|
No subscription | Wrong app ID, anonymous access is unsupported, or the account lacks a licence | Confirm the dedicated-server app ID and log in with an entitled account if required |
| Install goes to the wrong folder | force_install_dir was entered too late or the path was not quoted | Set the directory before login and quote paths containing spaces |
| Update repeatedly fails | Insufficient disk space, locked files or inadequate permissions | Stop the server, check free space and folder ownership, then retry with validate |
| SteamCMD will not start on Linux | Missing compatibility libraries or execute permission | Install the required operating-system libraries and run the script as an unprivileged user |
| No depot for the platform | The server has no build for the host operating system | Use an operating system supported by that dedicated-server app |
| Settings revert after validation | A configuration file is part of the Steam-managed depot | Back it up and follow the server’s documented external configuration method |
A mistake we see constantly is using the playable game’s app ID instead of its separate dedicated-server ID. Check that first whenever SteamCMD downloads the wrong files, requests an unexpected licence or reports that no suitable depot exists.