traindoc Posted February 10, 2022 Share Posted February 10, 2022 (edited) 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: Which would appear in the config file like this: 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: And here's what a public one will look like: 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: 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 February 10, 2022 by traindoc getstoopid and Jericoshost 2 Link to comment Share on other sites More sharing options...
traindoc Posted February 26, 2022 Author Share Posted February 26, 2022 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 getstoopid 1 Link to comment Share on other sites More sharing options...
getstoopid Posted February 26, 2022 Share Posted February 26, 2022 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 traindoc 1 Link to comment Share on other sites More sharing options...
traindoc Posted February 26, 2022 Author Share Posted February 26, 2022 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. getstoopid 1 Link to comment Share on other sites More sharing options...
getstoopid Posted February 27, 2022 Share Posted February 27, 2022 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? Link to comment Share on other sites More sharing options...
traindoc Posted February 27, 2022 Author Share Posted February 27, 2022 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 More sharing options...
traindoc Posted March 1, 2022 Author Share Posted March 1, 2022 I've added all I could possibly think of at this point and will be putting this project down. The project is FOSS so feel free to contribute and or fork as needed. https://github.com/TrainDoctor/PZModScraper getstoopid 1 Link to comment Share on other sites More sharing options...
JohannesMP Posted March 25, 2023 Share Posted March 25, 2023 +1. Being able to simply provide a collection field in my server .ini file would help a lot when running a dedicated headless server. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now