ModsUpdater
Download link
What the script does:
Creates a "ModsUpdate" folder located in the "VintagestoryData\ModConfig" folder and creates a config.ini file
Browses mods folde
Extracts the modinfo.json from ZIP-files of each mod into the "temp" folder (created at the root of the program)
Compares the version number shown in the modinfo.json and the online one and downloads the mod if the version is more recent.
Deletes zip file of the old version mod.
Deletes the created 'temp' folder.
Detects the language of your system and automatically loads the language file (for now only english and french) if presents in lang directory. If not, english is loaded. You can add yours yourself or send it to me.
** Basic use **
Run the program, you don't have to do anything. The script takes care of comparing the versions of the installed mods and those online and automatically downloads the new versions in the "Mods" folder.
**Advanced usage (via config.ini)**
The [ModPath] is for those who use VintageLauncher. You have to uncomment the path \VintageStoryModVault and comment \VintagestoryData\Mods in order the program looks for the right mods directory.
The [Mod_Exclusion] section allows you to exclude mods from the update process. This is useful for mods with unsupported or unwanted alternative versions. Just add the name of the zip file (with the extension). 1 Mod per line.
If you need more than 10 slots just add additional lines to the end :
mod11 =
mod12 =
etc...
You may need put some mods in the [Mod_Exclusion] in these situations :
- if there is a .net7 version of the mod and you're not running the .net7 version of Vinstage Story. (ex: Better Firepit, A Culinary Artillery)
- if there several versions of a same mod (ex : StructuresSpawnChances)
PS : If the program closes immediately after launch, that's probably because there is a mod which canot be updated and shoud be put into the [Mod_exclusion] section..
******************************************************************
I first wrote this program as a programming exercise in Python. And then, as I found it useful, I decided to share it.