User Tools

Site Tools


games:linux:dota_2_steamcmd

Information

  • These notes allow downloading Dota 2 using SteamCMD and running it in offline mode 1)

Media

Prerequisites

Resources

AIO Update

  • TODO: Desktop Launcher
cd ~/'Steam/steamcmd' && ~/'Steam/steamcmd/steamcmd.sh' +login 'Espionage724' +app_update '570' +quit && ~/'Steam/steamcmd/steamcmd.sh' +login 'Espionage724' +app_update '1628350' +quit && rm -Rf ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/bots' ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/OpenHyperAI' && git clone --branch 'main' --depth '1' --recurse-submodules 'https://github.com/forest0xia/dota2bot-OpenHyperAI.git' ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/OpenHyperAI' && mv ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/OpenHyperAI/bots' ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts' && sync && cd ~
cd ~/'Steam/steamcmd' && ~/'Steam/steamcmd/steamcmd.sh' +login 'Espionage724' +app_update '570' validate +quit && sync && cd ~

SteamCMD

Install

wget -O '/tmp/steamcmd_linux.tar.gz' 'https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz' && mkdir -p ~/'Steam/steamcmd' && cd ~/'Steam/steamcmd' && tar -xvzf '/tmp/steamcmd_linux.tar.gz' && cd ~ && sync

Login

cd ~/'Steam/steamcmd' && ~/'Steam/steamcmd/steamcmd.sh' +login 'Espionage724' +quit && sync && cd ~

steamclient.so

  • steamclient.so is required and can be copied from SteamCMD, a Steam install 2), or provided by a Steam emulator
  • Goldberg Emu notes are provided below

Goldberg Emulator

Install

  • :!: This relies on this URL which looks fragile, but comes from the above download page
rm -Rf '/tmp/Goldberg_Lan_Steam_Emu_master.zip' '/tmp/Goldberg_Lan_Steam_Emu' ~/'.steam/sdk64/steamclient.so' && wget -O '/tmp/Goldberg_Lan_Steam_Emu_master.zip' 'https://gitlab.com/Mr_Goldberg/goldberg_emulator/-/jobs/4247811310/artifacts/download' && unzip '/tmp/Goldberg_Lan_Steam_Emu_master.zip' -d '/tmp/Goldberg_Lan_Steam_Emu' && mkdir -p ~/'.steam/sdk64/steam_settings' && mv '/tmp/Goldberg_Lan_Steam_Emu/linux/x86_64/steamclient.so' ~/'.steam/sdk64' && ls ~/'.steam/sdk64/steamclient.so' && rm -Rf '/tmp/Goldberg_Lan_Steam_Emu_master.zip' '/tmp/Goldberg_Lan_Steam_Emu' && sync

Settings

touch ~/'.steam/sdk64/steam_settings/offline.txt' ~/'.steam/sdk64/steam_settings/disable_overlay.txt' ~/'.steam/sdk64/steam_settings/disable_networking.txt' && echo 'Espionage724' | tee ~/'.steam/sdk64/steam_settings/force_account_name.txt'

Dota 2

Restore Backup

mkdir -p ~/'Steam/steamapps' && mv ~/'Downloads/Dota 2/'* ~/'Steam/steamapps' && sync

Install/Update

  • :!: This may need re-ran several times if game data is restored from backup 3)
  • :?: Presumably this fresh-installs Dota 2 also
cd ~/'Steam/steamcmd' && ~/'Steam/steamcmd/steamcmd.sh' +login 'Espionage724' +app_update '570' +quit && sync && cd ~

Check/Repair Data

  • :!: This may need re-ran several times if game data is restored from backup 4)
cd ~/'Steam/steamcmd' && ~/'Steam/steamcmd/steamcmd.sh' +login 'Espionage724' +app_update '570' validate +quit && sync && cd ~

Runtime

  • 2023/12/30: Sniper
  • TODO: Better way to check current Runetime, check for updated Runtimes online, and how Dota 2 would update it 5)
cd ~/'Steam/steamcmd' && ~/'Steam/steamcmd/steamcmd.sh' +login 'Espionage724' +app_update '1628350' +quit && sync && cd ~
ls --directory ~/'Steam/steamapps/common/SteamLinuxRuntime'*
gio open ~/'Steam/steamapps/common/'

Permissions

chmod -v +x ~/'Steam/steamapps/common/dota 2 beta/game/dota.sh' ~/'Steam/steamapps/common/dota 2 beta/game/bin/linuxsteamrt64/dota2'
sudo restorecon -F -I -R -v ~/'Steam' ~/'.steam'

In-game Settings

  • This resets in-game Settings and starts Dota 2
~/'Steam/steamapps/common/SteamLinuxRuntime_sniper/run' -- ~/'Steam/steamapps/common/dota 2 beta/game/dota.sh' -autoconfig -vulkan_disable_steam_shader_cache -novid -nodev -nojoy -console

Settings Save

  1. Configure in-game Settings
  2. Open Dota 2's in-game Console with the \ key
  3. Type host_writeconfig
host_writeconfig
  • :!: Errors with saving or finding a file path may require a Steam emulator if using an official steamclient.so

Launch

  • Main Menu
~/'Steam/steamapps/common/SteamLinuxRuntime_sniper/run' -- ~/'Steam/steamapps/common/dota 2 beta/game/dota.sh' -vulkan_disable_steam_shader_cache -novid -nodev -nojoy -console

Bot Match

  • Immediately launches into an All-pick Bot Match
~/'Steam/steamapps/common/SteamLinuxRuntime_sniper/run' -- ~/'Steam/steamapps/common/dota 2 beta/game/dota.sh' -vulkan_disable_steam_shader_cache -novid -nodev -nojoy -console  +sv_lan '1' +dota_bot_set_difficulty '3' +dota_start_ai_game '1' +map 'dota'

Bots Scripts

  • Bot scripts are automatically loaded and used if present 7)
sudo dnf install 'git-core'
gio open ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts'

Default Bots

  • Removing the vscripts/bots folder results in using default/built-in bot scripts
rm -Rf ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/bots'

Open Hyper AI

rm -Rf ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/bots' ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/OpenHyperAI' && git clone --branch 'main' --depth '1' --recurse-submodules 'https://github.com/forest0xia/dota2bot-OpenHyperAI.git' ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/OpenHyperAI' && mv ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/OpenHyperAI/bots' ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts' && sync

Ranked Matchmaking AI

rm -Rf ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/bots' && git clone --branch 'master' --depth '1' --recurse-submodules 'https://github.com/adamqqqplay/dota2ai.git' ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/bots' && sync

Desktop Launcher

  • TODO: Icon
mkdir -p ~/'.local/share/applications/Valve' && nano ~/'.local/share/applications/Valve/Dota 2 - Bots.desktop' && update-desktop-database --quiet ~/'.local/share/applications'
[Desktop Entry]
Name=Dota 2
Categories=Game
Exec='/bin/bash' -c "~/'Steam/steamapps/common/SteamLinuxRuntime_sniper/run' -- ~/'Steam/steamapps/common/dota 2 beta/game/dota.sh' -vulkan_disable_steam_shader_cache -novid -nodev -nojoy -console +sv_lan '1' +dota_bot_set_difficulty '3' +dota_start_ai_game '1' +map 'dota'"
Type=Application
StartupNotify=true
Icon=TODO.0

Troubleshooting

1)
I only do singleplayer local bot matches; LAN usage is untested
2)
Linux 64-bit
3) , 4)
Error! App '570' state is 0xE after update job.
6)
instead of clicking-off a selected enemy hero and automatically moving your hero, it'll keep the enemy hero selected and not move your hero
7)
apparently relies on a Local Dev Script feature and the scripts being in a bots folder at dota\scripts\vscripts
/var/www/wiki/data/pages/games/linux/dota_2_steamcmd.txt · Last modified: by Sean Rhone