Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature]: DayZ Workshop Auto-Update #4535

Open
Sou-ei opened this issue Mar 15, 2024 · 2 comments
Open

[Feature]: DayZ Workshop Auto-Update #4535

Sou-ei opened this issue Mar 15, 2024 · 2 comments

Comments

@Sou-ei
Copy link

Sou-ei commented Mar 15, 2024

User story

would be cool if the dayz server gets support for workshop mods with autoupdates

Game

DayZ

Linux distro

Ubuntu 22.04

Command

command: mods-install, command: mods-update, command: mods-remove

Further information

Mods are currently not supported

@whytf
Copy link

whytf commented Apr 7, 2024

+1

@whytf
Copy link

whytf commented Apr 8, 2024

For the time being i have scripted a simple version of this feature, at this time it only handles downloading, copying files & keys, however it could help in future development:

  • it assumes LGSM defaults
  • that the actual config used is common.cfg and that username and password are enclosed in ""
  • that steamcmd is installed in default location
  • that a modlist.txt is present in serverfiles directory
  • that each line in modlist.txt looks like this: "Mod_ID,@Mod_Name"
  • it doesn't handle putting all the mods inside common.cfg to be loaded
  • yes it is similar and based on windows version of this script that is written in .bat and used by some server owners, myself included
  • same as with windows version, if you plan on having many mods it is better to use new account with dayz as logging into steamcmd is rate limited and login happens once for every mod
  • old mod folder, for example @Mod_Name directory in serverfiles is deleted and replaced each time this script runs
  • has been tested only on debian 12
#!/bin/bash

MOD_LIST="$HOME/serverfiles/modlist.txt"
KEYS_DEST="$HOME/serverfiles"
STEAMCMD_EXE="$HOME/.steam/steamcmd/steamcmd.sh"
WORKSHOP_PATH="$HOME/.local/share/Steam/steamapps/workshop/content/221100"
steamuser=$(grep "steamuser" $HOME/lgsm/config-lgsm/dayzserver/common.cfg | cut -d'"' -f2)
steampass=$(grep "steampass" $HOME/lgsm/config-lgsm/dayzserver/common.cfg | cut -d'"' -f2)

if [ ! -f "${MOD_LIST}" ]; then
    echo "Error: modlist.txt not found."
fi

while IFS= read -r line || [[ -n "$line" ]]; do
    ID=$(echo "$line" | cut -d',' -f1)
    ${STEAMCMD_EXE} +login "${steamuser}" "${steampass}" +workshop_download_item 221100 "${ID}" +quit
done < "${MOD_LIST}"

while IFS= read -r line || [[ -n "$line" ]]; do
    ID=$(echo "$line" | cut -d',' -f1)
    ModName=$(echo "$line" | cut -d',' -f2)
    
    if [ -d "$HOME/serverfiles/${ModName}" ]; then
        rm -rf "$HOME/serverfiles/${ModName}"
    fi
   
    cp -r "${WORKSHOP_PATH}/${ID}" "$HOME/serverfiles/${ModName}"

    if [ -d "$HOME/serverfiles/${ModName}/keys" ]; then
        cp -r "$HOME/serverfiles/${ModName}/keys" "${KEYS_DEST}"
    fi
done < "${MOD_LIST}"

echo "Mod folders copied and renamed successfully."

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: 🆕 New Issues
Development

No branches or pull requests

2 participants