[GH-ISSUE #802] [ARK] Mods install/update #640

Closed
opened 2026-02-27 02:02:49 +03:00 by kerem · 23 comments
Owner

Originally created by @m0gL1 on GitHub (Apr 29, 2016).
Original GitHub issue: https://github.com/GameServerManagers/LinuxGSM/issues/802

Originally assigned to: @UltimateByte on GitHub.

hi everybody,

our community is running an ark survival evolved server using your script on debian and it seems, that an automated mod update extension can be added in an easy way to your existing code, please check:

COMMAND

./steamcmd.sh +login [USERNAME] [PASSWORD] +force_install_dir /home/USERNAME/serverfiles/ShooterGame/Content/Mods +workshop_download_item [ARKSERVER-STEAM-ID] [ARK-MOD-ID] validate +quit

2 KNOWN ISSUES

  1. steamcmd.sh doesn´t take the forced path into account, it saves the mod at /home/USERNAME/steamcmd/steamapps/workshop/content/[ARKSERVER-STEAM-ID]/[ARK-MOD-ID] instead of forced path /home/USERNAME/serverfiles/ShooterGame/Content/Mods
  2. can´t find the [ARK-MOD-ID].mod file, but i assume it´s just a simple renaming of mod.info, needs to be checked upfront..

looking forward to get your statement, thanks in advance.
kind regards,
m0gL1

Originally created by @m0gL1 on GitHub (Apr 29, 2016). Original GitHub issue: https://github.com/GameServerManagers/LinuxGSM/issues/802 Originally assigned to: @UltimateByte on GitHub. hi everybody, our community is running an ark survival evolved server using your script on debian and it seems, that an automated mod update extension can be added in an easy way to your existing code, please check: ### COMMAND _./steamcmd.sh +login [USERNAME] [PASSWORD] +force_install_dir /home/USERNAME/serverfiles/ShooterGame/Content/Mods +workshop_download_item [ARKSERVER-STEAM-ID] [ARK-MOD-ID] validate +quit_ ### 2 KNOWN ISSUES 1. _steamcmd.sh_ doesn´t take the forced path into account, it saves the mod at _/home/USERNAME/steamcmd/steamapps/workshop/content/[ARKSERVER-STEAM-ID]/[ARK-MOD-ID]_ instead of forced path _/home/USERNAME/serverfiles/ShooterGame/Content/Mods_ 2. can´t find the _[ARK-MOD-ID].mod_ file, but i assume it´s just a simple renaming of _mod.info_, needs to be checked upfront.. looking forward to get your statement, thanks in advance. kind regards, m0gL1
kerem 2026-02-27 02:02:49 +03:00
Author
Owner

@dgibbs64 commented on GitHub (Jul 12, 2016):

My knowledge of Ark and how workshop functions is limited. However I welcome pull requests for this

<!-- gh-comment-id:232204839 --> @dgibbs64 commented on GitHub (Jul 12, 2016): My knowledge of Ark and how workshop functions is limited. However I welcome pull requests for this
Author
Owner

@DarthDestroyer commented on GitHub (Aug 28, 2016):

With 244.3, it should be done!

See: http://www.ark-survival.net/en/2016/07/08/ark-survival-evolved-patch-244-3-244-4/

It installs and updates the mods they are in game.ini!

I havent tested it!

<!-- gh-comment-id:242967211 --> @DarthDestroyer commented on GitHub (Aug 28, 2016): With 244.3, it should be done! See: http://www.ark-survival.net/en/2016/07/08/ark-survival-evolved-patch-244-3-244-4/ It installs and updates the mods they are in game.ini! I havent tested it!
Author
Owner

@UltimateByte commented on GitHub (Aug 28, 2016):

@DarthDestroyer Nice. Will also solve the "update mods functionality".

PS : About start options within the script : Fixed by commits since June, 10th https://github.com/GameServerManagers/LinuxGSM/commits/master/ARKSurvivalEvolved/arkserver

<!-- gh-comment-id:242968368 --> @UltimateByte commented on GitHub (Aug 28, 2016): @DarthDestroyer Nice. Will also solve the "update mods functionality". PS : About start options within the script : Fixed by commits since June, 10th https://github.com/GameServerManagers/LinuxGSM/commits/master/ARKSurvivalEvolved/arkserver
Author
Owner

@Felino41 commented on GitHub (Oct 25, 2016):

@DarthDestroyer Which Game.ini should I put them in? So far I´ve only put the mods in the GameUserSettings.ini found under /Saved/config/LinuxServer. Now if I open the Game.ini in that folder its just an empty file?

<!-- gh-comment-id:255973074 --> @Felino41 commented on GitHub (Oct 25, 2016): @DarthDestroyer Which Game.ini should I put them in? So far I´ve only put the mods in the GameUserSettings.ini found under /Saved/config/LinuxServer. Now if I open the Game.ini in that folder its just an empty file?
Author
Owner

@DarthDestroyer commented on GitHub (Oct 25, 2016):

Windows & Linux Dedicated Servers now support automatic mod download/installation/updating! Just add “-automanagedmods” to your launch commandline and it will do so before the server launches (note for Maps this will not work unless you’re specifying the Workshop ID to load a Mod Map). On Linux Servers, you need to run this script (included with the ARK dedicated server files) once to install SteamCMD: \SteamCMDInstall.sh
You can also specify a manual list of extra Steam Workshop Mods/Maps/TC ID’s to download/install/update in your Game.ini via (with the commandline as normal to actually use them in-game), example:

[ModInstaller]
ModIDS=680481868
ModIDS=682394267
ModIDS=714672786

It is from the Link, i posted!
Like i said, i havent tested it yet...

But i had your "emoty ini file", too!
My solution was: chown it to another user and remove write permission to the start / steam user!
It will work fine and cant change it back to nothing / default...
I hate Ark for that! It switches faster Servervars then i boxershorts! If it finds a Var that is deprecated or changed, it will reset your ini without a note or backup!

The permission trick is one way, but ugly to maintain! :-
But its a workaround! I havent found a Ini Desciption / Editor / Generator with all new changes, some of them try its best but arent correct everytime...

Ark is and will be a survival game! Not only for players... :-
That is a reason, why we switched back to default without mods... :-(

<!-- gh-comment-id:255997840 --> @DarthDestroyer commented on GitHub (Oct 25, 2016): Windows & Linux Dedicated Servers now support automatic mod download/installation/updating! Just add “-automanagedmods” to your launch commandline and it will do so before the server launches (note for Maps this will not work unless you’re specifying the Workshop ID to load a Mod Map). On Linux Servers, you need to run this script (included with the ARK dedicated server files) once to install SteamCMD: \SteamCMDInstall.sh You can also specify a manual list of extra Steam Workshop Mods/Maps/TC ID’s to download/install/update in your Game.ini via (with the commandline as normal to actually use them in-game), example: [ModInstaller] ModIDS=680481868 ModIDS=682394267 ModIDS=714672786 # It is from the Link, i posted! Like i said, i havent tested it yet... But i had your "emoty ini file", too! My solution was: chown it to another user and remove write permission to the start / steam user! It will work fine and cant change it back to nothing / default... I hate Ark for that! It switches faster Servervars then i boxershorts! If it finds a Var that is deprecated or changed, it will reset your ini without a note or backup! The permission trick is one way, but ugly to maintain! :-\ But its a workaround! I havent found a Ini Desciption / Editor / Generator with all new changes, some of them try its best but arent correct everytime... Ark is and will be a survival game! Not only for players... :-\ That is a reason, why we switched back to default without mods... :-(
Author
Owner

@Felino41 commented on GitHub (Oct 25, 2016):

Thank you for your fast and detailed description! Once I get to it I will definetely try everything out although as you said it seems to be a pain to do so... :/
I would love to be able to just play the game on my server without having to worry so much but it seems as of now you can only really do that without mods...

<!-- gh-comment-id:255998832 --> @Felino41 commented on GitHub (Oct 25, 2016): Thank you for your fast and detailed description! Once I get to it I will definetely try everything out although as you said it seems to be a pain to do so... :/ I would love to be able to just play the game on my server without having to worry so much but it seems as of now you can only really do that without mods...
Author
Owner

@DarthDestroyer commented on GitHub (Oct 25, 2016):

if the modupdate / install works like posted above, you only have to restart it! But it doesnt check mod updates on the fly!
For example, you have some mods autoinstalled and it works fine, server restart at 3am (or something)...
looks good first, but what happens, when the mod gets an update at 4am? The server will update it at the next 3am, okay... But every user will get the new version installed through workshop and isnt able to play on the "old" version...

like i said, i havent tested it, but that was the pain before! But more work for me! I had to wait for the updates as client, had to start the game once so i got the mods installed / moved, stop the server, upload every file or mod (because it wasnt easy to know which mod got an update) and after that, start the server again... So, you see the old pain... if you have the server to restart only, now. It would help a little bit... But a Restart every hour isnt the best solution! But it seems to be the only way... :-(

<!-- gh-comment-id:256000481 --> @DarthDestroyer commented on GitHub (Oct 25, 2016): if the modupdate / install works like posted above, you only have to restart it! But it doesnt check mod updates on the fly! For example, you have some mods autoinstalled and it works fine, server restart at 3am (or something)... looks good first, but what happens, when the mod gets an update at 4am? The server will update it at the next 3am, okay... But every user will get the new version installed through workshop and isnt able to play on the "old" version... like i said, i havent tested it, but that was the pain before! But more work for me! I had to wait for the updates as client, had to start the game once so i got the mods installed / moved, stop the server, upload every file or mod (because it wasnt easy to know which mod got an update) and after that, start the server again... So, you see the old pain... if you have the server to restart only, now. It would help a little bit... But a Restart every hour isnt the best solution! But it seems to be the only way... :-(
Author
Owner

@UltimateByte commented on GitHub (Oct 25, 2016):

So in the end, are there any changes we could make to arkserver to make your life easier ?

<!-- gh-comment-id:256004079 --> @UltimateByte commented on GitHub (Oct 25, 2016): So in the end, are there any changes we could make to arkserver to make your life easier ?
Author
Owner

@DarthDestroyer commented on GitHub (Oct 25, 2016):

@UltimateByte, maybe... Im not deep into the workshop thing, but if it is possible to check for mod updates in periods and restart the server to force update/install of listed mods?

<!-- gh-comment-id:256094241 --> @DarthDestroyer commented on GitHub (Oct 25, 2016): @UltimateByte, maybe... Im not deep into the workshop thing, but if it is possible to check for mod updates in periods and restart the server to force update/install of listed mods?
Author
Owner

@Felino41 commented on GitHub (Oct 25, 2016):

That would indeed be a valuable improvement. In my opinion Mods are a very important part of the game, but alot of the Server Admins are having a hard time manually updating or restarting servers to keep everything up to date so I´m guessing a viable option to automate these kind of things would be very much appreciated!

<!-- gh-comment-id:256113973 --> @Felino41 commented on GitHub (Oct 25, 2016): That would indeed be a valuable improvement. In my opinion Mods are a very important part of the game, but alot of the Server Admins are having a hard time manually updating or restarting servers to keep everything up to date so I´m guessing a viable option to automate these kind of things would be very much appreciated!
Author
Owner

@UltimateByte commented on GitHub (Oct 25, 2016):

So what changes ? How do you translate that to code ? Or at least what would be the process ? Any idea ?
How would you explain that to somebody like me that doesn't use Arma 3 so that he could maybe add the feature ?

<!-- gh-comment-id:256129669 --> @UltimateByte commented on GitHub (Oct 25, 2016): So what changes ? How do you translate that to code ? Or at least what would be the process ? Any idea ? How would you explain that to somebody like me that doesn't use Arma 3 so that he could maybe add the feature ?
Author
Owner

@DarthDestroyer commented on GitHub (Oct 25, 2016):

OK... Let me try it:

First: Check every x Minutes if there is an Mod Update (listed in the lgsm config?!)
Second: If there is an update => Restart the Server

Yeah, the lgsm config has to write / set the ModList into the ark.ini but this shouldnt be hard...
Or, maybe there is a way to put it in the commandline, too? Instead of writing it into the ini?

But like i said, im not into the workshop thing and if there is a way to check...
I had written a script to download mods... Maybe i find it, Gimme a Sec!

<!-- gh-comment-id:256133543 --> @DarthDestroyer commented on GitHub (Oct 25, 2016): OK... Let me try it: First: Check every x Minutes if there is an Mod Update (listed in the lgsm config?!) Second: If there is an update => Restart the Server Yeah, the lgsm config has to write / set the ModList into the ark.ini but this shouldnt be hard... Or, maybe there is a way to put it in the commandline, too? Instead of writing it into the ini? But like i said, im not into the workshop thing and if there is a way to check... I had written a script to download mods... Maybe i find it, Gimme a Sec!
Author
Owner

@UltimateByte commented on GitHub (Oct 25, 2016):

Thanks. Yes, it would definitely help to know how the thing works. :)

<!-- gh-comment-id:256134483 --> @UltimateByte commented on GitHub (Oct 25, 2016): Thanks. Yes, it would definitely help to know how the thing works. :)
Author
Owner

@DarthDestroyer commented on GitHub (Oct 25, 2016):

Okay... i'm not a scripter at this point! ;)

I had two files, for the mods!

#!/bin/bash ./steamcmd/steamcmd.sh +runscript /home/steam/ark/mods.txt

@ShutdownOnFailedCommand 1 @NoPromptForPassword 1 login anonymous // <username> <password> // server force_install_dir /home/steam/ark/serverfiles // app_update 376030 validate // workshop workshop_download_item 346110 609380111 validate workshop_download_item 346110 543859212 validate workshop_download_item 346110 564895376 validate workshop_download_item 346110 531396658 validate workshop_download_item 346110 554678442 validate workshop_download_item 346110 510590313 validate workshop_download_item 346110 544598236 validate workshop_download_item 346110 520373758 validate workshop_download_item 346110 531713045 validate // workshop_download_item 346110 581683725 validate workshop_download_item 346110 539464369 validate workshop_download_item 346110 534952636 validate workshop_download_item 346110 527194172 validate workshop_download_item 346110 523835795 validate workshop_download_item 346110 558651608 validate workshop_download_item 346110 525507438 validate workshop_download_item 346110 536214294 validate workshop_download_item 346110 543752418 validate workshop_download_item 346110 572277026 validate workshop_download_item 346110 520879363 validate workshop_download_item 346110 505861851 validate // workshop_download_item 346110 512261028 validate workshop_download_item 346110 574069627 validate workshop_download_item 346110 543828831 validate quit

Let me explain my Try! (I have to say Try, because i had a big mistake! The downloaded Mods are "packed" or something else and after this, i couldnt figure out the right way!)

You start the First file and it does the List of Steam Commands, listed in File 2!
I works well and stable... But it doesnt get the "real" files!
If there is a Workshop-Command, to check these Files for an update (there should be a command, the client does the same!) you could check the result and at a difference, you could Restart the Server easily... ( There is no other way to start the mod download and Mod loading :( )

<!-- gh-comment-id:256137028 --> @DarthDestroyer commented on GitHub (Oct 25, 2016): Okay... i'm not a scripter at this point! ;) I had two files, for the mods! 1. `#!/bin/bash ./steamcmd/steamcmd.sh +runscript /home/steam/ark/mods.txt` 2. `@ShutdownOnFailedCommand 1 @NoPromptForPassword 1 login anonymous // <username> <password> // server force_install_dir /home/steam/ark/serverfiles // app_update 376030 validate // workshop workshop_download_item 346110 609380111 validate workshop_download_item 346110 543859212 validate workshop_download_item 346110 564895376 validate workshop_download_item 346110 531396658 validate workshop_download_item 346110 554678442 validate workshop_download_item 346110 510590313 validate workshop_download_item 346110 544598236 validate workshop_download_item 346110 520373758 validate workshop_download_item 346110 531713045 validate // workshop_download_item 346110 581683725 validate workshop_download_item 346110 539464369 validate workshop_download_item 346110 534952636 validate workshop_download_item 346110 527194172 validate workshop_download_item 346110 523835795 validate workshop_download_item 346110 558651608 validate workshop_download_item 346110 525507438 validate workshop_download_item 346110 536214294 validate workshop_download_item 346110 543752418 validate workshop_download_item 346110 572277026 validate workshop_download_item 346110 520879363 validate workshop_download_item 346110 505861851 validate // workshop_download_item 346110 512261028 validate workshop_download_item 346110 574069627 validate workshop_download_item 346110 543828831 validate quit` Let me explain my Try! (I have to say Try, because i had a big mistake! The downloaded Mods are "packed" or something else and after this, i couldnt figure out the right way!) You start the First file and it does the List of Steam Commands, listed in File 2! I works well and stable... But it doesnt get the "real" files! If there is a Workshop-Command, to check these Files for an update (there should be a command, the client does the same!) you could check the result and at a difference, you could Restart the Server easily... ( There is no other way to start the mod download and Mod loading :( )
Author
Owner

@UltimateByte commented on GitHub (Oct 25, 2016):

Thanks a lot. I'm pretty sure it'll help the one that will dev this. Maybe me. Please note that i'm working on other LGSM stuff currently that needs to be finished first, so this is a low priority for me. As usual, anyone willing to pull-request the code for the feature is more than welcome.

<!-- gh-comment-id:256146474 --> @UltimateByte commented on GitHub (Oct 25, 2016): Thanks a lot. I'm pretty sure it'll help the one that will dev this. Maybe me. Please note that i'm working on other LGSM stuff currently that needs to be finished first, so this is a low priority for me. As usual, anyone willing to pull-request the code for the feature is more than welcome.
Author
Owner

@usud85 commented on GitHub (Nov 28, 2016):

i have a solution for updates, my server checks automatically for updates .. then downloads everything shuts down ... warns users and startup again

<!-- gh-comment-id:263310893 --> @usud85 commented on GitHub (Nov 28, 2016): i have a solution for updates, my server checks automatically for updates .. then downloads everything shuts down ... warns users and startup again
Author
Owner

@zazufira commented on GitHub (Dec 7, 2016):

What is your solution? Please

<!-- gh-comment-id:265415444 --> @zazufira commented on GitHub (Dec 7, 2016): What is your solution? Please
Author
Owner

@usud85 commented on GitHub (Dec 7, 2016):

i do not know if i can post pieces of 3rd party codes !?

<!-- gh-comment-id:265420265 --> @usud85 commented on GitHub (Dec 7, 2016): i do not know if i can post pieces of 3rd party codes !?
Author
Owner

@DarthDestroyer commented on GitHub (Dec 7, 2016):

It depends on the License, but if you got code, it is likely open source...

Atleast, you could post your source where you found something ;-)

<!-- gh-comment-id:265420728 --> @DarthDestroyer commented on GitHub (Dec 7, 2016): It depends on the License, but if you got code, it is likely open source... Atleast, you could post your source where you found something ;-)
Author
Owner

@usud85 commented on GitHub (Dec 7, 2016):

i used parts of this tool

https://github.com/FezVrasta/ark-server-tools

it has possibility to update mods and game itself, i warn users with mcrcon

$MCRCON -c -H $MCRCONHOST -P $MCRCONPORT -p $MCRCONPW cmd1 "broadcast 10min bis zum Neustart (Updates)\n"

this tool
https://sourceforge.net/projects/mcrcon/

<!-- gh-comment-id:265424103 --> @usud85 commented on GitHub (Dec 7, 2016): i used parts of this tool https://github.com/FezVrasta/ark-server-tools it has possibility to update mods and game itself, i warn users with mcrcon $MCRCON -c -H $MCRCONHOST -P $MCRCONPORT -p $MCRCONPW cmd1 "broadcast 10min bis zum Neustart (Updates)\n" this tool https://sourceforge.net/projects/mcrcon/
Author
Owner

@zazufira commented on GitHub (Dec 7, 2016):

Ok, remains to find the solution ^^,
thanks anyway :-)

<!-- gh-comment-id:265440128 --> @zazufira commented on GitHub (Dec 7, 2016): Ok, remains to find the solution ^^, thanks anyway :-)
Author
Owner

@UltimateByte commented on GitHub (Feb 25, 2017):

Closing, because of https://github.com/GameServerManagers/LinuxGSM/issues/1336

<!-- gh-comment-id:282448153 --> @UltimateByte commented on GitHub (Feb 25, 2017): Closing, because of https://github.com/GameServerManagers/LinuxGSM/issues/1336
Author
Owner

@lock[bot] commented on GitHub (Jul 18, 2018):

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

<!-- gh-comment-id:406109661 --> @lock[bot] commented on GitHub (Jul 18, 2018): This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
Sign in to join this conversation.
No labels
Atomic
Epic
cannot reproduce
command: backup
command: console
command: debug
command: details
command: fast-dl
command: install
command: mods
command: monitor
command: post-details
command: restart
command: send
command: start
command: stop
command: update
command: update-lgsm
command: validate
command: wipe
distro: AlmaLinux
distro: Arch Linux
distro: CentOS
distro: Debian
distro: Fedora
distro: RedHat
distro: Rocky Linux
distro: Ubuntu
distro: openSUSE
engine: goldsrc
engine: source
game: 7 Days to Die
game: ARMA 3
game: Ark: Survival Evolved
game: Assetto Corsa
game: Avorion
game: BATTALION: Legacy
game: Barotrauma
game: Battalion 1944
game: Battlefield 1942
game: Black Mesa: Deathmatch
game: Blade Symphony
game: Call of Duty 2
game: Call of Duty 4
game: Call of Duty: United Offensive
game: Counter-Strike 1.6
game: Counter-Strike 2
game: Counter-Strike: Global Offensive
game: Counter-Strike: Source
game: Day of Infamy
game: Dayz
game: Death Match Classic
game: Don't Starve Together
game: ET: Legacy
game: Eco
game: Factorio
game: Factorio
game: Garry's Mod
game: Half-Life
game: Hurtword
game: Insurgecy
game: Insurgecy
game: Insurgency: Sandstorm
game: Just Cause 3
game: Killing Floor
game: Killing Floor 2
game: Left 4 Dead 2
game: Minecraft
game: Minecraft Bedrock
game: Mordhau
game: Multi Theft Auto
game: Mumble
game: Natural Selection 2
game: No More Room in Hell
game: Pavlov VR
game: Post Scriptum
game: Project Zomboid
game: Quake 3
game: QuakeWorld
game: Red Orchestra: Ostfront 41-45
game: Return to Castle Wolfenstein
game: Rising World
game: Rust
game: San Andreas Multiplayer
game: Satisfactory
game: Soldat
game: Soldier of Fortune 2
game: Squad
game: Squad 44
game: Starbound
game: Stationeers
game: Sven Co-op
game: Team Fortress 2
game: Teamspeak 3
game: Teeworlds
game: Terraria
game: The Front
game: Unreal Tournament 2004
game: Unreal Tournament 3
game: Unreal Tournament 99
game: Unturned
game: Valheim
game: Wurm Unlimited
game: Zombie Master Reborn
game: label missing
good first issue
help wanted
info: alerts
info: dependency
info: docker
info: docs
info: email
info: query
info: steamcmd
info: systemd
info: tmux
info: website
info: website
needs more info
outcome: duplicate
outcome: issue resolved
outcome: issue resolved
outcome: issue unresolved
outcome: pr accepted
outcome: pr rejected
outcome: unconfirmed
outcome: wontfix
outcome: wrong forum
potential-duplicate
priority
pull-request
type: bug
type: feature
type: feature
type: feature request
type: game server request
type: refactor
waiting response
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/LinuxGSM#640
No description provided.