-
-
Goldberg Steam Emulator
4)
-
Prerequisites
Quick Update
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 ~
Dependencies
sudo zypper install 'git-core'
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
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' && 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
cd ~/'Steam/steamcmd' && ~/'Steam/steamcmd/steamcmd.sh' +login 'Espionage724' +app_update '570' +quit && sync && cd ~
Check/Repair Data
cd ~/'Steam/steamcmd' && ~/'Steam/steamcmd/steamcmd.sh' +login 'Espionage724' +app_update '570' validate +quit && sync && cd ~
Runtime
cd ~/'Steam/steamcmd' && ~/'Steam/steamcmd/steamcmd.sh' +login 'Espionage724' +app_update '1628350' +quit && sync && cd ~
ls --directory ~/'Steam/steamapps/common/SteamLinuxRuntime'*
cat ~/'Steam/steamapps/'*'.acf' | grep 'Runtime'
cat ~/'Steam/steamapps/'*'.acf' | grep -e 'sniper' -e '1628350'
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'
In-game Settings
~/'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
Configure in-game Settings
Open Dota 2's in-game Console with the \ key
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
~/'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
+sv_cheats 1 allows controlling bots and
cheats, but may cause click targeting to not work as-expected
8)
~/'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_practice_difficulty '4' +dota_start_ai_game '1' +map 'dota'
Test
2025/04/26: Console can't be typed to directly with SDL_VIDEO_DRIVER=wayland but accepts copy/paste/Enter for host_writeconfig
Above applies to in-game chat too (OHA's !pos 2)
dota.sh likely reverts with validate; TODO: Update script
~/'Steam/steamapps/common/SteamLinuxRuntime_sniper/run' --devel --systemd-scope --import-vulkan-layers --remove-game-overlay -- ~/'Steam/steamapps/common/dota 2 beta/game/dota.sh' -vulkan_disable_steam_shader_cache -vulkan_disable_graphics_pipeline_library -novid -nodev -nojoy -console +sv_lan '1' +dota_bot_practice_difficulty '4' +dota_start_ai_game '1' +map 'dota'
sed -i 's/SDL_VIDEO_DRIVER=x11/SDL_VIDEO_DRIVER=wayland/g' ~/'Steam/steamapps/common/dota 2 beta/game/dota.sh'
cat ~/'Steam/steamapps/common/dota 2 beta/game/dota.sh' | grep 'SDL_VIDEO_DRIVER='
host_writeconfig
!pos 2
Bots Scripts
Bot scripts are automatically loaded and used if present
9)
gio open ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts'
Default Bots
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
Desktop Launcher
mkdir -p ~/'.local/share/applications/Valve' && nano ~/'.local/share/applications/Valve/Dota 2 - Bots.desktop' && sed -i 's/'CHANGEME'/'$USER'/g' ~/'.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_practice_difficulty '4' +dota_start_ai_game '1' +map 'dota'"
Type=Application
StartupNotify=true
Icon=/home/CHANGEME/Steam/steamapps/common/dota 2 beta/game/dota/resource/game-icon.bmp
# End
Troubleshooting
ldd ~/'Steam/steamcmd/linux32/steamcmd'