bastimeyer / dayz-linux-cli-launcher

DayZ Linux CLI Launcher
MIT License
86 stars 11 forks source link

Update workshop content before launching #11

Open taylorsay opened 2 years ago

taylorsay commented 2 years ago

Hi. big props for making this. It is the only one that seems to properly work for me.

My question is about the workshop mods. I play on a server with about 13 mods. On windows in DZSALauncher you can press a button in the settings to verify all your workshop mods which prompts steam to check if they are updated. Is there a way to do this with your tool? Or even without your tool, I have done a fair bit of googling and cannot seem to find anything about it.

The mods on my server are updated every couple of days and it does not tell you that your mods are out of date until after the end of the server queue and since my server is quite popular there is usually a queue. I don't know if there is a command in steamcmd for it or something? Or does your script autocheck for updates?

Thanks

Taylor

bastimeyer commented 2 years ago

verify all your workshop mods which prompts steam to check if they are updated

Unless you've disabled it, Steam should already update any workshop contents when you launch a game. I am not 100% sure though if it also does that when launching games via steam --applaunch $ID, which is what the launcher does.

Is there a way to do this with your tool?

As you can read in the README.md, the launcher currently doesn't make use of the steamcmd utility, which is a secondary tool provided by Valve for performing additional CLI actions on Steam.

SteamCMD supports downloading and verifying workshop content:

In theory, running the following should check for updates of the game itself as well as any workshop content, which is what you're asking for:

steamcmd \
  +login anonymous \
  +app_update 221100 \
  +workshop_status 221100 \
  +quit

Downloading/updating workshop content should also work by running this:

steamcmd \
  +login anonymous \
  +workshop_download_item 221100 $WORKSHOP_ID1 \
  +workshop_download_item 221100 $WORKSHOP_ID2 \
  +workshop_download_item 221100 $WORKSHOP_ID3 \
  +quit

The issue with steamcmd is that it requires having an external dependency, which is problematic when the launcher isn't properly packaged and is just run as a standalone BASH script. It also causes issues when Steam is running in a flatpak container, which is what lots of people do. (edit: it's included in the flatpak)

I was also not aware that downloading/updating workshop content with an anonymous login can be done, but now that I know that it's possible to run steamcmd without any user authentication for interacting with the workshop, I could take a look at integrating it in the future.

Running the command mentioned above on your own before running the launcher should be a good enough workaround for now though and it should answer your question. For Arch and Arch-based distros, SteamCMD is available on the AUR. Otherwise, use the instructions on the links I posted above.

VasianRed commented 2 years ago

Hello are you the developer of dayz-linux-cli-launcher? I have a problem with your script. My system is Fedora 36. I have steam installed not through Flatpack, but through the software center. The script throws an error [dayz-launcher.sh ][info] Resolving steam [dayz-launcher.sh][info] Using non-flatpak mode: steam [dayz-launcher.sh][error] Invalid/missing directory: /home/red_linux/.local/share/Steam/steamapps/common/DayZ

Is it possible to add an auto-check to the script where DayZ is installed. I don't use steam Flatpack, I have a 128 GB ssd, the game is on hdd. thanks

bastimeyer commented 2 years ago

@VasianRed This is offtopic. If you have a question that's not related to this thread, then open a new issue.

What you have asked is however explained in the readme. You just have to read it. See the STEAM_ROOT env var. https://github.com/bastimeyer/dayz-linux-cli-launcher#usage