cyrale / project-zomboid

A Project Zomboid server with LinuxGSM.
29 stars 56 forks source link

Workshop Mod Support #5

Closed maxfield-allison closed 4 years ago

maxfield-allison commented 4 years ago

As it stands, adding mods to the server via the 'workshopitems=' line in the server.ini does not seem to allow the server process to connect and download the mods appropriately. From my research, this appears to be caused by the process not being tied to a steam user. I'm not 100% sure how to go about solving for this. I believe it is possible to download with 'login anonymous' but this still doesn't allow the server process to automatically handle the downloads and requires a lot of manual work. Other solutions already exist in some forms so adapting one of them for zomboid seems feasible. Including them in the docker image is where my knowledge ends however.

maxfield-allison commented 4 years ago

Also found this project that looks promising. https://github.com/Astavinu/WorkshopManager

maxfield-allison commented 4 years ago

I am officially a stupid doodoo head. It works, the start-server.sh (read: I) was having issues with arguments.

cyrale commented 4 years ago

You're not stupid ;)

I don't understand. Did you find a solution ? So if, can you share it ?

maxfield-allison commented 4 years ago

The problem was due to me using an alternate name for servertest.ini (e.g. bluewillows.ini). The server wasn't reading the workshop items line in the bluewillows.ini file because it was reading the original servertest file and in servertest.ini everything was default. There isn't a way for us to set the start-server.sh -servername {yourservername} argument in the container and therefore only servertest.ini may be used. Perhaps an environment variable that adds -servername {yourservername} when executing start-server.sh could be implemented with little effort.

maxfield-allison commented 4 years ago

additionally, I found during testing that start-server.sh doesn't overrule the java json file with its vm or game arguments. In older versions and on the windows version bat file, adding -servername {yourservername} at the end of the line zombie.network.GameServer in start-server.bat/.sh would change the ini file the server used. In linux the file doesn't use the arguments correctly within the file and therefore you must add these arguments when calling the script e.g. ./start-server.sh -xms4096m -xmx8192m -- servername bluewillows. I have not tested the java arguments in this manner but the game options work this way and have been tested. My workaround for the java args was to directly edit the projectzomboid64.json file. Once they were changed there, any server would use the correct params.

cyrale commented 4 years ago

If I understand, you want:

Is it right ?

maxfield-allison commented 4 years ago

That is correct

cyrale commented 4 years ago

OK. With le latest version tagged 0.2, you can use mods by changing server-data/Server/${SERVER_NAME}.ini. I follow this guide: Using mods with your Nitrado server. First, set Workshop IDs in WorkshopItems, separate each ID with a semicolon. The server download mods now but not use it. If you want to activate a mod, specify the mod ID in Mods like it's described in the guide.

To change command line parameters, it's a bit trickier. It can be done by overriding fn_parms in server configuration file. Use LGSM_SERVER_CONFIG or LGSM_SERVER_CONFIG_FILE described in parent image.

This sample show you how to do all this things and an alternative way to change version to beta branch: bluewillows.zip

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.