Jump to content

Dedicated Servers: Provide mod collection ID field


traindoc

Recommended Posts

This one is very simple, provide an option that allows server operators/admins the ability to specify a collection of mods using a workshop collection id:

 

image.png.376d0ae62513c427f136d0793499ad02.png

 

Which would appear in the config file like this:

 

image.png.a65fa1256450c9a0f35d047af8486bc8.png

 

Which would automatically grab all of the associated workshop ids for the mods in the collection and ensure they are downloaded to the server (and or updated etc).

 

I would love to gauge the interest of actual server operators/admins like myself, amongst how players feel about this. Apparently Garry's mod already has workshop collection functionality and I would feel it's only right for a game so supportive of mods like Zomboid to provide a similar functionality.

 

This remaining section is for the technical devs at indie-stone and their contractors etc. Some of this might be interesting to the more technical people around here but I highly doubt it. It's highly Steam Web API focused and boring af imo but hey to each their own.
 

Quote

Nature of implementation is completely up to you guys but a word of warning, you'll need to account for unlisted, private and friends-only collection visibility settings and their resulting json output I believe you'll want to look for the key "collectiondetails" with it's numerical sub-keys which when successful (when set to public) have their "result" key populated with the value "1" and contain more than just the "publishedfileid" and "result" keys. All other visibility settings return "result": "9".

Now, unlisted, friends-only and hidden do all do what? They report back a bare-bones list of... nothing! Basically, only public collections are properly reported to the Steam Web API regarding their workshop IDs. (Unlisted not reporting anything is kinda strange and frustrating but talking about Valve and improper API functionality and undocumented aspects of an API made by Valve is liable to make me want to shoot myself...)

 

Here's what a private, unlisted or friends-only collection will report:

 

image.png.920234a02e0e846a38c7e81981d3156f.png

 

 

 

 

 

 

And here's what a public one will look like:

 

image.png.228c0b6f02abe82b859c61ba54dc3610.png

 

 

 

 

 

 

 

 

 

 

 

 

 

Here's the high quality third-party Steam Web API Docs by xpaw (creator of SteamDB) and here's an example of what the field should look like when testing visibility settings:

 

image.png.265ad07b49daf3311b6b91f47cee0551.png

 

 

 

 

 

 

 

 

 

You will need to test this yourself with a WebAPI token, when using this link just specify localhost since I doubt you'll be integrating this into your own servers during testing.

Then an Access Token (click on "What is this" above the setting and then execute the relevant code to get this token, on Firefox you will need to enable script execution by typing a specified phrase) followed by your SteamID you can execute and get examples of the JSON output you will need to parse to get the Workshop IDs.

I'm not proposing any implementation that goes ahead needs to scrape for Mod IDs, that would (and should imo) still be up to the server admin. This just allows the mods that players will definitely need to have downloaded to be rapidly included without having to edit the config and while being able to use the best way of collecting mods and checking compatibility etc that we have, followed by a quick restart and bam: new mods are synced to end-users.

 

Cheers!

Edited by traindoc
Link to comment
Share on other sites

  • traindoc changed the title to Dedicated Servers: Provide mod collection ID field
  • 3 weeks later...

As a follow-up to this suggestion, I've actually put together a python script that uses the Steam WebAPI to accomplish the nitty gritty layed out in this post! Server Admins/Operators rejoice! You no longer have to spend a bunch of time collecting workshop IDs and Mod IDs in case of a catastrophic failure or something going wrong.

Enjoy.

https://github.com/TrainDoctor/PZModScraper

Link to comment
Share on other sites

4 minutes ago, getstoopid said:

Appreciate your work!

There is also the ModManager Mod that you can find on steam which nicely integrates with the games mod-interface - actually replaces it.

 

https://steamcommunity.com/sharedfiles/filedetails/?id=2694448564

 

https://steamcommunity.com/sharedfiles/filedetails/?id=2725216703

 

I'm well aware, this is for server operators primarily working on a config level.

Link to comment
Share on other sites

6 hours ago, getstoopid said:

Will give it a try in the next days as I am in the process of restarting my server, so this will come in handy =) How does it handle multiple mods in one mod like Filibusters? Is there some kind of "info" in the output?

It parses all mod ids from a mod page. It's up to you to pick the Mod ID's you don't want and to remove them from the output. If I get around to it I'll make a config setup that allows you to automatically filter mod IDs from being spit out in the output.

Link to comment
Share on other sites

  • 1 year later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...