GameServerManagers / LinuxGSM

The command-line tool for quick, simple deployment and management of Linux dedicated game servers.
https://linuxgsm.com
MIT License
4.23k stars 808 forks source link

[ARK] Mods install/update #802

Closed m0gL1 closed 7 years ago

m0gL1 commented 8 years ago

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_downloaditem [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

dgibbs64 commented 8 years ago

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

DarthDestroyer commented 8 years ago

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!

UltimateByte commented 8 years ago

@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

Felino41 commented 7 years ago

@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?

DarthDestroyer commented 7 years ago

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... :-(

Felino41 commented 7 years ago

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...

DarthDestroyer commented 7 years ago

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... :-(

UltimateByte commented 7 years ago

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

DarthDestroyer commented 7 years ago

@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?

Felino41 commented 7 years ago

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!

UltimateByte commented 7 years ago

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 ?

DarthDestroyer commented 7 years ago

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!

UltimateByte commented 7 years ago

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

DarthDestroyer commented 7 years ago

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 :( )

UltimateByte commented 7 years ago

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.

usud85 commented 7 years ago

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

zazufira commented 7 years ago

What is your solution? Please

usud85 commented 7 years ago

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

DarthDestroyer commented 7 years ago

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 ;-)

usud85 commented 7 years ago

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/

zazufira commented 7 years ago

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

UltimateByte commented 7 years ago

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

lock[bot] commented 6 years ago

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.