:: Valheim Server Control v1.0 :: https://gist.github.com/ErichHartmann/cafccde0a1736d741ec3e39ad620fa9a :: fork of the more general https://pastebin.com/BRUbsGQh :: WARNING - ONLY FOR USE WITH WINDOWS 10 OS :: You must install SteamCMD before running this script :: See https://developer.valvesoftware.com/wiki/SteamCMD for directions :: Download at https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip SET programName=Valheim Server Control v1.0 SET gameName=Valheim SET serverStatus=off SET steamgameId=896660 SET steamUsername=anonymous SET steamPassword= :: Set your specific path variables - be wary of spaces in directory names SET steamCMDPath=X:\0\bin\steamcmd\ SET runcmd=X:\0\bin\valheim\ :: Set your specific server variables :: Ensure ports 2456-2458 are being forwarded to your server through your local router and firewalls :: Minimum password length is 5 characters and cant be in the server name SET gameServerName=My Server Name SET gameWorldName=My World SET gameServerPassword=My Secret Password SET logName=%gameName%_%gameServerName%_server.log @ECHO off title %programName% - %gameName% cls COLOR 1f CD /d "%runcmd%" ECHO (%date%)(%time%) Init %programName% for %gameName% server named %gameServerName% >> "%logName%" ECHO (%date%)(%time%) ************************************************** >> "%logName%" ECHO (%date%)(%time%) Init %programName% for %gameName% server named %gameServerName% :menu ECHO. ECHO. ECHO .d8888b. 8888888888 8888888b. 888 888 8888888888 8888888b. ECHO d88P Y88b 888 888 Y88b 888 888 888 888 Y88b ECHO Y88b. 888 888 888 888 888 888 888 888 ECHO "Y888b. 8888888 888 d88P Y88b d88P 8888888 888 d88P ECHO "Y88b. 888 8888888P" Y88b d88P 888 8888888P" ECHO "888 888 888 T88b Y88o88P 888 888 T88b ECHO Y88b d88P 888 888 T88b Y888P 888 888 T88b ECHO "Y8888P" 8888888888 888 T88b Y8P 8888888888 888 T88b ECHO. ECHO %gameName% Dedicated Server: %gameServerName% IF "%serverStatus%"=="off" ECHO Server Status: STOP IF "%serverStatus%"=="on" ECHO Server Status: RUN ECHO. ECHO COMMAND MENU ECHO ```````````` IF "%serverStatus%"=="off" ECHO [1] ... Install and Update IF "%serverStatus%"=="off" ECHO [2] ... Start Server IF "%serverStatus%"=="on" ECHO [3] ... Stop Server ECHO. ECHO [8] ... HELP IF "%serverStatus%"=="off" ECHO [9] ... EXIT ECHO. ECHO. IF "%serverStatus%"=="on" ECHO WARNING - DO NOT EXIT THIS TERMINAL UNTIL SERVER STOP :: Delete variable %A% SET "A=" SET /P A=Select Menu Command: ECHO. IF "%A%"=="1" IF "%serverStatus%"=="off" GOTO update IF "%A%"=="2" IF "%serverStatus%"=="off" GOTO start IF "%A%"=="3" IF "%serverStatus%"=="on" GOTO stop IF "%A%"=="8" GOTO help IF "%A%"=="9" EXIT ECHO (%date%)(%time%) Error -- Unknown Command GOTO menu :help ECHO See reference https://steamcommunity.com/sharedfiles/filedetails/?id=2382282960 GOTO menu :update ::Start steamcmd install and update terminal ECHO (%date%)(%time%) Run %gameName% update via Steam using SteamCMD >> "%logName%" ECHO (%date%)(%time%) Run %gameName% update via Steam using SteamCMD start /wait %steamCMDPath%steamcmd +login %steamUsername% %steamPassword% +force_install_dir %runcmd% +game_update %steamgameId% validate +exit GOTO menu :start ::Start the game server ECHO (%date%)(%time%) Start %gameName% server - name: %gameServerName% - world: %gameWorldName% - password: %gameServerPassword% >> "%logName%" ECHO (%date%)(%time%) Start %gameName% server - name: %gameServerName% - world: %gameWorldName% - password: %gameServerPassword% SET serverStatus=on start /high valheim_server -nographics -batchmode -name "%gameServerName%" -port 2456 -world "%gameWorldName%" -password "%gameServerPassword%" -public 1 GOTO menu :stop ::Stop the game server ECHO 1 > server_exit.drp SET serverStatus=off ECHO (%date%)(%time%) Stop %gameName% server - name: %gameServerName% - world: %gameWorldName% - password: %gameServerPassword% >> "%logName%" ECHO (%date%)(%time%) Stop %gameName% server - name: %gameServerName% - world: %gameWorldName% - password: %gameServerPassword% ECHO Exit from %programName% (this console) is now OK GOTO menu :goodbye >> "%logName%" ECHO (%date%)(%time%) Exit %programName% for server %gameServerName% in %gameName%