Download

Mod installation on Linux

I want to download the mods on the server with SteamCMD and copy them to the server in Content/Mods. Downloading the mods works fine but I end up with compressed files (mod_file1.z; mod_file2.z). The Ark server does no decompression and I did not figure out how. Has anyone any ideas?

I did a few tests on Windows with the ARKServerLauncher. It uses steamCMD the same way I do but then reads all .z files and writes the uncompressed file to the mod folder…

What exactly is the problem?

The problem is that I need the uncompressed files.

If its your mod… they are already uncompressed in your Unreal Editor install.
If it’s somebody elses mod… you are going to have to ask them… politely… for the uncompressed originals, and hope they are willing to give them to you.

I need the cooked uncompressed files and not the original files.
SteamCMD loads the mod and creates 2 sub folders: WindowsNoEditor and LinuxNoEditor. Inside of each of them are the cooked files in a compressed format. The game (or server in this case) needs them in an uncompressed state and I have no idea how to extract them.

When you use Windows and run the Ark launcher, the tool starts steamCMD to download the mod. After that step you have them as compressed files inside steamCMD/workshop/content/360110/<modId> (360110 is the Ark app id if I remember correctly :)). The tool decompresses the files of WindowsNoEditor automatically and puts them in the content/mods/<ModId> folder of your dedicated server.

All I need is that extraction part as I already wrote in my first post.

EDIT:
After some digging, I found out that they are compressed with Ionic.Zlib. That should help other people who want to use their own tools for server management :slight_smile:

Did you found a solution for linux too? Is there anyway to decompress with with bash?

The solution is basically to do what ARKRemote does but sadly I haven’t found a way to do it with bash.

Did you saw any sourcecode from that? Can’t find it for ARKRemote. Maybe we have to write a mono friendly c# 2.0 app …
Did try now a couple of things, to get this working in bash, but still no solution :frowning:

I will write that in Python the next days, hope I find some time for that.

First version: ark-server-manager/z_unpack.py at master · TheCherry/ark-server-manager · GitHub
Not runable, missing imports, need tests. Thats just a fast copied version from ARKRemote, thanks to Face Wound

Its finish: ark-server-manager/z_unpack.py at master · TheCherry/ark-server-manager · GitHub
you can now decompress .z files with that:


python z_unpack.py "modfile.uasset.z" "modfile.uasset"

Hope it work correctly for bigger z files too, need some tests with decompressed files by the original ARK game.

At last there is a .mod file too. Its not hard to build it, but need to code that too.
Then you can start to develop your script.

Hi deekay0, thanks for all the info you have provided so far, it’s allowed me to get my automated system for ARK nearly completed, I’m just missing that one last piece of the puzzle, how do I generate the .mod file? It doesn’t come down with steamCMD.

This. Right. Here.

Hey guys!

Any News to this?

I found the Solution for the mod-files! => ark-server-tools/arkmanager at master · arkmanager/ark-server-tools · GitHub
Could this help?

But im out… Im not so good at Shell :frowning:

All i want to create is a little handy “mods” script. Download / Validate the Mod from Steam, extract it and put it in the Mods Folder… Nothing more :confused:

Dude. You don’t even know how happy I am that I found this. You are a life saver to say the least.

I used your code and turned it into a class for my project:

Ok, so I am like 70% sure I have what you guys are looking for in my script. I am still developing the **** out of this program but I wanted to share it as I have had some hurdles to jump over to accommodate mods thanks to the backward way they are packaged.

There’s the script. As of this writing the (hopefully working) mod stuff is in the dev branch. I am going to do some minor testing to make sure that it all works and I will be ready to merge to master.

One thing I was wondering is if it matters between the WindowsNoEditor and LinuxNoEditor files. I’ve been using Windows for Windows and Linux for Linux, but I see arkmanager uses the Windows branch by default.

Edit:

Well, looks like LinuxNoEditor ends up with massive crashes. Switched to WindowsNoEditor and everything works! I installed Valhalla on my test environment and it is working. I can’t test if the other mods installed work without the mod file (so far I am guessing it does). I will update with more tonight.

I always try to use the Linux versions of the mods first, if available, then if they crash the server, switch to the Windows versions. I’ve got a couple of bash scripts I made to hadle the server updates with or without mods. I don’t mind sharing if anyone is interested… I wrote them for my personal use on my server that’s on my local machine so they may or may not be useful to anyone else. In order to work properly, the client has to be logged in first, whenever there’re mod updates, so the client side can download and build the .mod files. Basically it’s a 2 bash script setup that uses the z_unpack.py script. The main script is basically for running as my normal user, passing in an argument to indicate how I want to update (with or without the mods), and that script in turn calls the other script as the “steam” user to run the actual steamcmd update. At the end, the .mod files are copied from the client to the server. I’m no bash expert so I’m sure there’s room for improvement, but they work well (as long as I don’t forget to run the client and let it update the .mods first).

Here’s the script I use in my docker containers docker_steambase/extract_mod.sh at master · Donavan/docker_steambase · GitHub

My English isn’t very good.
Could u tell me how to use the z_unpack.py.
I installed python and where should i put the .py ??
I have use steamcmd download mod in F:\STEAM\steamapps\workshop\content\346110\842913750 ,so how to use the .py???

Thanks for any answers.