# requirements
dpkg --add-architecture i386
apt-update
apt install steam
apt-get install mesa-utils
apt install mesa-vulkan-drivers libglx-mesa0:i386 mesa-vulkan-drivers:i386 libgl1-mesa-dri:i386 libxtst6:i386 libpipewire-0.3-dev libbz2-dev
apt-get install xvfb xserver-xephyr tigervnc-standalone-server x11-utils gnumeric
#NOTICE: steam might not be able to launch in case of the tmpfs /dev/shm filesystem being full. it seems safe to just delete u1001-Shm_* files and u1002-Shm_ files. It should be fine because the files exists as long as at least one process has them open. So until steam is killed i assume. You dont need to be root for killing them, the user running the bot has permissions to rm the files
#intel specific:
apt-get remove xserver-xorg-video-intel
#fonts
#remember to check locally if font is available.
#on arch based distributions: xorg-fonts-misc
#probably good idea to symlink the download folder
ln -s /home/autismbot1/.steam/debian-installation/steamapps/common/Counter-Strike\ Source/cstrike/download /home/autismbot2/.steam/debian-installation/steamapps/common/Counter-Strike\ Source/cstrike/download
dpkg-reconfigure locales
en_US.UTF 8
apt install libgtk2.0-0:i386
/home/gameservers/.steam/debian-installation/steamapps/common/Counter-Strike Source/cstrike/cfg/autoexec.cfg:
alias loop "exec looptest.cfg; wait 5; loop;"; wait 5; loop;
exporting correct SDL_VIDEO_X11_VISUALID value is important before steam login for starting games correctly
With the virtual desktop related to the VNC/x2go/nomachine client you can log into steam using the normal GUI ->
## bashrc for users
in the users thats running a session edit the .bashrc file and add the follwing (remember SDL_VIDEO_X11_VISUALID deppends on glxinfo from xterm terminal):
if [[ $DISPLAY ]]; then
echo 'SDL_VIDEO_X11_VISUALID: ' $SDL_VIDEO_X11_VISUALID
export SDL_VIDEO_X11_VISUALID=0x205
echo 'SDL_VIDEO_X11_VISUALID: ' $SDL_VIDEO_X11_VISUALID
dbus-run-session /usr/games/steam -applaunch 240 -novid -noipx -nojoy -noshaderapi
fi
0x205, 0x209
#if running steam native libraries instead of runtime libraries one might require following apt install for making libpipewire work
#check if all libs are present with
cd ~/.steam/steam/ubuntu12_32
LD_LIBRARY_PATH=. ldd vgui2_s.so
2024 january note: If bots cant launch check if /dev/shm is full (files exist on system as long as a process keeps them open, so memory fully used and none available).
df -h -> check /dev/shm/ tmps filesystem
pgrep -u autismbot2
pkill -9 -u autismbot2
2024 february note: if steamwebhelper is stuck try to clean out /tmp folder, there might be a lot of leftover files for steam and chromium based processes that steamwebhelper generated. remember to also delete in the dumps folder cause it might be spammed with a lot files. Recreate the dumps folder. Owned by user root and group autismbots.
groupadd autismbots
usermod -a -G autismbots autismbot1
usermod -a -G autismbots autismbot2
usermod -a -G autismbots autismbot3
usermod -a -G autismbots autismbot4
chown root:autismbots -R /tmp/dumps
chmod 755 -R /tmp/dumps
remember to remove source_engine*.lock files from /tmp if they tend to clamp things up.
now using tigervnc instead of x2go.
vncviewer -SecurityTypes VncAuth,TLSVnc ip:X Display
for example: vncviewer -SecurityTypes VncAuth,TLSVnc 127.0.0.1:1
limiting cpu can throttle the download speed as well. if bots cant connect and are missing files, let them try to download stuff with the cpu limiting commented out instead.
#pip3 extra
pip3 install watchdog