
Mods / ModsUpdater
Author: Laerinok
Side: Both
Created: Jul 16th 2023 at 4:16 PM
Last modified: 3 days ago
Downloads: 19764
Follow Unfollow 482
Latest version:
VS_ModsUpdater.v2.1.2_Windows.zip
Vintage Story ModsUpdater
Your go-to buddy for always-up-to-date Vintage Story mods
Tired of Messing with Vintage Story Mods? Let ModsUpdater Take the Wheel!
Keeping your favorite Vintage Story mods up-to-date can feel like a chore, right? Manually checking for new versions, downloading them one by one... it eats into your precious playtime!
ModsUpdater for Vintage Story is here to change that. Think of it as your personal mod management assistant, designed to make your Vintage Story modding experience smooth and hassle-free.
Stop wrestling with your mods – download Vintage Story ModsUpdater today and get back to playing!
Linux Version: HERE
Important Warning/Point to Know - Read Before Use
- This program is not a mod! It's a separate program that allows you to update your mods. You do not need to put it in your mods folder, but in the location of your choice. This program needs to be unzipped, and you have to run the VS_ModsUpdater.exe file
- Whether you update your mods with ModsUpdater, another program, or manually yourself, it's always safer to make a backup of your save beforehand! A new version of a mod can break your save.
- There is a section to exclude certain mods from the update process, which is essential for terrain generation mods that, once installed, should not be updated.
- Finally, there is a WIKI, don't hesitate to read it. Although the program is autonomous and works without any intervention on your part, personalizing its configuration can make your life easier and avoid problems.
- For those who are cautious about running new executables, you can find a recent analysis of the last version by VirusTotal here: VirusTotal Scan. Note that Nuitka is the compiler I use to create the executable.
What can ModsUpdater do for you?
- Stay Updated Effortlessly: Forget constantly checking ModDB. ModsUpdater compares the mods you have installed with the latest versions available, letting you know if an update is out there.
- Choose Your Update Style: Whether you prefer to sit back and let the magic happen with automatic downloads, or you like to be in control and see what's new with manual updates (including changelogs!), ModsUpdater has you covered.
- Safety First with Backups: Before any update happens, ModsUpdater can create a backup of your current mods. That way, if anything goes sideways, you can easily revert to your previous setup. You can even tell it how many backups to keep!
- Say Goodbye to Unwanted Updates: Got a mod you want to keep as it is? No problem! You can tell ModsUpdater to ignore specific mods during update checks.
- Keep Track of Your Collection: Want a neat list of all the mods you're running? ModsUpdater can generate a clear and shareable list in both PDF, JSON and HTML formats. Perfect for sharing your setup with friends!
- Plays Well with Others (CLI): For the more tech-savvy among you, ModsUpdater can even be run from the command line with special arguments to customize how it works.
- Speaks Your Language: The interface is available in multiple languages, making it accessible to a wider range of players.
- Keeps Itself Up-to-Date: ModsUpdater automatically checks for its own updates when you launch it, so you'll always have the latest and greatest version.
How it Works Simply:
When you run VS_ModsUpdater, it first looks at its settings (which you can customize in a config.ini file). Then, it checks for new versions of your mods.
- Automatic Mode: If you've set it to auto-update, it will download and update everything for you. You'll even get to see the changelogs afterwards!
- Manual Mode: If you prefer to be in control, it will show you what updates are available, let you read the changelogs, and ask you to confirm before downloading anything.
Before updating any mods, it makes a backup, just in case. And when it's all done (or even if there are no updates), it can create a handy list of your mods in PDF and JSON formats.
Take Control with Command Line Options (for advanced users):
You can also run ModsUpdater from your terminal or command prompt with special commands to change how it works for that specific run. For example, you can tell it to use a different mods folder, skip creating the PDF list, or change the logging level.
Ready to spend less time managing mods and more time enjoying Vintage Story? Give ModsUpdater a try!
Want to Customize?
ModsUpdater uses a simple configuration file (config.ini) that you can easily edit to fine-tune how it works. You'll find options for backups, download settings, language, and even the Vintage Story game version you're playing.
config.ini
) & ArgumentsThe config.ini
file contains the configuration parameters for the application. It is located in the same directory as the main script (Windows) or ~/.config/VS_ModsUpdater
(Linux). Here are the main sections and their options:
[ModsUpdater]
version: 2.0.1
version: Current version of the ModsUpdater application (information).
[Logging]
log_level: INFO
log_level: Level of detail for logs recorded by the application (e.g., DEBUG, INFO, WARNING, ERROR). DEBUG will display the most details.
[Options]
exclude_prerelease_mods: false
auto_update: true
max_workers: 4
timeout 10
exclude_prerelease_mods: true to exclude pre-release mod versions during update checks, false to include them.
auto_update: true to enable automatic downloading of updates (after checking), false to use manual mode where you confirm each download.
max_workers: Maximum number of threads to use for downloading mods in parallel. Increasing this value may speed up downloads but may also consume more system resources. The maximum value allowed for this setting is 10.
timeout: Timeout in seconds for HTTP requests during update checks and mod downloads. A typical useful range is between 5 and 30 seconds. Setting it too low might cause connection errors on slower networks, while setting it too high might make the application wait unnecessarily long if a server is unresponsive.
[Backup_Mods]
backup_folder: backup_mods
max_backups: 3
modlist_folder: Modlist
backup_folder: Name of the directory (created in the application directory by default) where mod backups will be stored. You can also specify a full path if you wish to store backups elsewhere.
max_backups: Maximum number of mod backups to keep. Older backups will be deleted when this limit is reached.
modlist_folder: Name of the directory (created in the application directory by default) where the mod lists in PDF and JSON format will be saved. You can also specify a full path if you wish to save the lists elsewhere.
[ModsPath]
path: D:\Game\VintagestoryData\Mods
path: Full path to the directory where your Vintage Story mods are installed on your computer. This is crucial for the application to find your mods. (Example for Windows: D:\Game\VintagestoryData\Mods)
[Language]
language: en_US
language: Language code to use for the application interface (e.g., en_US for English, fr_FR for French). This value must correspond to the name of a file (without the .json
extension) present in the lang
subdirectory of the application. Make sure the corresponding language file exists.
[Game_Version]
user_game_version: 1.20.5
user_game_version: Maximum game version target for mod updates.
- If you specify a version (for example, 1.20.5), the application will not download mod updates that are only compatible with Vintage Story versions higher than the one specified.
- If this option is left empty (
""
) or set to None, the application will download the latest available update for each mod, regardless of the compatible Vintage Story version. Caution: this means you might download mods that are not compatible with your current game version. If you want to stay on a specific Vintage Story version, define the version, but remember to change it when you update the game.
[Mod_Exclusion]
mods: mod_a.zip, my_old_mod.cs
mods: List of filenames (without the path) of mods to ignore during update checks and downloads. Filenames should be separated by commas and spaces (e.g., mod_a.zip, my_old_mod.cs).
Command Line Arguments Usage
The script can be executed with arguments to customize its behavior:
--no-pause
: Disables the pause at the end of the script execution. Useful for non-interactive execution or in automated scripts.
--modspath "<path>"
: Allows you to specify the path to the Vintage Story mods directory directly during execution. The path must be enclosed in quotation marks if it contains spaces. This argument replaces the path defined in the config.ini
file.
--no-json:
Disables the automatic generation of the mod list in JSON format at the end of execution.
--no-pdf
: Disables the automatic generation of the mod list in PDF format at the end of execution.
--no-html
: Disables the automatic generation of the mod list in HTML format at the end of execution.
--log-level <level>
: Sets the level of detail for logs recorded by the application. Possible options are: DEBUG
, INFO
, WARNING
, ERROR
, CRITICAL
(in uppercase). This argument replaces the log level defined in the [Logging]
section of config.ini
.
--max-workers <number>
: Allows you to specify the maximum number of threads to use for mod processing. This argument replaces the max_workers
value defined in the [Options]
section of config.ini
.
--timeout <seconds>
: Sets the timeout in seconds for HTTP requests during update checks and mod downloads. This argument replaces the timeout
value defined in the [Options]
section of config.ini
.
Usage Examples:
VS_ModsUpdater.exe --modspath "D:\Vintage Story\mods" --no-pdf
This command will execute the script using the specified mods directory and will disable the generation of the PDF mod list file. The mods path specified here will replace the one configured in config.ini
.
VS_ModsUpdater.exe --log-level INFO --max-workers 6 --timeout 15
This command will execute the script by setting the log level to INFO
, using a maximum of 6 threads for mod processing, and a timeout of 15 seconds for HTTP requests. These parameters will replace those defined in the config.ini
file for this execution.
When using the argument --modspath, it seems the [Mod_Exclusion] doesn't work.
not sure if it is for both version, Windows and Linux or only Linux.- In some cases, if a mod's filename is present in the [Mod_Exclusion] section of the config.ini file, it is correctly excluded from the update, but it appears in the console as having been updated. (And a backup of the mod is also created.). Seems to be related to Linux only.
- The download link for the script is broken due to a typographical error. fixed in next version
This tool is open-source under the GNU General Public License version 3, meaning it's free for you to use, share, and even modify!
- Deutsch
- English
- Español
- Français
- Italiano
- 日本語
- 한국어 (From gitHub. Thanks purple8cloud)
- Português (Brasil)
- Português (Portugal)
- Русский
- Yкраїнська
- 简体中文
mod, mods, mod updater, mods updater, updater, update, modupdater, mod update, mods updater
Version | For Game version | Downloads | Release date | Changelog | Download | 1-click mod install* |
---|---|---|---|---|---|---|
v2.1.2 | 451 | 3 days ago | Show | VS_ModsUpdater.v2.1.2_Windows.zip | ||
v2.1.1 | 1499 | Apr 9th at 5:34 PM | Show | VS_ModsUpdater.v2.1.1_Windows.zip | ||
v2.0.2 | 644 | Apr 6th at 4:19 PM | Show | VS_ModsUpdater.v2.0.2_Windows.zip | ||
v1.4.2 | 3048 | Feb 17th at 11:21 AM | Show | VS_ModsUpdater.v.1.4.2.zip | ||
v1.4.1 | 319 | Feb 16th at 8:14 PM | Show | VS_ModsUpdater.v.1.4.1.zip | ||
v1.4.0 | 4758 | Apr 2nd 2024 at 3:30 PM | Show | VS_ModsUpdater.v.1.4.0.zip | ||
v1.3.6 | 472 | Mar 26th 2024 at 3:30 PM | Show | VS_ModsUpdater.v.1.3.6.zip | ||
v1.3.5 | 391 | Mar 20th 2024 at 7:11 PM | Show | VS_ModsUpdater.v.1.3.5.zip | ||
v1.3.4 | 696 | Mar 2nd 2024 at 11:50 PM | Show | VS_ModsUpdater.v.1.3.4.zip | ||
v1.3.3 | 368 | Feb 28th 2024 at 12:33 PM | Show | VS_ModsUpdater.v.1.3.3.zip | ||
v1.3.2 | 316 | Feb 24th 2024 at 8:24 PM | Show | VS_ModsUpdater.v.1.3.2.zip | ||
v1.3.1 | 173 | Feb 24th 2024 at 8:24 AM | Show | VS_ModsUpdater.v.1.3.1.zip | ||
v1.3.0 | 209 | Feb 23rd 2024 at 3:43 PM | Show | VS_ModsUpdater.v.1.3.0.zip | ||
v1.2.0 | 1114 | Oct 20th 2023 at 10:52 AM | Show | VS_ModsUpdater.v.1.2.0.zip | ||
v1.1.4 | 446 | Oct 3rd 2023 at 8:00 PM | Show | VS_ModsUpdater.v.1.1.4.zip | ||
v1.1.3 | 350 | Sep 25th 2023 at 10:02 AM | Show | VS_ModsUpdater.v.1.1.3.zip | ||
v1.1.1 | 596 | Aug 26th 2023 at 11:41 AM | Show | VS_ModsUpdater.v.1.1.1.zip | ||
v1.1.0 | 293 | Aug 22nd 2023 at 7:17 AM | Show | VS_ModsUpdater.v.1.1.0.zip | ||
v1.0.10 | 250 | Aug 21st 2023 at 7:36 AM | Show | VS_ModsUpdater.v.1.0.10.zip | ||
v1.0.9 | 328 | Aug 16th 2023 at 4:11 PM | Show | VS_ModsUpdater.v.1.0.9.zip | ||
v1.0.8 | 344 | Aug 9th 2023 at 9:04 PM | Show | VS_ModsUpdater.v.1.0.8.zip | ||
v1.0.7 | 304 | Aug 4th 2023 at 3:18 PM | Show | VS_ModsUpdater.v.1.0.7.zip | ||
v1.0.6 | 214 | Aug 4th 2023 at 7:39 AM | Show | VS_ModsUpdater.v.1.0.6.zip | ||
v1.0.5 | 208 | Aug 3rd 2023 at 5:03 PM | Show | VS_ModsUpdater.v.1.0.5.zip | ||
v1.0.4 | 191 | Aug 2nd 2023 at 3:24 PM | Show | VS_ModsUpdater.v.1.0.4.zip | ||
v1.0.4 | 226 | Aug 2nd 2023 at 3:24 PM | Show | VS_ModsUpdater.v.1.0.4_NET7.zip | ||
v1.0.3 | 305 | Jul 26th 2023 at 8:48 AM | Show | VS_ModsUpdater.v.1.0.3.zip | ||
v1.0.3 | 264 | Jul 29th 2023 at 1:37 PM | Show | VS_ModsUpdater.v.1.0.3_NET7.zip | ||
v1.0.2 | 342 | Jul 19th 2023 at 1:40 PM | Show | VS_ModsUpdater.v.1.0.2.zip | ||
v1.0.1 | 233 | Jul 18th 2023 at 9:39 AM | Show | VS_ModsUpdater.v1.0.1.zip | ||
v1.0.0 | 412 | Jul 16th 2023 at 4:19 PM | Show | VS_ModUpdater.zip |
meatshield
The most important thing is that it's functional. Note to self: Further improve error handling.
Laerinok I was extracting it using extract here (WinRAR). What I've ended up doing is simply copying the the lang folder into C:\Users\myname\ which has made the program actually work. Not sure why it wants to go to that folder but it works :\
meatshield
I think we've found the cause. The indicated paths are strange. They don't correspond to what they should be.
The 'lang' folder must be inside the 'ModsUpdater.v2.1.2' folder.
I have the feeling there's an issue during the extraction of the zip file or during a move operation.
The simplest thing to do is to right-click on the zip file and choose the option 'extract here' or 'extract all' or something similar depending on what you use for archive management. And then move the folder where you want.
ModsUpdater folder view (modlist and backup_mods folders are created after first uses and mod update):

Laerinok
I think i'm a little bit dumb because I don't know how to use the command prompt right. It just said it couldn't find the language json file even though it's there in the folder.
Enter the number of your language choice (leave blank for default English): 2
Traceback (most recent call last):
File "C:\Users\myname\DOWNLO~1\MODSUP~1.2\main.py", line 174, in <module>
File "C:\Users\myname\DOWNLO~1\MODSUP~1.2\main.py", line 88, in initialize_config
File "C:\Users\myname\DOWNLO~1\MODSUP~1.2\lang.py", line 79, in load_translations
FileNotFoundError: [Error] Language file not found: C:\Users\myname\lang\en_US.json. Ensure the path is correct.
Here is the modlist. A good chunk of them are out of date i would guess
ACulinaryArtillery 1.2.5.zip"
AncientTools_V1.5.25.zip"
animalcages_v3.2.2.zip"
apeflowerpots-1.20.4-v1.2.3.zip"
apegrapes-v1.20.4-1.2.6.zip"
Auto Map Markers 4.0.1 (Vintagestory 1.20).zip"
autoconfiglib_2.0.6.zip"
BetterFirepit-1.1.5.zip"
BetterProspecting_1.7.0.zip"
BetterRuinsv0.4.9.zip"
BetterSticks_v1.2.0.zip"
blacksmithenhancements_1.0.5.zip"
blockoverlay-4.2.0.zip"
buzzwords_1.7.0.zip"
CarryOn-1.20.0-pre_v1.8.0-pre.1.zip"
CartwrightsCaravan_1.1.1.zip"
ChestOrganizer-1.2.3.zip"
chiseltools1.14.12.zip"
claycasting-v1.2.02.zip"
CommonLib_VS1.20.0-rc.1_net7_v2.6.1.zip"
configlib_1.5.2.zip"
ConnectedStairs-v1.0.0.zip"
DanaCanCook-v0.2.6.zip"
DanaTweaks-v3.4.1.zip"
drbraziers_1.1.1.zip"
ExpandedFoods 1.7.4.zip"
ExtraInfo-v1.9.7.zip"
FixedPaths.zip"
foodshelves_1.5.3.zip"
hangingbaskets_1.1.0.zip"
hangingoillamps_1.0.3.zip"
ImprovedHandbookRecipes_1.1.3.zip"
kevinsfurniture_1.6.4.zip"
Knapster_v2.14.1.zip"
more-map-icons-1.1.0.zip"
oneroof_1.8.2.zip"
PackedDirtPaths1.2.1.zip"
pottery-wheel_v1.1.2.zip"
primitivesurvival_3.7.6.zip"
ProspectTogether-2.0.2.zip"
Sammiches_v1.2.7.zip"
smithingplus_1.4.0.zip"
statushudcont_3.2.6.zip"
StickyMouseButtons-1.1.1.zip"
StoneQuarry_VS1.20.1_net7_v3.4.3.zip"
StorageOptions-v1.0.2.zip"
thrifty-smithing-1.2.0.zip"
UsefulDrifterLoot 1.2.1.zip"
usefulstuff17_1.4.0.zip"
Verticality_0.3.1.zip"
vsimgui_1.1.7.zip"
xinvtweaks_v1.8.0.zip"
meatshield
That's even more surprising. The problem must be coming from somewhere else... I imagine you don't have a 'modlist' folder that was created, nor any 'modlist.pdf' / 'json' / 'html' files. But could you give me the list of mods you are using? Although I doubt a mod is the cause.
What I don't understand is that it looks like normal behavior. Could you launch it from the Windows command prompt? That should prevent the window from closing at the end, and if there's an error that isn't captured by the log, it will be displayed.
Once in the command prompt, you need to navigate to the location of 'VS_ModsUpdater.exe' to execute it.
Laerinok
Whenever I run the program after the config file, a few seconds pass and then it just closes. I check the log and it sends me the same thing as before.
I am using English for as my language. Here's my config file:
[ModsUpdater]
version = 2.1.2
[Logging]
log_level = DEBUG
[Options]
exclude_prerelease_mods = false
auto_update = True
max_workers = 4
timeout = 10
[Backup_Mods]
backup_folder = backup_mods
max_backups = 3
modlist_folder = modlist
[ModsPath]
path = D:\Vintagestory\Mods
[Language]
language = en_US
[Game_Version]
user_game_version = None
[Mod_Exclusion]
mods =
meatshield
It's very strange because the fact that '2025-04-27 11:29:10,087 - INFO - Program terminated' is in the log indicates that the program didn't crash. That's really the last message that can only appear upon the 'normal' exit of the program.
You said that the config file was created. Could you please show it to me? What happens when you launch the program after the config file is created?
Perhaps I made a mistake when pressing the key to continue the program after configuration and so even though you press the key to continue the program, it understands that you want to exit. (And that's the hypothesis I think is most likely, but only with a language other than English). What language are you using?
Laerinok
I've restarted the program and I've actually deleted and redownloaded it two or three times. On the first launch of the program I put in the info for lanuage, path to mods folder, asking to block updates and asking for manual or auto updates. It makes the config file and then asks me if i want to continue. I then type "y", a couple seconds pass, and then it closes. I've used your program before and it worked fine without this issue happening.
meatshield
Have you restarted the program?
Because what you're describing resembles the normal behavior of the first use, which is:
But on the 2nd launch, the program is supposed to run normally.
I started up the program and it lets me put in the lanague and stuff but soon after it never starts the update and just closes. this is the log I get everytime i try to use it.
2025-04-27 11:29:07,669 - DEBUG - Logging configured successfully with 'DEBUG' level and custom file handler!
2025-04-27 11:29:07,671 - INFO - OS: Windows - ModsUpdater v2.1.2
2025-04-27 11:29:07,671 - INFO - For Vintage Story v1.20.9
2025-04-27 11:29:07,671 - INFO - Checking for ModsUpdater script update
2025-04-27 11:29:07,674 - DEBUG - Starting new HTTPS connection (1): mods.vintagestory.at:443
2025-04-27 11:29:08,261 - DEBUG - https://mods.vintagestory.at:443 "GET /modsupdater HTTP/1.1" 200 None
2025-04-27 11:29:10,075 - INFO - ModsUpdater - No new version
2025-04-27 11:29:10,087 - INFO - Program terminated
I'm guessing it's the connection part but I'm connected to the internet so I'm unsure how to fix tjhis issue
RowanSkie
The problem arises with corrupted files. In that case, even 7-Zip can't open them. I've done some tests in that regard.
On the other hand, I hadn't paid attention to the fact that fixes could be made for the same version. In that case, indeed, the function makes sense.
Regarding the API search issue, I need to retrieve a minimum of information from the modinfo.json file inside the zip. Without the modID, the API is useless to me. I can't rely on the filename, as it can be anything.
That being said, when implementing the modlist.json file, I had somewhat this idea of using it to create a way to redownload installed mods. This just implies that the file has been created at least once and that it's easily accessible.
Something to think about.
7-Zip lets me edit ZIP files, so it helps me redownload the original files, as well as when people post hotfixes on the same versions (Maltiez does this a lot). No malfunctions on that one.
Maybe if the ModDB API got a way to search for it? Or maybe save which mod came from where and use it as a springboard to redownload.
RowanSkie
Ah yes, indeed. Actually, I realized it wasn't working completely as it should. I had imagined it would be useful in case of a corrupted file. But in fact, if the file is corrupted, it was impossible to recover the information contained in the zip file to download it again. So, it only downloaded the "valid" files, so not really useful at first glance.
I need to find a proper way to make it actually work.
In what context did you use it? Didn't you encounter any malfunctions?
The redownload all mods got removed :<
MyuriC
Ah... antiviruses, their blind trust, and false positives. A story as old as the internet (and even before).
Did you read the information on the Vintage Story download page? Or are you also too lazy to read it? It clearly states that antivirus software often recognizes the installation file as a false positive. Windows Defender displays an alert every time there's a new installation. And yet, it's the official file, and you downloaded it despite the warning.
Let's be clear, I will never blame anyone for being wary of files downloaded from the internet. On the other hand, being lazy and blindly trusting software, and not trying to understand the computer mechanisms behind it, may harm you in the long run.
I'm not going to repeat what I've already explained and what gdorn has, very well explained in detail (thanks for explanations and links). I'm doing my best, with my limited knowledge, to provide the most comfortable experience, but I have neither the desire nor the means to pay for a digitally signed file.
I'm flattered that you compare it to Vortex, but we're not playing in the same league. Moreover, if Vortex isn't detected by Windows Defender, it's also because it has been digitally signed.
My program is first and foremost a learning exercise for me, which I freely offer to the community. Everyone is free to use it or not.
And finally, to conclude, let's use common sense. I distribute the program on the official Vintage Story mod hosting server, with my personal account. That's the last place to put a malicious file.
Finally, I make the source code available. It has already been inspected numerous times by competent and not lazy users. The slightest problem would have been detected a long time ago
Windows Defender has a long history of false positives when it comes to python scripts compiled into executables. Annoyingly, really the only thing a dev can do is upload the binary to Microsoft directly: https://www.microsoft.com/en-us/wdsi/filesubmission and this will need to happen for every new version.
Remember, Windows Defender flagged Chrome when Google released it. It is not infallible.
Another option for the user is to run the python script, no executable version needed. Install python, clone the repo from the source tab with git, and run "python main.py" in the working copy. Yeah, this is exactly why Laerinok is offering a pre-compiled version.
To be 100% clear: Windows Defender is wrong: https://medium.com/@markhank/how-to-stop-your-python-programs-being-seen-as-malware-bfd7eb407a7
And this problem goes back over a decade:Â https://stackoverflow.com/questions/23815222/py2exe-application-flagged-as-malware-by-windows-defender-what-to-do
I am a lazy person. But I trust WindowsDefender. And the flagged data was Puwaders.C!ml.
Even Vortex never got flagged by WindowsDefender. And that updates mods for other games automatically as well. So I heavily distrust this.
I downloaded it again and used the override feature for windows defender. Was quite the hassle to get the bloody thing to kooperate, but i finaly get it to obey me.
Thank you for your reasuring comment and thank you for your hard work providing us with a great tool
Cheers
N3xus1980
RoughPebble
I am well aware that sometimes the script can be detected as malware and blocked by anti-virus software. Unfortunately, there isn't much more I can do. I've already stopped packaging the files into a single file as in v1. This results is a folder with a multitude of files and folders, but anti-virus programs are less suspicious if the files are not hidden.
After that, these are still Python executables without a signature recognized by anti-virus software, so they are more easily targeted and blocked.
Either you run a battery of anti-virus tests (like VirusTotal, for example) and you'll see that the result is safe and you can exclude the file from scans, or you can wait (sometimes a few days later, the file is no longer detected as positive), or you can move on to something else.
If you have any doubts, always run all the tests you can. However, it's important to understand that this type of program is very likely to be flagged as a false positive.
And finally, only if you trust the program, you can add it to the exclusion zone of your antivirus software. Then you'll be able to use it.
VirusTotal Scan Result: VS_ModsUpdater.v2.1.1_Windows.zip
Only 2 positive detections out of 65 tests. Nuitka is the library I use to make the binary.
@N3xus1980 I am also having the same issue :(
I used the programm for sevaral days now and all seems well. But now, for some unknown reasons, Windows Defender marked it as a Virus and i can´t start it anymore.
Is anyone else having this issue?
Fafhrd
The subject of required libraries crossed my mind too. But in the end, I wasn't really sure what to do with that information. What I mean is, if a mod needs a library, it makes sense that the modder would update the dependency first and then the mod. Otherwise, they potentially break the game for everyone. So in practice, they will always update the mod last, or at least at the same time.
However, there is still one point to consider: what if the dependency is tagged as a pre-release version, and in the modupdater options, the user has enabled the option not to download mods if they are in pre-release?
That might be something to look into in the future.
Laerinok I totally get you regarding GUI needlessly complicating things whereas your effortless y/n cli does all that we *need*, I was too used to the convention of elaborate mod organizers. Thanks for recommending the MO2 plugin mod, I checked it out and may use it, but the effectiveness of your program is making that seem somewhat pointless if I'm honest haha. After giving it more thought, one of the main downsides of a "blind" and serial update process you employ is the potential for a prompted mod update to take place without the knowledge of whether or not any dependent mods have also updated (if need be) alongside. I know the dev(s) for combat overhaul require overhaul library for their mod to work, and luckily they're updated around the same time so I always know that one update will follow another. But in the case of library-type mods updating without their dependent mods and potentially breaking them (albeit unlikely), perhaps it would be nice to know the update status when applicable, if depencies are catalogued somewhere other the mod descriptions (which would make this quite difficult I imagine).
Kolljak
Wow, thank you so much for your words! I'm glad you like the mod so much. 😊
You are the most wonderful modder ever. I am using this mod forever. i had to manually do this shit.
GON
Hello,
You can use the following arguments:
Take a look in the Want to Customize? section, open the spoiler (Configuration (config.ini) & Arguments), and at the very bottom you have Command Line Arguments Usage with examples.
Then, either you use the console, or you create a shortcut with the argument at the end of the line:
Hello,
How to adjust the config for the modlist output? We want to turn off the pdf file generation
JimmyMac
I really appreciate your interest in the program :)
I acknowledge that in terms of integration it would be practical. However, regarding usefulness, I'm more hesitant, because once the mods are updated, you have to restart the game anyway (it's still better though). Another major problem is that allowing the execution of an executable program from within is potentially a huge security vulnerability. So, for that reason alone, I doubt it's feasible, at least without the game allowing it. That being said, the problem already exists with simple mods..
Hyomoto
Absolutely, I had indeed grasped the humorous side of the message. I immediately had the same image of the guy with glasses in front of his console and like in the Matrix.
Let's say my response was mostly general, because as you say, it's an idea that can be legitimate. I acknowledge that the application might seem a bit austere, but what matters to me is that it does the job.
Not being a programmer (just starting out), I really appreciate the feedback, whatever it may be, from people who know their stuff. First, because it's useful. Second, because it shows interest in the work, so it's a bit gratifying, I admit :)
I am *not* advocating for a GUI, just to be clear. As a programmer myself I am fully aware of the value of say, not having to debug a GUI interface in addition to writing the useful backend, let alone making it oh, I dunno, user friendly and etc... It is entirely functional as is, and while I recognize many may make this request, I'm totally in support of it being fire and forget.
I'm not a moding expert at all but an idea that came to me is if it is possible to make a custom GUI that you could popup with a hotkey or customize the menu with a new button through a mod (I've seen other mods do that with a hotkey) and that custom GUI would have a button in it "Check for Mod Updates" and when that button is pressed it would open a command line window and ran the ModsUpdater exe. The idea sorta integrates ModsUpdater into the VS interface but doesn't really change the current exe. Seems to me that it would be simular to how you can press Open Mods Folder and it goes outside of VS and just opens a seprate window. Or someone could make a companion mod to ModsUpdater that does this. Just a thought
Hyomoto
💊 Red pill swallowed since day one. The graphical interface is a sweet illusion for the unawakened. We carve our path in the real Matrix, command line by command line, following that damn white rabbit! 🐇
And more seriously, I knew nothing about programming when I started version 1.0.0. The graphical interface was illusory back then, especially since I just wanted to make a small script for my personal use. It's with time that it has evolved. That said, there are still quite a few reasons why I'm not sure about ever releasing a GUI:
But who knows... a version 3.0 with a GUI isn't out of the question one day. 😉
🐇
Something that really sets VS apart from other games that share the space is it easy mod support. Update the server and all players will update their mods as well, it's trivial to update the server and call it good. The only issue is finding them. No more! Amazing. I find it slightly hilarious that it's a command line program though. When it's time to update the mods I put on my best hacker glasses, pencil mustache and press the Enter key with my Power Glove. Time to hack the matrix!
JimmyMac
Good catch! Thanks for the report. Fixed and will be in the next version.
when there is a folder in the mods folder it says
Warning: Directory found in Mods folder: {item_name}. Please ensure you have .zip files, not folders.
I don't think {item_name} was intended. Shouldn't it be the folder name?
Vinland
Yes, you can re-zip them. But be careful, the files must be at the root of the archive. Don't zip the folder.
Good zipfile:
Bad zipfile:
EDIT: msg edited to activate the ping et to add images
Laerinok Man, I completely missed that! I'm so used to having to unzip mods ;-; in that case, could I just zip them back up or should I redownload and replace them all with the .zips?
Vinland
I don't think you are 😉, but indeed, you shouldn't unzip the mods when you download them! Even if it generally works, it's not a good habit. It's specified in the game's wiki:
On Windows, you can get there fast by using the run file dialog. Hit the key combination Win+R and type
%appdata%/VintagestoryData/Mods
into the box.Once you're in the Mods folder, drag and drop the mod file from the download folder to the Mods folder - or you can use cut/copy and paste commands as you prefer. Do not extract the mod zip. Just place the .zip file into your Mods folder, that's all you have to do. In the game's main menu Mod Manager, click the Reload Mods button - or else close and reopen your game. The mod should be loaded and listed in the mod manager. Congratulations on your very first modded Vintage Story Experience!
Completely accepting I may be an idiot and doing this wrong, I did the initial setup then tried to run it to update mods and got "Please ensure you have .zip files, not folders." for each of them. Do the mods in the /Mods/ folder need to be zipped?
Changelog:
if not args.no_pdf:
condition was moved within theexport_pdf
module to wrap only the PDF generation steps. This ensures that the icon extraction logic, which runs before PDF generation, is always executed, making icons available for other export formats (like HTML) even if PDF export is skipped.--no-html
to disable HTML mod list export.--no-html
option.RowanSkie
No, not with the same instance: One instance = One config.
That being said, by making copies of the ModsUpdater folder, you can configure as many instances as you want (with a different modpath for each of them). Then you just need to launch the one you want. With a few well-named shortcuts, you can have an update for each different mod folder.
Or another solution, you can configure multiple paths in the config.ini file, but only one must be active. You just need to comment out / uncomment the lines with a # in front. You have only one folder of ModsUpdater but you will have to comment/decomment the ligne each time you want to change.
Edit the config.ini file and add paths:
[ModsPath]
path = D:\Game\Data\VintagestoryData\ModFolder_1
# path = D:\Game\Data\VintagestoryData\ModFolder_2
# path = D:\Game\Data\VintagestoryData\ModFolder_3
# path = D:\Game\Data\VintagestoryData\ModFolder_4
[ModsPath]
# path = D:\Game\Data\VintagestoryData\ModFolder_1
# path = D:\Game\Data\VintagestoryData\ModFolder_2
path = D:\Game\Data\VintagestoryData\ModFolder_3
# path = D:\Game\Data\VintagestoryData\ModFolder_4
I've thought about making a system with multiple configurations. For the moment, I haven't found it better to have multiple instances, and it would require quite a few changes in the code. I can think about it. But if it happens, it won't be for soon.
Personally, I recommend, and I use, multiple instances (so multiple folders) for each different configuration.
NMND
😄
Is it possible to have multiple mod folders at once?
Yäyhurräy for v2! (\o/)
Last news: Here is the list of the latest fixes that have been implemented.
There are still new bugs during the export of modlists for manual downloads. This only affects the export of the mod list, so it's not too bothersome for the moment.
No ETA for the v2.0.3 yet , but it should not be too long
Fafhrd
Hello and a big thank you for your message! I'm really touched by your enthusiasm, and it makes me very happy to see that you like and find the program useful. 😊
Regarding MO2, I must admit that I only know it by name; I've never used it personally. But your suggestions are very interesting and give me food for thought.
The idea of a graphical user interface (GUI) has indeed crossed my mind at some point. However, for now, I'm not sure if it will materialize. There are several reasons for this:
For your information, I saw that there's a tool called "Vintage Story - Mod Organizer 2 Support Tools" that mentions the integration of ModsUpdater. From what I understand (having not used MO2), it's probably just a simple shortcut that points to the ModsUpdater executable. It doesn't quite match what you're looking for, but it's good to know 😉.
Once again, thank you very much for your ideas and your support! It's this kind of feedback that motivates me to continue developing and improving this tool.
This is a game changer. CLI is super straightforward - I've used it on many occasion to update various mods with brief associated change summaries for each one. I'm accustomed to using MO2 for other games, and while that has a fully fleshed out GUI, I'd love to see elements from it eventually (if this updater ever gets a gui) such as overwriting/overwritten icons, right click to visit on _mod DB name - opens browser_, load order if that's ever going to be important for vanilla assets etc, mod collection profiles (seems unecessary imo but a fun idea). The list goes on. Maybe support for MO2 is what we need instead with an updater plugin that can be ported from this?? I'm sure this is a lot, espcially coming from a lay person like me with no dev's perspective.
Surtur
Indeed. I will look at this. I think it must be the same problem for some other alphabets.
Thanks for yout repport !
EDIT: While waiting for a fix, you can create it in English and then change the language in the config.ini.
FIXED: will be in the next release.
There is a problem if you select the Russian version of the program. In the automatic or manual update option, he considers any option incorrect.
DejFidOFF
Hambone
Glad you appreciate it. ! Thanks a lot :)
Works like a charm, fantastic little tool. Great work!
purple8cloud
Just seen it. Thanks a lot ! I will add it
I sent korean translation to github
Laerinok
As a few servers owner. You are the GOD, thank you <3
IANcel
Thank you very much! As a player myself, I know how tedious updating mods can be. I'm delighted that it makes your life easier.
m1keeee
Indeed, while rewriting the description page for this new version, I erased the information indicating that it wasn't a mod, but a third-party program. Thanks for pointing that out to me ;)
It's just that I have the bad habit of thinking that everyone reads the manuals before using something ^^.
Regarding the reactivation of mods, no, that's not due to ModsUpdater. At least not directly. Its's due to the way the game manages disabled mods. The disabled mods are written in the game's configuration file (\VintagestoryData\clientsettings.json). The game remembers the mod's filename. When ModsUpdater updates the mod, it deletes the old file and downloads the new one. If the filename changes, then it's no longer the one stored by the game. And if the mod's filename changes, the game thinks it's a new mod and activates it. This happens whether you use ModsUpdater or download the mod manually. This is one of the reasons why it's advisable to always delete an unused mod and not just disable it.
To avoid the terrain generation mod issue, there is the [mod_Exclusion] section in the config.ini file which allows you to prevent certain mods from being updated.
Everything is explained in the wiki/readme (and even in the configuration section of this page). 😉
Thanks for you feedback. I'm going to update a few warnings.
Tetsune
Thanks :)
I admit I also liked the scrolling of the mods... But that was purely aesthetic and, above all, illustrated poor efficiency. The mods were processed linearly, one after the other, which took a lot of time. V2 introduces multithreading, which allows multiple mods to be processed simultaneously (depending on the max_workers parameter). As a result, the display as it was no longer makes sense; instead, the name of the processed mod and the progress bar are more meaningful.
I'm very happy that you've noticed a better efficiency compared to the old version. I've indeed learned a lot, and my code is much cleaner and more efficient (even if there's still a lot to improve).
Excellent work, I cannot thank you enough for making updating mods a streamlined process. As someone who is fairly computer-illiterate this is pure magic to me, please keep it up! 😀
pretty cool mod. however;
it wasn't very clear that i had to extract it, and other users may assume its a mod that you have to put in your mods folder like every other mod.
and it seems to have reenabled certain mods that i had disabled, this could mess with or ruin player's worlds if they had for example a terrain gen mod they used in a different playthrough but are no longer using
otherwise it was pretty easy to use
Love the new look! I kinda miss the mods being listed, but it's no biggie. Works much better than the last ver for me too!
Keep up the good work! 🤟
INFO : Version 2 - is done!
It should be landing very soon. Gotta finalize a few little Linux issues, but it should be fast.
While you wait, feel free to check out the new wiki and readme.
Hoping you'll like this new version!
INFO : Version 2 - Some News (Check out the description at the top of the page)
v2 is coming out soon. It's pretty much done, and works great already.
Check out the README for more details.
The v2.0.1-rc1 is available on GitHub.
DudeBroManGuy
The initial loading time is a newly identified issue (hope fixed in v2). It is most likely due to the time required to decompress the file before execution.
However, without additional information about the crash, there's not much I can do. Nothing in the log? You can try running the
.exe
from the Windows console (it must be launched from themodsupdater
directory). It will display the traceback after the crash.For some reason it just hangs for a while on the "limit mod updates to the game version: latest version" screen and then crashes.
Kubimate
Oops...
Which version? v1.4.2 / v1.4.3-preX / v2.0.0-devX?
This is a recurring issue for any executable program, especially if it makes requests to access websites (which is the case here to retrieve mods and information). Additionally, to make distribution easier, I provide an option to bundle everything into a single file, which packages all files together. This often triggers false positives.
For the future v2, I will stop using this bundling method, but the content will be more "messy." However, in practice, it doesn't really matter, and I’m using another system that is known to be more antivirus-friendly.
I'm fully aware of this issue, but I don’t have much room to maneuver (at least with my current knowledge). Even I get annoyed by it sometimes. Everything works fine, and then one day, for no reason, the antivirus suddenly flags it as a positive...
The .exe is giving my ESET a stroke 🙄
Drayce91
Got it. Thanks !
Laerinok Thanks for your hard work! I'm getting some new errors on v2 and sent you the logs on github.
INFO : Version 2 - Some News
The v2 is progressing better than I expected (at least for this phase). The auto-update feature is fully functional, and I’ve finally managed to properly retrieve all changelogs (or at least, I hope so). I don’t plan to modify or release version 1.4.3 anymore. In the end, I’ve made much more progress on v2 than I initially thought.
As soon as I restore the mod list generation feature in PDF format (with a bonus JSON format for those interested), I will officially release v2.
In the meantime, v2.0.0-dev2 is available on GitHub.
Completed Features:
Auto-download fully functional
Changelog retrieval fully functional (all changelogs should now be complete)
Next steps:
Introduce manual mod downloading so users can decide whether to update a mod or not.
Redo the localization, as the current implementation no longer meets my needs.
I think I’ve figured out where the freeze at program launch was coming from. The most likely cause is that the script keeps growing with each version. To make distribution easier, I create the executable as a single file (only dependencies like language files, etc., are kept alongside it).
As a result, in order to run, the file must first extract itself into Windows' temp folder. This process can take varying amounts of time depending on the system configuration. If we also factor in the time needed to connect to the server to check for script updates, it might sometimes feel slow.
For version 2, I’m testing different methods to create the executable, but so far, none fully satisfy me. I will put both oh them soon to see if we see a difference.
Drayce91
Drayce91
Thanks. Errors identified. I’ll also add logs for this type of error (Check GitHub for the explanations).
Eldrom
Thank you ! 😊
Laerinok Thanks for all the work. I tried out v2 dev-1 and can't get it working. I posted the issue on github for you to look at when you get the chance.
Hi there,
Really appreciate this!
Good work with the colours, it was so easy to use even as a person with no coding experience.
Keep it up!
Louse
Glad everything is finally working! And yes, the normal behavior of the game is to use zipped files—you’re not supposed to unzip them. I should add an info message when the program detects this.
Thanks for the feedback! ;)
Hi I'm having a bit of an issue with trying to get the mod folder right, I have the install on an SSD (D:) and the mods are there (which I correctly point to in the path) but it keeps refusing to update everytime as if the mod folder was empty (I suspect its pointing to the mod folder that's in appdata in my other hard drive (C:)) is there something else I need to add to the path so it reads it over on my D: drive?
I finally got it working, it was both a path issue, a config issue and also not realizing this checks for the zipped versions not the extracted ones, its working wonders now!
INFO : Version 2 is coming soon!
I’ve finally resumed development on version 2 (available on GitHub). I started everything from scratch, cleanly. I just released a very early version that will allow testing. For now, it only handles automatic downloads. There’s no changelog retrieval or mod list creation yet, but that will come later. It is
On my side, it works very well, and I no longer have the latency issue.
I’m looking forward to your feedback from those who will test.
I highly encourage you to read the README in the archive or on GitHub to see the changes in functionality.
DISCLAIMER : This is for TEST purpose. There shouldn't be any issues, but if you're unsure, you can make a copy of your mods folder beforehand.
Drayce91
You can try this v2 if you want, and tell me if you see a speed improvement.
@Laerinok Yes, I have been using the pre2 build since it's release now and honestly haven't noticed anyhting in regards to speed changes, though I did notice less crashing of the program itself, which happened infrequently and at random for me with 1.4.2. I appreciate you taking the time to explain the nuances of the issue, I'm sure none of it is easy but your work is absolutely appreciated by me and countless others here. Without a script like yours to update, modding and updating this game would be much, much more painful.
Drayce91
So I'm not sure if this is just me, but I've noticed that after the 1.4.2 update, the time it took to start scanning mods for update is exponentially longer, nearly as long as the time to actually scan the mods themselves. Is there some technical reason for this long delay before starting mod updating? Also regarding updating, is there perhaps any way to speed up how quickly it goes through the mods? It's painfully slow...
NMND
thanks for enjoying it :)
Indeed, the -pre1 version don't create the config file (my bad), but it was fixed in the -pre2.
I assume it's because of the browser's cache, but the link I posted below is supposed to lead to the releases, not just to -pre1. I had modified it last week. Either way, it's fixed now with v1.1.4.3-pre2. But yes, using an old config file was enough, as it hasn't changed.
Log files are only created for updated mods, to keep track of the files. As for the mod list, I only have it in PDF format, but I can look into adding another format. Just so you know, the script only lists the mods folder, so it doesn't distinguish between enabled and disabled mods.
What kind of info would you like to see? I can't guarantee I'll manage it (though it doesn't seem particularly difficult), but it sounds like a good exercise.
Sunday is sadly coming to an end—I hope yours was more relaxing than mine! ;)
Laerinok Cheers for creating this. It's making mod actualization an absolute jiffy.
I'm using 1.4.3-pre1, which didn't fill the config.ini after creating it. (I copied the content from 1.4.2). It also did not create the logs directory. Not sure if it adds logs in there, will have to downgrade a mod to try it.
I'd also like to request the logfiles to be created on every run - so it will output the current mod list with versions even without updating it. Unless it's supposed to do that, then my "installation" isn't working correctly.
And could we have the modlist as a json or something arrayable (objects would be great)? I'd like to display the server mods on my website. I'm currently using th3dilly's "th3serverstats" for that (which works perfect, just includes too much other info. So no rush, would just be a great alternative).
Thanks again, have a deliciously relaxed sunday!
you are a godsend. thank you
Spleeeeep
Thanks ;). No doubt this feature will be in game later. But meanwhile I am glad to help :)
RowanSkie
It's not a feature I use, so I forgot to test, my bad. You can make a shortcut and add the following argument --forceupdate true after the .exe. You can also add --disable_mod_dev false if you want to update -dev/rc/pre mods (VS_ModsUpdater.exe --forceupdate true --disable_mod_dev false).
That said, if a zip file is corrupted, it may not download it because the script needs the
modinfo.json
from the zip file. I'll have to find another way.This doesn't seem to follow the config for redownloading every mod even after setting that to true.
Great program, should be integrated into the base game!! 👍
JaxsonBright
👍 🙂
Laerinok 1.4.3-pre2 worked! Thank you!
INFO :
New pre-release version is available on GitHub.
Should be the last before uploading here.
Changelog:
====================================
JaxsonBright
The number of mods has no impact. I've already seen lists with more than 200 mods.
Try the last pre-release (v1.4.3-pre2) avalaible GitHub, and if it still crashes, send me more info (log, temp file, etc.).
If there's no log and the window closes, run the script from the console (by navigating to the ModsUpdater folder). The report will remain displayed.
Laerinok After checking Each of my 133 Mods I can confirm that none of them are Corrupt, maybe the Updater is having issues with so many Mods?
JaxsonBright
Currently, I was testing the ZIP file to check if it was indeed a ZIP. I will add to the script the ability to detect if a ZIP file is corrupted and identify it in the log.
A corrupted zip-file may have a size of 0Ko, but not always. To be sure you must try to extract files from archive. If the zip is corrupted, you will get an erorr message.
If you use 7-zip you can select the zip files, right-clic and check (or test or something like).
DrBubba Was it a specific Mod Zip adn how did you find out which one?
It was caused by a corrupted mod zip, JaxsonBright
Laerinok I am having the same issue as DrBubba Was there any solution found?
INFO :
A pre-release version is available on GitHub. It fixes errors when creating the PDF if a mod has name or description containing CJK characters. I will officially release it after some testing and feedbaks.
Junrall
I got your message, thanks. I had made sure that languages with different alphabets were properly handled, but I must have missed something.
Laerinok
Using the csvtemp file and the position provided in the log file, I was able to determine the issue was with five mods that use different language characters. I did DM you csvtemp file on discord for you to look at. I'll post the contents here as well just to be thorough
I had origanly randomly selected two mods and as luck would have it... they were two of the five troublemakers!
æ´å¥½çå®ä½äº¤äº,å 许åå®ä½ç交äºï¼å æ¬å·¦é®æ»å»ï¼å¿½ç¥æ¤ç©æ¹åï¼æ¯å¦èï¼ã,https://mods.vintagestory.at/betterentityinteraction,
Better Fire,ÐÐµÐ»Ð°ÐµÑ Ð±Ð¾Ð»ÐµÐµ ÑеалиÑÑиÑнÑе ÑаÑÑиÑÑ Ð¾Ð³Ð½Ñ Ð¸ дÑма,https://mods.vintagestory.at/bf,
Better Grass,"ÐокÑÑÐ²Ð°ÐµÑ Ð¿Ð¾ÑÑи ввеÑÑ Ð±Ð»Ð¾Ðº земли ÑÑавоÑ, кÑоме Ñедкой и пÑоÑей..",https://mods.vintagestory.at/bettergrass,
FixToggleSprint,ä¿®å¤åå»åè¿é®ä¸è½åæ¢å²åºçé®é¢,https://mods.vintagestory.at/fixtogglesprint,
MoreRope,ÐобавлÑÐµÑ Ð½Ð¾Ð²Ñе ÑеÑепÑÑ Ð²ÐµÑÑвок,https://mods.vintagestory.at/morerope,
Junrall
OK, either one mod contains an unrecognized character, or the temporary
csvtemp.csv
file was not encoded properly.You should have a file named
csvtemp.csv
in the temp folder. Can you send it to me (e.g., on Discord, same username), or tell me its content AND its encoding format? It should be in UTF-8, not CP1252.Which mod did you use to test with a single mod?
Laerinok
The pdf creation is not working for me. I have completly removed and reinstalled the updater and I have also tried to create a pdf using a single mod within the mods folder.
Here is info from the logs file:
2025-03-02 13:15:10 : Traceback (most recent call last):
File "VS_ModsUpdater.py", line 950, in makepdf
File "encodings\cp1252.py", line 23, in decode
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 3394: character maps to <undefined>
SoloBlood
Each instance can only have one config file with an active modpath, but you can create as many 'ModsUpdater' folders as you want, each with its own specific config file and thus a specific modpath.
Personally, I use 2-3 instances:
If you absolutly want a single instance with two modpaths, you can define both modpaths and comment out the one you're not using with
#
. However, this requires manually switching each time. The easiest solution is to create multiple folders for the program.[ModPath]
#path = C:\Users\UserName\AppData\Roaming\VintagestoryData\Mods => will not be used
path = C:\Users\UserName\AppData\Roaming\VintagestoryData\Mods_2 => will be used
Laerinok Thanks for this mod. Is there a way to define mutiple modpaths in the config.ini?
Junrall
Exactly, it's a server access issue. The possible causes (as far as I know) are:
mods.vintagestory.at
might be temporarily down or overloaded with requests.I set a 2s timeout because, in my tests, I encountered infinite waiting loops. I could increase it slightly, but that would only extend the waiting time. I can only assume that sometimes the server access is either weak or overloaded.
My knowledge on this topic is too limited to know more with precision.
When this happens to me, I usually retry shortly after, and it works.
Shadowise
👍
Laerinok
Am getting the following errors in the windows terminal and log files. I'm guessing it a VS ModDB thing but, just in case I wanted to drop the error here.
Log File:
2025-02-20 18:16:12 : ReadTimeout error: Server did not respond within the specified timeout.
Windows Terminal:
Traceback (most recent call last):
File "urllib3\connection.py", line 198, in _new_conn
File "urllib3\util\connection.py", line 85, in create_connection
File "urllib3\util\connection.py", line 73, in create_connection
TimeoutError: timed out
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "urllib3\connectionpool.py", line 787, in urlopen
File "urllib3\connectionpool.py", line 488, in _make_request
File "urllib3\connectionpool.py", line 464, in _make_request
File "urllib3\connectionpool.py", line 1093, in _validate_conn
File "urllib3\connection.py", line 704, in connect
File "urllib3\connection.py", line 207, in _new_conn
urllib3.exceptions.ConnectTimeoutError: (<urllib3.connection.HTTPSConnection object at 0x00000206B6360B50>, 'Connection to mods.vintagestory.at timed out. (connect timeout=2)')
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "requests\adapters.py", line 667, in send
File "urllib3\connectionpool.py", line 841, in urlopen
File "urllib3\util\retry.py", line 519, in increment
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='mods.vintagestory.at', port=443): Max retries exceeded with url: /api/mod/autoatlas (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x00000206B6360B50>, 'Connection to mods.vintagestory.at timed out. (connect timeout=2)'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "VS_ModsUpdater.py", line 1083, in <module>
File "VS_ModsUpdater.py", line 643, in mods_list
File "requests\api.py", line 73, in get
File "requests\api.py", line 59, in request
File "requests\sessions.py", line 589, in request
File "requests\sessions.py", line 703, in send
File "requests\adapters.py", line 688, in send
requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='mods.vintagestory.at', port=443): Max retries exceeded with url: /api/mod/autoatlas (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x00000206B6360B50>, 'Connection to mods.vintagestory.at timed out. (connect timeout=2)'))
[PYI-22300:ERROR] Failed to execute script 'VS_ModsUpdater' due to unhandled exception!
[process exited with code 1 (0x00000001)]
You can now close this terminal with Ctrl+D, or press Enter to restart.
Thank you for the detailed response, Laerinok! Waiting long enough did the job! Much appreciated.
Shadowise
Hello
It seems that since ModDB changed servers, the script takes a bit longer to start. I don't know if it's related to the server itself or the way it is accessed, but indeed, sometimes it feels like "nothing is happening." You just have to wait.
That being said, another possible cause is that if you click inside the console window, it pauses the script. I imagine this is a behavior of the Windows console. Simply clicking back into the console window will resume the script.
I'm surprised that v1.4.0 still works for you because the download links have changed. As a result, v1.4.0 works fine as long as the script doesn't encounter any mods to update; otherwise, it crashes.But if it goes on updating mods, let it me know.
Aside from that, the only new feature in v1.4.2 is the ability to use personal mods that are not hosted on ModDB, which is quite specific.
Hello, Laerinok, the recent update (1.4.2) does not work for me. 1.4.0 was working just fine, but after the initial run (choose language, y to continue with default config), it does nothing (cursor blinking). I am using the latest stable VS version 1.20.4. Reverted back to 1.4.0, which continues to work fine. Thank you.
DrBubba
Just to be sure, even though it shouldn't have any impact, do you have any files other than mods in the mods folder? And if you can send me the list of mods, I could test to see if a particular mod is causing the issue.
Laerinok
Negative. It's empty.
DrBubba
OK. and is there sometging in the temp folder ?
Laerinok
I was originally going to share a log but....there are none. Only "font", "lang", and "temp" folders.
DrBubba
Don' worry about the quality, it's OK.
This error is caused by a failed attempt to open a ZIP file. Possible causes:
Do you have a debug file in the 'log' subfolder? It should contain the name of the mod involved.
Getting this error when I run it after a new install. Sorry for the potato-quality, but I had to film the crash with my phone and pause the frame to see what it said before it shut down.
Help, Laerinok
YOU SIR, is a lifesaver.
Aspendosia
Unfortunately, I'm afraid the answer is "never." At least not from me. I don't have a Mac, and the library I use to create the executable needs to be run on the corresponding OS. However, the source code is available, and if someone can provide a MacOS version, I'd be happy to include it.
Unless there's another way to do it, but if there is, I don't know it.
EDIT: I just saw a solution using GitHub Actions workflow. I'll take a look, but no guarantees.
Dare I ask the 'MacOS when' question?
Cuddly_Khan
Glad to hear there are no more issues. If you need anything, feel free to contact me on Discord (same pseudo).
Okay, Windows Defender doesn't have a problem with it now. I don't know why it decided to change it's mind
Windows Defender is being extremely fussy about 1.4.2, and while 1.4.1 works, it doesn't function because it just tells me to update to 1.4.2 which is very annoying.
Urist_Ozsitmafol
Thanks ! :)
DejFidOFF
Mods which are not in modDB are now in PDF.
dangerousb
Mods with non standard versionning should be OK now.
Thank you for the update, you even fixed things I encontered yesterday and didn't report :) Your mod is unbelievably helpful!
Morggin
Hello.This error is fixed with the v1.4.1 (I hope I didn't forgot anything...) But I didn't yet update the file for Linux and I probably wait to fix the last issues before. But you can use the .py from the source. It's up to date.
Actually, your case is not so strange. Thie error occurs only when the script tried to download a mod. The path to download has changed, so it crasched. If only one of your servers has this issue, it's probably either they don't have the same mods and one doesn't to update mods whereas the other one does. Or One made update before the path from modDB have changed.
DejFidOFF
Hello. Glad to know it's being used for servers. I don't get much feedback on this feature, and since I don't manage a server myself, it tends to stay in the background. I thought I had fixed the issue with PDF creation as well. Either I forgot, or I messed things up.
But I have to admit that this fix had been in progress for a long time, and I might have forgotten something due to the "urgency" of the repair.
TrueChickenman
No, that’s not the case. There are three possible causes:
--nopause true
argument at launch.But the normal behavior is:
question as im not versed in coding or what this uses but is it supposed to close on its own after its done updating
Laerinok
Hello o/ thank you for fast updating this. It´s crucial for all server owners to manage updating mods.
If I can make a suggestion, please can PDF creator skip mod which is also not in modDB. PDF creation crashes when mod is not in DB. Thank you.
strange ... one of my Linux servers (ubuntu 22.04) runs fine, but my 2nd Linux server running the same OS (also ubuntu 22.0.4) is getting "Traceback (most recent call last):
File "VS_ModsUpdater.py", line 631, in update_mods
TypeError: int() argument must be a string, a bytes-like object, or a real number, not 'NoneType'"
so it's working on one server but not the other. I wonder if I'm missing some library in Python on the second server? I did see your post a few hours ago about a change in ModDB. Currious that is works on one server but not the other.
ToastyDerek
OK. Thanks for the report. It seems that the changes caused by the move of modDB to a CDN are more significant.
Hey, looks like mod URLs with spaces in them cannot be downloaded. Error here for example:
http.client.InvalidURL: URL can't contain control characters. '/ACulinaryArtillery%2B1_2542abbf8ad4e2daa7ccd61eef06aef2.zip?dl=ACulinaryArtillery 1.2.3.zip' (found at least ' ')
Maybe doing some URL encoding on that part of the string might fix it.
Junrall
The pdf file is in the ModsUpdater folder.
dangerousb
Indeed, it's a non-standard version number, but the cause is the mod author of AbsoluteProspecting using a non-standard number. I'll see if I can do something (at least prevent the crash), but it's up to the author to use the standard system (which is also used by ModDB).
https://semver.org/
Laerinok
Haha... sorry about that!
One question... when choosing to save the mod list to a pdf, where does this pdf save to?
Junrall
I got scared when I saw your message! 😅
It's possible to have a short pause sometimes. It also happens if you click in the console—it pauses until you click again.
Looks like there's still an issue. To be fair, the version numbers they're using are a little wacky
2025-02-16 15:36:47 : AbsoluteProspecting
Traceback (most recent call last):
File "VS_ModsUpdater.py", line 671, in update_mods
File "semver\version.py", line 644, in parse
ValueError: 1.500.02 is not valid SemVer string
Theres a substantial pause before the updater starts show the list of mods it has checked. Its long enough that I had thought it was hanging but then, after a few tries, I decided patience was needed haha.
It should be fixed now. It's now OK on my game, but let me know if you have any issues.
Moreover, I took the opportunity to fix a crash that occurred when there was a personal mod in the mod folder that was not present on ModDB and to put an update of german lang file (thanks Zetabite and sorry for long time...)
File "VS_ModsUpdater.py", line 631, in update_mods
TypeError: int() argument must be a string, a bytes-like object or a real number, not 'NoneType'
The issue has been identified. The new ModDB server no longer returns the
Content-Length
value that I was using to retrieve the file size for downloading.I'll fix it as soon as possible, but probably not today.
DrBubba Thanks ;) rosysyn
The error is related to requesting the zip file size before downloading. I believe the change this afternoon on ModDB is the cause. I'll have to fix that indeed.
It seems that updates are not possible at the moment.
I'm not sure I'll be able to fix it this weekend, as I'm not at home.
🧐
Laerinok
First off, this mod is a MUST HAVE. Congrats and well done!
Also, having the same issues as rosysyn.
RachelTGG
This error indicates that the script cannot reach the ModDB server. Usually, it's either due to a lack of internet connection or because the server is overloaded. Simply restarting the script is often enough.
EDIT : Or maybe it was while ModDB was under maintenance earlier (or maybe it's the result of the changes made to ModDB...) I will check as soon as possible.
I am getting an error as well! None of the mods with updates are actually updating. Log output:
Traceback (most recent call last):
File "VS_ModsUpdater.py", line 631, in update_mods
TypeError: int() argument must be a string, a bytes-like object or a real number, not 'NoneType'
Added to the issue tracker.
It doesnt seem to be working, i keep getting a error when a mod needs to updated. It doesnt download the update and gives this:
2024-10-25 13:06:57 : ReadTimeout error: Server did not respond within the specified timeout.
Tallermagician Kant
Glad you enjoy it. Thank you! :)
☺️
One of the best mods for VS hands down
Wow this is very useful and i was not expecting the option to create a pdf modlist, not only that its also so nicely formatted. This is a great tool!!!
OGBossotron3000
Thank you so much for your comment 🤗. I'm really happy to know that it's useful for some players ☺️
this "mod" is absoloutly amazing im so glad that i dont have to spend the entire day deleting and redownloading all my mods just so i can get the latest version Thank you so much for your hard work!!!!❤️
Aksyl
Yes, it's possible.
Two possibilities:
Then, simply edit the config.ini file (located in the ModsUpdater folder) and change:
[Game_Version_max]
version = 100.0.0
to:
[Game_Version_max]
version = 1.19.8
(If you want to keep the v1.19.8)
This was an arbitrary value chosen to always get the latest game version. I improved this in the next version... Then if you want to play later with the latest game version, simply write again version = 100.0.0
You can make a backup of your mod folders before to avoid any issues.
Is there an option to have the updater check the game version and try to not exceed it?
BriarBlack
I need more information because I tried with Auto config lib and I didn't meet any issue while updating.
2025-02-03 06:21:48 : Auto config lib
Traceback (most recent call last):
File "requests\models.py", line 971, in json
File "json\__init__.py", line 346, in loads
File "json\decoder.py", line 337, in decode
File "json\decoder.py", line 355, in raw_decode
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "VS_ModsUpdater.py", line 611, in update_mods
File "requests\models.py", line 975, in json
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
as far as I can tell, each debug log is the same for each individual mod.
nickzom
Do you have the cairns mod ? I discovered it caused crash because of a missing string in its modinfo.json.
You must edit the modinfo.json file in the zip file (Cairns 1.2 - Recoverable Stones.zip) and add this line
"modid": "cairns12recoverablestones",
{
"type": "content",
"name": "Cairns 1.2 - Recoverable Stones",
"modid": "cairns12recoverablestones",
"description" : "Adds piles of rocks",
"author": "Spionbil",
"version": "1.2.0",
"gameversions": [ "1.9.8" ]
}
nickzom
Just to be sure, you use the last version v1.4.0 ?
Do you have other file than mods in the mods folder ?
If you can, send me the modlist you have in your mods directory (Discord - same pseudo - or via github via the issue tracker tab, or a pastebin).
You can try :
not sure. still does not work and it does not stay open long enough for me to see what it says. nothing in the temp folder either. My firewall and windows defender are turned off and I have not changed anything since the last time it worked.
nickzom
Very strange indeed. Did you try again after it crashed ? As for this version I did not really know how to manage errors, sometimes there are no logs.
Do you have a "temp" directory. In this case you should see insdie the last mod handled. Check if all the files are always in the folder (see the last picture in the description above).
I can see some reasons:
for some reason this morning it decided to stop working for me. run the program and it just pops up for a couple seconds and closes. not giving me a log file when it does it either. worked fine yesterday
Desolae
Indeed, that's an undeniable advantage. When I started creating this program, the sole purpose was to learn and have something to quickly update mods. Since it was a personal project, I didn’t need many options. But seeing how the program has become far more popular than I anticipated, it's time to evolve—especially since my skills have improved.
That being said, I still have some issues. I'm stuck on retrieving the changelogs of mods. In the current version, it's incomplete. Some parts aren't being retrieved. Since there’s no API key available for changelogs, I have to scrape them, and the problem is that there are very different formatting styles between each modder. I can't seem to standardize everything.
Another issue... I play Vintage Story a lot instead of coding ^^
Very excited for 2.0!!! Having the ability to manually choose which mods to update would be such a game-changer, a lot of big mods or anything related to worldgen often have special instructions or warnings about changing mod versions mid-game and I like checking for those when the Updater makes any changes - being able to check before allowing the mod to update would be heaven!
ThePacifistNinja
Thank you very much for your words !
Hands down, Laerinok top 3 GOAT!
Brilliant and a Linux version!? EPIC
Afroman726
Thanks for your enthusiasm! ! :)
Laerinok Thank you for this mod! Can't wait for 2.0 to come out! :D
INFO V2.0.0:
I’ve learned a lot from this project, and now I’m ready to move on to an entirely new version 2.0.
I started the code from scratch and added new features:
These features are complete. I still have a lot to work on; I don’t have an estimated release date yet, but progress is being made.
If you have any suggestions, now is the time to share them. If it’s within my abilities, I’ll see what I can do.
Servius
By default it downloads mods for the latest game version. So for 1.20.pre.
If you want to stay with the 1.19.8 you should edit the config.ini file and set the right option :
[Game_Version_max]
version = 1.19.8
If you've already use ModsUpdater, the config.ini is already created (beside modsupdater.exe). So you have to edit it before run it.
If it is the first time, after to have set the language and the modpath, you will be asked to exit or keep on going. Yous MUST exit and then edit the config.ini as said above.
I'm working on a brand-new version that is more intuitive and comprehensive, but it will not available before a while.
will this update to the correct version or if there are a 1.20 vversion will try to download it, even if 1.19 is better for the install im using?
MyuriC
Indeed, I didn't undserstand what you meant. 😅
Sure it's always safer to keep an eye before updating anything.
And, for your information, you can restrict the update to 1.19.8 by setting the config.ini (beside modsupdater.exe after first run):
[Game_Version_max]
version = 1.19.8
Laerinok
I meant the Vintage Launcher. But I take back that opinion. Because I updated my game to the newest version and I only got errors for most mods. Had to go back to 1.19.8.
I think it's really better to do this oneself. For now.
MyuriC
Glad you like it.Thanks.
I thought about an auto-update for the script but gave up the idea. Maybe later... But I am not sure of what you mean... There is no link to Discord nor any thread in Discord about it.
But the script checks if there's a new version, and you're notified if there is. No need to monitor yourself. All you have to do is to click on the link.
But indeed, I could add a text with "no new version of the script".
I explained it in the section "What the script does in detail" and in one of the description picture.
Or maybe I did not understand what you meant :)
I love that this exists. Thank you. Only wish that the launcher could update itself without having to check Discord every now and then.
Laerinok ah, darn-- well, at least the problem is solvable! thank you very much!
LemonJamTart
Hello,
Indeed you're right. You must not unzip files when you download them. I guess you manually download them and don't use the "1-click mod install" because you wouldn't have unziped files :)
You even are lucky because for some few mods, if you unzip them it causes troubles.
So, in anyway, if you want to use ModsUpdater, you must have zip-file and not folder 😉
not entirely sure why, but the program simply tells me i don't have any mods installed when pointed to my mods folder... despite the game itself recognizing each and every mod i have installed. am i doing something wrong? the only thing i can think of is that my mods each have their own bespoke folders within the mods folder which contain all their data/files; is that not how you're supposed to do it? are you supposed to just toss everything naked into the mods folder in one big jumble?
No need to be sorry, you are providing a tool for free.
I've made an issue on the github, if you want further communication/testing it can be done there.
Thanks and sorry you cannot use it as you want.
One of my problem is I can't reproduce it, so it will be hard to fix it.
Wget also gives the same error btw, and I have no idea how to get that one to ignore SSL certs.
But its a cool project, good luck fixing this bug😁
Brumes
😅
OK. So I must dive into the code, and many guides. I have no more idea at this time. I read something about the difference between urblib and requests for this issue. Maybe a clue..
But as I am a beginner in Python, I go on slowly...
Laerinok
I already tried that haha, still get the same error somehow. I think the problem might lie with "urllib.request" instead of the "requests" package
Brumes
I prefer not to provide a whole version without SSL verification, but, as you said, at your own risk, you can edit the VS_ModsUpdater.py file:
- search for requests.get (there must be 5)
- add the verify=False parameter - you'll get something like this requests.get(url, verify=False)
Then you could run the script without the SSL validation.
But maybe, you can try to get the ssl-certificate from vintage story site and install it to your server as a trusted certificate. (don't ask me how, I have no idea...)
Laerinok
Running the python scripts gets me the same results, if you can't easily fix this can we get a version with a config to disable SSL verification? Completely own risk ofcourse.
Brumes
No, no other programs are required. everything is packaged in the program. You can always try to run directly the python script on the pc, but you must have python 3.11 and all dependancies installed. Everything is avalaible in the source tab.
But I have no idea, or I must say; I don't have enough knowledges about this to tell more at the moment.
I am working to a new version, (but it takes time) and maybe some libraries will be updated.
Laerinok
I just tested and it works fine on my personal PC, just the server has the SSL issue, there is no proxy or VPN in play, both computers are on the same network. Are there any required prerequisite programs/frameworks?
Brumes
I saw some similar cases to yours. But it was for Linux... Indeed, each message occurs for each mod the script tries to update.
The error you encounter, SSL: CERTIFICATE_VERIFY_FAILED, indicates that Python is unable to verify a server's SSL certificate.
Possible causes :
- Self-signed certificate: The server is using a certificate that is not signed by a recognized certification authority (CA).
- Incomplete certificate chain: The server does not provide all the certificates required to establish a chain of trust.
- SSL configuration problems: Your environment may not be configured to recognize certain certificates.
I think we can exclude the first two causes, because everyone would have the same issue. So I think your environment does not accept the SSL-certificate from the site. Do you use any proxy or vpn ? I read somewhere it could be the source of the problem.
Does not work for me on win10, In the logs (why are there multiple log files for 1 run?) it seems to have this error for pretty much every mod:
2024-10-03 11:04:02 : [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1002) : Stone Bake Oven
For those who use ModsUpdater and don't want to update mods for v1.20, don't forget to set the version in the config.ini:
[Game_Version_max]
version = 1.19.8
So, mods for v1.20 won't be downloaded.
Kerbo
Hello and thanks for the feedback.
the "[Errno 11001] getaddrinfo failed" error may be due to temporary connection problems or if the script can't reach the url. I will try to manage this kind of error, but I don't think i can do anything but a better info message.
I had many issues for the pdf creation with mods with cyrillic fonts. I will have a look at this specific mod. There is probably an issue I missed.
Indeed, when the program crash, the temp folder and temp files are not deleted. It's a thing I could add but it may be useful to keep them to know where is an issue.
Hello and thank you for a useful program. On the first run it had many getaddrinfo errors and did not work. Example:
2024-08-11 11:15:39 : [Errno 11001] getaddrinfo failed : https://mods.vintagestory.at/modsupdater#tab-files
Running it after that it works fine except for PDF creation fails. I also get the decode error like another user below.
2024-08-11 11:19:32 : Traceback (most recent call last):
File "VS_ModsUpdater.py", line 840, in makepdf
File "encodings\cp1252.py", line 23, in decode
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 2083: character maps to <undefined>
The problem is with the mod SimpleCloth https://mods.vintagestory.at/simplecloth. The description of that mod has Unicode characters on which the program chokes. If I remove that mod and temp\csvtemp.csv then the PDF creation works. As a side note, I had to remove the temp csv file and not just the mod or the program re-used the csv file and the bad mod info was still in there.
My config.ini that was generated (I did not change):
[ModsUpdater]
# info about the creation of the config.ini file
ver = 1.4.0
system = Windows
# enable or disable force_update for every mods. if enabled, it will download the last version for all mods, even if the version is already the latest. (true/false default=false)
force_update = false
# allow to disable or enable update of mod in dev or prerelease (true/false default=false).
disable_mod_dev = false
[ModPath]
path = C:\Users\Computer User\AppData\Roaming\VintagestoryData\Mods
[Language]
# to change the default language, uncomment the line below and set the desired language ('lang' folder)
language = en_US
[Game_Version_max]
# select the maximum game version for which mods can update themselves (ex: 100.0.0, 1.18, 1.18.1). default: 100.0.0 (to have all versions)
version = 100.0.0
[Mod_Exclusion]
# to exclude a mod from the update, add the name (with extension) of the mod's zip file after = (one per line)
mod1 =
mod2 =
mod3 =
mod4 =
mod5 =
mod6 =
mod7 =
mod8 =
mod9 =
mod10 =
Thank you
SocialBlazer
Thanks :)
Damn dude. Good staff
Harpi
I will investigate. At this time, I have no idea of what causing this. Maybe an issue with the csv file before creating the pdf. I was not able to reproduce this yet.
Laerinok
the problem is also with 1 mod. I think the error is somewhere on my PC, but what?
update: Now it's working again, so I don't know what it could be.
Harpi
I don't think number of mods matters. But maybe one of your mods has a specific character, in the name or description, which causes this issue. If you could send me your mods list I will have a look.
Laerino 1. Y; 2. No/ EN; 3. No; only en langue no cyrillic font
It worked normally, maybe I have too many mods,
I also did a clean install
Harpi
Hello,
You can confirm that you have extract the font folder and the two fonts files (FreeSans.ttf and FreeSansBold.ttf) beside VS_ModsUpdater.exe ?
Do you use Cyrillic language / which language do you use ?
If you run the script with en_US as language does it solve the issue ?
I had many problems with cyrillic fonts. Maybe it is a new one...
Hi no create pdf.
2024-06-09 17:43:01 : Traceback (most recent call last):
File "VS_ModsUpdater.py", line 840, in makepdf
File "encodings\cp1250.py", line 23, in decode
UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 6280: character maps to <undefined>
LunaGore
Good to know it's now working. The bat file is more an example for server or to use in command line. But you can use it to customize according to your needs.
Laerinok Seems to be working now! I initially tried via the bat but in the console it mentioned the config.ini so I tried that as well, dunno what changed but before it wouldn't scan and just prompted if I wanted to save a PDF and closed immediately.
Laerinok Yeah, I did notice the exclusion zone. didn't actually occur to me to use it for this purpose though. and disabling force_update was the first thing I hunted down on day one. :)
Though now I know the paths are set in the config, No need for me to use the bat anymore but I have just set up a server to play with friends, so maybe the bat will make a comeback.
Kief
It's an option I'm working on. Someone already asked for it 😉. But I think it needs many changes and I need time to do this.
In the meantime if you don't want to update a specific mod you can put it in the exclusion section in the config.ini file.
Have a look to the description above in "Advanced Operation(via config.ini)"
EDIT: I don't know if you modified the bat file, but as it was for server, you may want to change some arguments. Moreever I forgot to change set force_update=true. By defaut it should be set force_update=false. with true enabled all mods will always download the latest version, even if it's already up to date.
I have a suggestion.
Much like how it asks you if you want a PDF, could there be an option that when an update is found to a mod, it asks if I would like to update. sometimes I'm avoiding a new version because it has problems.
Laerinok I just assumed it was the way it was done and never questioned it. :D
Kief
Oh. Surprised and glad to see someone using the bat file. I didn't know if it would be useful. It was mainly for server.
LunaGore Laerinok
I didn't even notice the conifg.ini. I have always used the bat file:
set modspath=E:\Games\Vintage Story\Mods
I looked in the config.ini and it had auto set as:
[ModPath]
path = E:\Games\Vintage Story\Mods
Which is on another drive and includes a space without using quotes. No problems here.
LunaGore
I used your path (path = c:\SSD Game Library\Vintage Story\1.19-Village\Data\Mods) and it worked fine.
I am not at home and this pc has only one partition, so I cannot change the letter. But on my PC it's on another partition and I've already used it.
I made some tests with differents pathname with one or more space and had no issue. The only condition is not to use any quotes.
Do you have any error message or a log ?
PS: If you want, we can see it on Discord
@Laerinok
Happens with and without quotes
@LunGore
A dummy question, did you try to set the path without quote ? I will check tomorrow but if am right quotes are only needed when using arguments in command line.
Laerinok In the config.ini file
[ModPath]
path = "H:\SSD Game Library\Vintage Story\1.19-Village\Data\Mods"
LunaGore
need more details to help you. is it in the config.ini file or in comand line ? can you show me what you wrote.
Having an issue with adding a custom path with spaces, I've tried all number of double quotes in different areas of the path and non work.
Kief
I thought to another way to fix this issue. It should be working. I'll test it and will put in the next update.
Laerinok Thanks for the info. at least I can correct it myself for now. 🙂
Kief
This is beacause the mod's author didn't fill correctly the modinfo.json in the zip file. "modID" string is missing so the script can't find it in the api. In some case I can get this string from the modname, but in this case it's too different for the script to "guess" it.
The only way is to ask to the author to add the string "ModID": "passthruchutes" in the modinfo.json.
I will send a message.
Jae_
As I don't have a mac I cannot make a binary file. The only way for you is to use the python script (VS_ModsUpdater.py). Look at the source tab.
Once it's OK you can run VS_ModsUpdater.py in console/command prompt.
How can i use this on mac?
There seems to be an issue when the script checks PassThruChutes_V1.0.0.zip
2024-05-31 20:17:11 : Pass-Thru Chutes
Traceback (most recent call last):
File "VS_ModsUpdater.py", line 612, in update_mods
KeyError: 'mod'
ManaWei
Well, you can already do this. Have a look to the "for SERVER" section in the description above or the wiki. You can run the script in command line with some arguments. The argument --nopause true allows to avoid prompt. You should have a VS_ModsUpdater.bat file in the VS_ModsUpdater folder. You can use it. You have to change the path to match to your configuration and change "set force_update=true" to "set force_update=false".
Or you can make your own .bat file (or a shortlink) with something like: VS_ModsUpdater.exe --modspath "your_modpath_here" --language "en_US" --nopause true
The language value is the filename from lang folder, without extension.
You may have to set the absolute path before VS_ModsUpdater.exe, depending your system configuration.
Think you can toss out a server version?
one with no promps, that just updates and auto-closes after?
think it would be very useful
Answered on Discord. 😉
I will add a test to avoid personal mods that are not on the moddb. At the moment, try to put them on the mods exclusion section in the config.ini.
crashes when creating pdf
Janeator
- "It would be great if it first fetched updates, then asked you whether you'd like to download some/all. Would this be possible?"
=> I guess that's something possible. I will think about it.
- "Would also be great if, since it mass updates, checked for enabled/disabled state of the mods and adjusted it accordingly, so mass updating doesn't turn mods on."
=> Oh, I see what you mean. Actually the script doesn't change the state of a mod. It only updates the file. But mods you turn off are listed in the clientsettings.json file at the section "disabledMods": [ ] with this shape : mod_name_id_string@mod_version.
So everytime you make an update, this section isn't updated and the new version is like a new mod. I will see if I can update this list in the same time.
Would also be great if, since it mass updates, checked for enabled/disabled state of the mods and adjusted it accordingly, so mass updating doesn't turn mods on.
It would be great if it first fetched updates, then asked you whether you'd like to download some/all. Would this be possible?
Matiamo
Sorry for the long time to answer. I guess this is a possibility. I will have a look but there's no guarantee I will do it as I would change many things due to the creation of the changelog and the pdf file.
I have several instances of VS on my PC and I prefer use an instance of modsupdater for each one with a specific config.ini for each of them.
Would it be possible to have multiple custom modpaths? I run a server and I would like to update both with a single click. If not this is still a great mod.
God tier. Thank you so much for this.
Legendary; cannot live without moving forward in life. Doing gods work out here brother.
Aura_Dacella
I added the option in config.ini and arguments to choise to disable or not the dev versions.
Default (disable_mod_dev = false): it downloads ALL versions. You have to set disable_mod_dev = true to disable dev version.
I tried with -dev version. It should be OK with -pre or -rc but I couldn't find any file with this prefix.
Aura_Dacella
I guess I can add an option in the config.ini. I will see what I can do.
Could there be an option to disable grabbing dev versions of mods?
As I've already said, I'm aware of this problem, and I know it can be worrying. But there is nothing more I can do. Every executable file that have no signature neither security certificate has chance to be false positive.
Windows once blocked one of my first version too, and without any white list of my part, next versions were considered as safe...
I don't know what weirdeness you are tlaking about, but I don't think it is due to this issue. Either it is flag as positive and it is deleted/put in quarantine, or there is a strange behavior/crash and it is due to a bad use/bad codding 😅.
In any case, it's always a good thing not to trust blindly.
So I'm having the issue where when I extract the zip the v1.3.6 executable seems to being picked up by windows as a virus, specifically Trojan:Win32/Wacatac.B!ml, guessing it's a false positive.The v1.3.5 executable is fine but this might explain some of the weirdness.
Well... Strange. I don't see any reason it runs without issue with windows cmd prompt and not directly, but glad for you :)
Tried ModsUpdater from windows command prompt and it started to work. Well, great.
Manticore
Can you run ModsUpdater.exe file via the windows command prompt ? You need to navigate to the folder where ModsUpdater.exe is located if not it won't run.
Then you should see somme info about what it is going wrong.
PS: Do you have a standard or custom VintagestoryData path ?
You can also ping me on discord (same pseudo)
No debug/crash log. It does not say anything, just loads for second and then nothing happens.
Extracted all files to archive.
It did work in v1.3.5, even it stopped working after I tried new 1.3.6 (installed them both to diffrent archieves.)
I deleted old v1.3.5 archieve, so old config.ini went with it. Tried to extract v1.3.5 to new archieve, same results. It loaded for second and nothing happened, not crash messages or anything. It does not make new config.ini.
Manticore
Hello, I need some more information :
Althought most of time you can only extract the exe file, it may be safer to delete old folder and use the new in archive (and generate a new config file).
When I click .exe, modsupdater loads for second and after that nothing happens. It worked for while when I updated VS to 1.19.5. After I updated modsupdater to 1.3.6, it again stopped working.
NekoBoiNick
It should be fixed now.
For information, the argument parser doesn't use system variables. I made some tweaks to be able to use %appdata% (and HOME for linux), so it should be OK for this one.
NekoBoiNick
Thanks fo repport. I will investigate.
Getting error when specifying a custom mods path via arguments:
<!--StartFragment -->
Traceback (most recent call last):
File "VS_ModsUpdater.py", line 913, in <module>
File "VS_ModsUpdater.py", line 545, in accueil
File "VS_ModsUpdater.py", line 149, in check_update_script
NameError: name 'my_os' is not defined
[33164] Failed to execute script 'VS_ModsUpdater' due to unhandled exception!
<!--EndFragment -->
<!--StartFragment --><!--EndFragment -->
My command line arguments are as follows:
<!--StartFragment -->
Hope this is enough information.
<!--EndFragment -->
TRexTheHunter
Thanks for your feedback. I really apreciate. Glad to see the exclusion is used. It's a very specific thing I added for my need.
Many thanks for this mod! Makes my life super simple. Really easy UI and easy to add exclusions! 😍
i forgot to metnion the crashing occurs on my friend who trys to join. sorry for forgetting that.
idk why it cuases issue either, doesnt make sense to why. either way, enjoy your day :D
endey
Thanks for the feedback. I don't see any reasons that could cause this. My first thought is that there could have a kind of anti-cheat in VS (I don't know if it's right) and if it detects an exe file other than those "regular" in the game folder it closes the connection.
I never put it in the game folder, so I will try and see what happens.
i found out the hard way that if you leave the updater in the main folder of VS [not the mods folder or VSdata, the VS folder]. as i was saying, leaving this in the VS folder breaks LAN play for some odd reason. no clue why at all, but i had to move it to resolve the issue. just thought id say something. (works great btw, thank you lots.)
Travisplo
I don't really use launchers so...
There is no reason you cannot add modsupdater, it'a an executable file like any else.
Without more info I can't tell very much more. What do you mean by "not really working"? Any error message? Crash log?
You extracted the zip file and run the exe?
I will try tomorrow with GOG to see this.
EDIT:
It seems that you only can add executable for games that GoG Galaxy knows. So indeed you may not add anything else. I tried with another exe or the .bat file. I will look further...
EDIT 2:
It works once by adding the bat file.
But you must add these two lines aat the end of the bat file to launch the game after the script is done :
set VSGamePath=C:\Game\VintageStory (Put he path of your VS installation)
start /B /wait /D "%VSGamePath%" Vintagestory.exe
BUT you won't see any windows for the update process. So if you have many mods yuo may think nothing happens for a few minutes whereas it runs. The game will launch once updates verification finished.
It seems this way works only once. After the launch the "play" button remains grey. You have to quit Galaxy and start it again.
So in my opinion, it's not realy the good thing to do.
it's much easier to run ModsUpdater on its own. Or make a shortcut on the desktop.
I launch Vintage Story through GOG Galaxy, and I'm trying to add Mods Updater as an additional executable- it's not really working. Not sure where to get advice for this, so I figured I'd just ask if anyone had any suggestions here.
Works great! Thanks so much for putting this together.
Transgressor Roughgalaxy
Thanks ! I really appreciate 😀
This needs to be adopted in the vanilla game asap. so good.
appreciate your work, this is so much easier now!
v1.3.4 is out. A few fixes and improvements. Next step will be an improvement of the language detection.
Gaylen
Dont' worry about delay. We have a life ;)
Once again the issue comes from a bad format of the modinfo.json in the mod file. I'm gonna fix it. Meanwhile, you can put this mod in the exclusion section of the config. In this way you could use it but it won't be updated. To do this open the config.ini file and add it like this:
[Mod_Exclusion]
# pour exclure un mod de la maj, ajouter le nom du fichier zip (avec l'extension) du mod après = (un par ligne)
mod1 = NoisyBears.zip
mod2 =
mod3 =
mod4 =
Save the file and it's ok.
You will have to delete the name from here to enable the update again.
EDIT: Fixed. Will be in the v1.3.4 today or tomorrow.
idiomcritter
Indeed it's not a mod so you don't have to put it in the mod's folder. But if you do it shouldn't causes issues (I fixed it some versions ago but I didn't try since). You're right I should add some more explications.
You just have to extract where you want (Desktop, game folder, VS folder...) and run the exe.
Thanks for your feedback !
Laerinok
seems nordvpn was preventing the file from downloading. Had to completely close down the vpn.
After downloading, ran a scan with malwarebytes and checked out ok.
I downloaded the file into the mods folder, from there it should do its magic yes?
oh, so that doesn't work lol. placed the file on the desktop, unpacked it into a folder. then ran the exe. (suggestion (or not) for us noobs, in the description, highlite this understanding maybe. so use to normally downloading mods straight into the VSdata>mods folder, thinking VS would run it as just another mod lol )
thanks for making this, its great
@Laerinok
Sorry for the delayed response.
I was trying the 1.3.3 version. I am still getting the same error with the 1.3.4version. It is always pointing to the same mod (Noisy Bears). I deleted that mod and everything works as advertised. Noisy bears hasnt been updated since may '23 so not surprised it has issues.
Thanks for all that you are doing!
ComradeTum
thanks 😄
Gaylen
Hello,
Which version do you have ? I thought most of this kind of crashes were fixed in the v1.3.3. Do you have a crash log file in the logs folder ? There should be the mod name displayed.
I was about to publish the v1.3.4 but before I send it, could you try it and tell me if you always crash ?
Edit:
VS_ModsUpdater.v.1.3.4.zip deleted, waiting for new upload with fix.
This might be singlehandedly the most useful mod on the ModDB, it makes it so easy to keep everyones modlist up to date for MP severs with friends. 10/10
idiomcritter
Hello,
As I've said, ModsUpdater is an executable file. Even if "classic" mods can have virus, an exe file is more frequently flag by Antivirus because it is not known and it is a potential threat. That is a legit comportment. Problem is that there are often too agressive detections and there are many "false positive" detections and files go to quarantine. There nothing I can do about it.
You may try a another browser, again. But if it's the antivirus that blocks it won't change anything.
All I can say is :
PS: Wich antivirus do you have ? When you say "virus scan fail" you mean that the you cannot scan the file or the result is clean ?
can't download, don't know why, windows 10 both firefox and chrome flagg the file when attempting to download (virus scan fail, downloading other mods appear fine)
DELTAGOD
Thanks for your feedback. I'm glad you found the application useful. 😀
This mod tool has single-handedly made playing the game after a work week a non-chore, just boot, update, and play. No more fighting with the willpower to update every mod or check for updates. Thank you!
This last version should be the good one. I think I managed most of issues due to modinfo.json.
I also fixed a rare issue where some mods were not updated if you used a limit for the game version.
If you encounter other crashes you should now have a log file. It will help to identify issues.
It seems that some rare mods cause crash. If it happens to you, you can use this temporary version. It should help to identify mods causing troubles. A log file will be created.
Shadowise
It took times, but it's finally OK. 😅
Laerinok, the latest version works perfectly, thank you!
jshea483 Shadowise
This should be OK now.
jshea483
OK. Well. that's is the same issue I fixed this mornig at the same line... 😬
The good thing that's I know where to look.
Thks for the mod. I am going to make tests.
Edit: Ok, I see where is the problem. I'm working on it. I tried to clean the code and I guess I messed some things
Meanwhile, you can use the v1.20. It was working well for several months. The only difference is that with 1.3.0 you will be able to generate a pdf file of the mod list.
Thanks for the response. Updated to v1.3.1 today and ran into the following error.
Traceback (most recent call last):
File "VS_ModsUpdater.py", line 294, in extract_modinfo
AttributeError: 'NoneType' object has no attribute 'group'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "VS_ModsUpdater.py", line 755, in <module>
File "VS_ModsUpdater.py", line 457, in mods_list
File "VS_ModsUpdater.py", line 304, in extract_modinfo
IndexError: tuple index out of range
[16552] Failed to execute script 'VS_ModsUpdater' due to unhandled exception!
I elimnated all the mods and traced it the Auto Panning mod, version 1.0.1.
Shadowise
Well... It's another thing. Can you confirm you used a fresh and clean installation ? I mean you used the new lang files ? If there is a missing string, the program will crash.
Could you can also give me your mod' list please ? So I could make test to check which mod causes this issue.
Thank you, Laerinok, but 1.3.1 still crashes the same way for me.
Shadowise
My bad. Should be fixed with the v1.3.1
v1.3.0 is not working at all, just closes up without doing anything (even when saying y/yes to continue). Reverted back to 1.2.0, which has been working fine for months.
jshea483
There is always a risk of false positive with file without signature. Even Vintage Story installer has issues with some antivirus.
The only thing I can say use other antivirus and look the result.
I tried with virustotal.
This is the result : only 6 within about 70 antivirus flag it
https://www.virustotal.com/gui/file/77942896e95ec7a137ef2fafa77c26d85a31cf005f7128b0694b38f4751df2cd?nocache=1
You can also look at sources file.
Just downloaded the new version and my anitvirus flagged and quarrantine the executable stating it contained Win32/Sabsik.FL.A!ml Trojan.
Hello everyone,
New version of my ModsUpdater. The main new feature is that you can now make a pdf file of your mods in the mods folder.
I added some new language, translated with DeepL, so feel free to give me correction if needed. Or even new language.
Yes you have a log file with changelog of each mod updated. There is a new log fîle created for everytime you run the script and if there is an update.
A log directory is created the first time a mod is updated.
I haven’t used this mod yet, but does it keep a log or record of recently updated mods? Often when a mod updates it might have a new bug or incompatibility. If you’ve updated multiple mods, you then have to figure out which one is causing the issue. It’s easier to detect if you’ve updated manually and this could make it harder to figure out which it is, unless it keeps a log and then you can just check that to see which ones have updated.
Yskar
I answered you in the Linux page ;)
Yo, Laerinok, i tried the Linux version on Arch Linux and got this error:
Vintage Story Mod Updater - v.1.1.2 by Laerinok
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1006)
Traceback (most recent call last):
File "urllib/request.py", line 1348, in do_open
File "http/client.py", line 1286, in request
File "http/client.py", line 1332, in _send_request
File "http/client.py", line 1281, in endheaders
File "http/client.py", line 1041, in _send_output
File "http/client.py", line 979, in send
File "http/client.py", line 1458, in connect
File "ssl.py", line 517, in wrap_socket
File "ssl.py", line 1108, in _create
File "ssl.py", line 1379, in do_handshake
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1006)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "VS_ModsUpdater.py", line 95, in check_update_script
File "urllib/request.py", line 216, in urlopen
File "urllib/request.py", line 519, in open
File "urllib/request.py", line 536, in _open
File "urllib/request.py", line 496, in _call_chain
File "urllib/request.py", line 1391, in https_open
File "urllib/request.py", line 1351, in do_open
urllib.error.URLError:
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "VS_ModsUpdater.py", line 537, in
File "VS_ModsUpdater.py", line 353, in accueil
File "VS_ModsUpdater.py", line 113, in check_update_script
NameError: name 'err_lang' is not defined
[96479] Failed to execute script 'VS_ModsUpdater' due to unhandled exception!
PS: You can count on me for testing on Linux. 😁
PPS: Dependencies aren't really a problem, Linux users are mostly tech savvy, maybe havin an py script would be even easier, or an appimage, maybe (using this: https://www.reddit.com/r/Python/comments/gia4b1/making_python_appimages_using_a_single_command/ ).
Tested on Linux Mint 21 with VirtualBox
==========
I made a pre-release version for Linux. This version is for test purpose.
You can run it through the terminal :
I need feedback to know if it works as intended and if it is easy to use. As I don't often use Linux I am not really comfortable.
If you tested this linux version please let it me know. If it's OK I will upload an "official" version.
Yskar
It is not a flapak, but the "pyinstaller" module I use to make executable file has an option "one-file". So you should not have to worry about dependencies.
Well Laerinok, i know a lil and can try to help you if you need, i suggested appimage because it is kinda easy to do (and there's a plenty of tutorials), i use the same nickname as user on Telegram if you need someone to test the linux version (and i need to learn to do appimage for myself anyway, so i can help you making an script to try automate that).
Appimage is kinda like all in one executable bundle on an compressed file, you just open and it works.
Yskar
I'm not an Linux user. I have a boot CD with Mint and some other tools and I sometime I use ViritualBox when needed. I even had a server under linux, but it was a long time ago and I forgot many things. So I will see what I can do but it is without any guarantee ;)
For now I have some issues to make it work under linux propably because of path errors and lower/upper case. But when It will be fixed I'll check for flatpak. I dont' really know what it is, only that it's an option to install an application.
Laerinok, if you can make it as an appimage (and/or flatpak) would be amazing, so you could pack all the prerequisted packages inside of it.
I need to make some small changes, but I think I could have a version for both, Windows and Linux.
The mod folder path is: ~/.config/VintagestoryData/Mods/
The comments being in french isn't a problem, i can use google translator 'cause i can only read in portuguese and english, lol.
I'll try the python script configurating the path as "~/.config/VintagestoryData/Mods/" and see what happens.
Hello Yskar,
I'm thinking about making a version for linux. But I'm not sure of what I need or what is the path. I'll try with virtualbox.
But look at the source Tab, there is the. py file. But comments are in french. When I started I didn't think I will share it so I didn't used english inside, and then I didn't changed.
Thanks Laerinok, i'm glad this just works under Arco/Arch linux using WINE, but a version as .py would be nice too.
thank you all, glad to have done something useful.
😃
Esto es maravilloso, muchisimas gracias. 💚
😄
This is a must have tbh
Laerinok
It is, awesome! Ty for the swift response
DisarmedSpy
Should be fixed with 1.1.1.
OK. It's another issue with a non standard versionning of a mod. I'll make a fix as soon as possible.
Thanks
PS : Until I make a fix, you can put it in the [Mod_Exclusion] section of the config.ini.
Crashes when updating QPTech with no error.
Thank you.
Glad to know that my app is useful 😀
thank you for your work
TerminalAccess
Hello.
Thanks, and Feel free to say your thoughts, I am learning :)
You're right, but this detection was for previous versions (before 1.18.8). I deleted this information in the description, because with v1.18.8 there is only the net7 version, in VintagestoryData. It becomes the standard. So now, no need to make the diference between those two version. I have just not deleted this funcion in the script, because I'd like to be sure that I won't use it anymore and that nobody use old version of Vintage Story.
In the facts, it doesn't mater for the script to know if you use net4 or net7, it does the same thing : To Browse mods folder and to update them. But when I was asked for a net7 exp version, the path was different (VintagestoryDatanet7). So I needed to set another path. But now, with the 1.18.8, there a unique path (VintagestoryData).
Maybe I could delete the (net4/net7) information in the title, but there is yet some people downloading previous versions.
So to sum up, the method I was using to detect Net4 vs Net7 is not used anymore, but it is always in the script. I should clean up the script, but it's not on my prior list to do :)
Loved the work on the update, however just a polite heads up, the method your using to detect Net4 vs Net7 (via looking up the VS Data folder in appdata) is very unreliable, I have 1.18.8 net7 installed and my datafolder is "VintagestoryData".
By default as of atleast 1.18.6 the default folder for both Net4 and Net7 is "VintagestoryData".
Updated to v1.1.0
New way to use the config.ini, so you can now a custom path for you mods folder.
OK. That's in a good way.
Concerning Medieval Fashion, It's a mod that cannot be automatically updated. That's is due to the way the creator made it. You must place it in the exclusion section, as you did.
I don't think any .dll file causes crash.The program only looks for .cs or .zip files. I had issues when there was zip-file which was not a mod, but it's now fixed.
For the prompt...my bad... I forgot to bypass the test if you have set the right path. I don't know how, but it will be fixed.
1. The config.ini is created and saved. It also has the right path for my mods directory:
path = D:\Vintage Story\Data\Mods
But, I'm still prompted for the data path every time I start the program. Maybe it also needs to save the data path and not just the mods path?
2. I'm on windows and running it through a CMD prompt. The window closes on failure with no input from me, so if the error is listed there I can't see it. However, I do have a temp folder, and I can see that Medieval Fashion is the one that is causing the failure. I saw mention in I think the Vintage Launcher mod about this one being problematic for downloading through the API, so I'll mess with excluding it later, but the program is probably fine.
To your other questions:
1. I extract to my desktop on my C drive and run it where it's extracted (i.e. with the lang directory present). I run it by double clicking the executable.
2. My mods directory does have a .dll, but as mentioned, the updater is failing before I get to that anyway (and I'll try excluding it if it's a problem).
Edit: After excluding Medieval Fashion and the .dll file it runs just fine for me. Still prompted each time for the data path, but that's a minor inconvenience. Thanks a lot for the help and the tool.
Zinloz
But I need more info :
Thanks, I can run it now. However:
1. Subsequent runs prompt for the path every time - it's not saving the data path entered the first time
2. Seeing a failure when checking one mod (I'm not sure which). Window closes immediately and I don't see a log file to see what went wrong.
Zinloz
Xandyr78
v1.0.10 should be OK for custom VS datapath.
Simply run it and if the program doesn't find the defaut path of VSData at the first run, it will ask you to entry the path.
OK, I didn't know these commands.
I will check to deal with these specific configs. The most simple maybe, will be to put the config file right beside the exe file. It's on my ToDo list.
There is already a config file. But it is created in the VS data ;)
Meanwhile, I suggest :
Now you should be able to use the ModsUpdater.
I've relocated my entire appdata directory for Vintage Story. There are a couple launch arguments you can use:
--dataPath "D:\Vintage Story\Data"
--addModPath "D:\Vintage Story\Data\Mods"
These will cause Vintage Story to look in these locations for your data (saves, config, logs, etc.) and mods when launching.
If you're using the env var for appdata then that's probably the problem. My appdata directory is there, but there is nothing there for Vintage Story (all moved to D drive). My suggestion would be a config file included in the download (or instructions on making one) which is used by the program to find the data directory, possibly defaulting to the appdata path or using that as a fallback option if the user doesn't set the config file.
Zinloz
Your VS data is on your D drive, but, is it only the VS data or all your %appdata% drive ? Because I use a system variable to get the appdata's path. So whatever the path it should be able to get it. And I don't remeber we could choose the path for data. Only for the game. But I may miss something.
But you're right I should add more messages error. Every update of ModsUpdater already had a new error message. There are so much errors that I don't think all of them. So I update when some of you are confronted to one of them :)
Can you update this error message with more details (namely, the path)? This happens when I try to run the program for the first time. I'm guessing it's looking for the default mod location, which I don't have since my VS data is on my D drive. Maybe manually creating the config.ini would fix this, will try it later:
"Error:The system cannot find the path specified
Press any key to continue . . ."
Glad to hear that !
😀
Laerinok
Hi! Deleting the config file in the ModData folder worked! I can now update my mods with the Mod Updater! Thanks a bunch :)
It doesn't matter where your installation is. It doesn't use it. What is matter is where the mods folder is. By défaut mods folders is in c:\users\yourusername\appdata\roaming\VintagestoryData\Mods and actualy I don't see how we could change it, unless all your system is in a drive which is not c. But Even in this case the program should find the right path.
It doesn't matter where you run the program from. It use a system variable of windows to find the right path.
Can you run it in the windows console and give me the error message ? If you don't know how to do, check the post below, with pictures.
I've redirected my installation to a different drive than C:\, and I can't seem to run this properly. Do I run it from inside my VS installation folder? The Data folder? Somwhere else?
Indeed. And I've already caught a lot of errors. Problem is that there are a lot of kind of errors and I must make a test for each. Either I didn't think of one of them, or even I don't know them.
That's why by launching with the console, the error is displayed in the windows.
As I said at the beginning, I am not a programer. I have only learned for some months. But I will try to make better to see errors :)
A nice update would be it not closing automatically when it finishes or errors. Like, Press Y to finish/close or press R to run it again (or idk, some other buttons)
Good news !
On my to do list : having a test to avoid this kind of issue.
Have fun and good play.
Laerinok
The VS_ModsUpdater for the older version was in the mods folder :p
Going to run it now and see if i have any other problems
Update: Yep, finally it is working. It finally generated a proper update log :p
RachelTGG
I've already had this kind of error. It was when there was in the mod folder a zip-file which was not a mod-file. for example if you put VS_ModsUpdater.v.1.0.9.zip in the mod folder you probably will have the error. On my todo list there is something to set a test if a zip-file is a mod-file or not. Are you sure there is no other file than mod-file ?
I suggest (if you've not already did it) to male a clean install by deteting all files (cf post below, to TopOnPC)
If you still have issue, could you send me your mod' list please ?
I you want, I made a small program to create a pdf file of all mods file in the mods repertory. As it was for a personal use, it is in french, and should work on any PC. But you have nothing to do, only run the .exe and the .pdf will be created.
You muste DL the 2 file (VS_ModsList.exe and banner.png) Just be aware to keep the banner.jpg in the same directory than VS_ModsList.exe
Direct Download - VS_ModsList
TopOnPC
Hello, If you're having issues when updating, the best thing to do is :
I think your issue is due to an old file still present.
Edit : To run the mod updater in a console window :
1) In the windows explorer, go into the modsupdater directory and click in the adress bar and type cmd (and then 'enter'). The console opens.
2) Then drag and drop VS_ModsUpdater.exe into the windows console.
3 ) press 'enter'. The script begins
Ok, noticed one weird thing happening. Every mod its causing a error saying there is no modinfo.json in the archive, when i if look in the files, there is. And it goes directly to the error (it doesnt try to update anything else it seems)
Vintage Story Mod Updater - v.1.0.9 by Laerinok
Max game version: Any version
Traceback (most recent call last):
File "VS_ModsUpdater.py", line 476, in <module>
File "VS_ModsUpdater.py", line 352, in mods_list
File "VS_ModsUpdater.py", line 216, in extract_modinfo
File "zipfile.py", line 1664, in extract
File "zipfile.py", line 1703, in _extract_member
File "zipfile.py", line 1476, in getinfo
KeyError: "There is no item named 'modinfo.json' in the archive"
[18860] Failed to execute script 'VS_ModsUpdater' due to unhandled exception!
Laerinok
Hi I had a previous version but when I installed the new version I deleted the old file and it the new one never worked. I've done the same with the update you just released and it still doesn't work. I also don't know how to run the mod updater in a console window. I can open the mod updater file but it just closes after loading the first mod or something. I'm not sure what is going on.
Thanks for all the updates!
RachelTGG
Now, with the 1.0.9 you have no limit anymore for mods-exclusion.
The alphabetic sorting is now OK, except for mods whose modname and filename are different. I am working to fix that, but I think I must rewrite a good part of codes. So it's not my priority for now.
If you have other issues don't hesitate to tell me.
Well, my bad. Indeed there is a limit with 10 files for mods exclusion. I will change this to fit the exclusion list's size. I thought I had changed it.
I will check for the order. It's not something I set, but by defaut the sort function is by alphabetical. But what it happens (I think), the mod'sort is by name file, so what you see is sorted by file name. But what is displayed in the windows is the modid, which may be different. For example, the mod YABBA Forge was named before "more molds". So the filename is moremoldsXXXX.zip. In the list it is sorted by the "M" but the displayed name is "Yabba Forge". Morever, if you use cs-file mods, they are sorted after the zip-file. The Step up mod will be displayed at the end of the list. it is due to the fact that at the begining I didn't know there were cs-file. As I can't open them at the same time than the zip-file they come at the end. Since it doesn't change the result, I didn't modify this. But I guess can do something for that.
Weird, both 1 and 2 i was having it not do that. On 1 it seemed to go by order then it started going backwards (comparing to the mod folder that is sorted by name). On 2, i added it and it just ignored it. (and yeah,i do it seems, in total 143 (!) files in the mods folder.
I'm gonna try to find a fix. I have some ideas to do this, but it may take some time.
1- What is the order it checks mods to update? because it seems to be going backwards (Z to A instead of A to Z) on giving me errors
2- Cant have more than 10 mods on the ignore list.
3- Can we have a update so it skips mods it cant update and just writes to a log file but doesnt stops updating?
RachelTGG
I am sorry for you, but you will have to DL Medieval Fashion (and vanilla wood) manually . The creator coded these 2 mods in a way to be easier for him to maintain them but in return we're not able to download them automatically.
You must keep it int the [Mod_Exclusion] and DL them manually.
TopOnPC
I tried with your mod's list and I didn't had any issue. So It comes from anoter thing.
Can you try to run it in the conwole windows and then give me the error message please. It would be helpful.
Question : Is it your first DL of modsupdater or you updated it from a previous version ? Because I changed the language file's name in the 1.0.8 and if it is not the new name it crashes.
You must have beside the VS_ModsUpdater.exe these 3 files :
RachelTGG
I tried with the 4 mods who gave me. The issue comes from "Medieval Fashion" whitch use a bad versioning. I suggest you to add it in the mod exclusion in the config.ini until I find a fix. It will be ignored and you will be able to update other mods.
Just add in the config.ini this line (\AppData\Roaming\VintagestoryData\ModConfig\ModsUpdater\config.ini) :
mod1 = Medieval_Fashion_v-2.01.26-VS-1.18.6-c.zip (or mod2, mod3 if you already add some exclusions)
You always can update it manually, but in this case you should change the name in the config.ini after updating it or you will have this error agin.
Laerinok
List of mods
This is what is in the modinfo.json
{
"type": "code",
"modid": "egocaribautomapmarkers",
"name": "Auto Map Markers",
"authors": [ "egocarib" ],
"description": "Automatically adds map markers to your map when you interact with certain objects. Fully configurable.",
"version": "2.6.0",
"requiredOnServer": true,
"requiredOnClient": true,
"dependencies": {
"game": "1.18.6-rc.2"
}
}
Most recent error:
Vanilla Crate Compatibility: installed version : 1.0.0 - last version : 1.0.0
Traceback (most recent call last):
File "VS_ModsUpdater.py", line 466, in
File "VS_ModsUpdater.py", line 348, in update_mods
File "VS_ModsUpdater.py", line 212, in extract_modinfo
File "zipfile.py", line 1662, in extract
File "zipfile.py", line 1701, in _extract_member
File "zipfile.py", line 1475, in getinfo
KeyError: "There is no item named 'modinfo.json' in the archive"
[24696] Failed to execute script 'VS_ModsUpdater' due to unhandled exception!
This same error happens with the other mods mentioned on the other message and many others. Seems to be a bit random? Like mods that have just been updated (Vanilla Variants) do that too.
Laerinok havent changed anything. The latest mod (in the temp file) is Medieval Fashion. It is the one that gives that version number.
A few mods are causing that error:
-Medieval Fashion (either the normal or the vanilla woods version)
-QPTech
-VSBiggerWindmil
-Visible Terra Petra Particles
RachelTGG
It seems to be a versioning issue. The last time I saw this issue was when we write a wrong version max in the config.ini. Did you change it ? If it's you, why this number specifically (The version 2.01.25 seems strange. I think it should be 2.1.25). If not do you know witch mod is involved ? you can see (maybe) in the "temp" directory (beside Modsupdater.exe) in the the modinfo.json.
To be more precise, the max version in the config.ini is the version of Vintage Story (not the one of a mod). So the maximum should be less than actual version of VS. if you want to limit download.
Welp, i get this error after some mods updated
Traceback (most recent call last):
File "VS_ModsUpdater.py", line 466, in <module>
File "VS_ModsUpdater.py", line 365, in update_mods
File "VS_ModsUpdater.py", line 269, in compversion
File "semver\_deprecated.py", line 80, in wrapper
File "semver\_deprecated.py", line 112, in compare
File "semver\version.py", line 646, in parse
ValueError: 2.01.25 is not valid SemVer string
[2416] Failed to execute script 'VS_ModsUpdater' due to unhandled exception!
TopOnPC
Hello,
Most of the time, crashes that occur now are due :
For more info, you can check ih the temp directory is created and look int he modinfo.json (with a simple text editor). You will see the name of last mod.
You can also run the script via the cms console. You will see the error message.
You can also send me your mods list and I will ltry.
:)
Hi! When I try to run the mod updater it opens and works for a second but then suddenly closes without any apparent reason. Any idea how to fix this? Thanks!
Localization should now be OK.
If you wish to have your language you can send it to me and I'll add it.
Well It should be OK now.
Moreover, it seems that the script doesn't detect the localization. If there are some russian users, could you tell me if the script detects the right language or if it still in english (v1.0.7)
When I have time, I will make improvements for localization, but for now I focus on fixing bugs ;)
Thauma
You're right. I should change the explication. When I wrote 1.18.x I would say 1.18.1 or 1.18.2, 1.18.3 etc... no the letter X
Maybe I will fix later for use X as a number of version, but for now you should use real numbers ;)
Edit : Indeed, I should change the way to tell the script the max version...
Until the next fix, if it crashes, you should set the version to something like 1.18.7
[Game_Version_max]
version = 100
version = 1.18.7
OK, I saw where this issue comes from. To fix an issue with the comparison of versions, I use now a module with standard Semantic Versioning. And a version number looks like this : MAJOR.MINOR.PATCH
So either you write your version like this 1.18.7 or you can keep the hight value 100 but in this case you must write : 100.0.0
It will be fixed in the next version.
Latest version crashes when checking versions of any mod, not just the mod mentioned in the log.
Vintage Story Mod Updater (Net4). v.1.0.6 by Laerinok
Max game version: Any version
ABCSReborn: installed version : 0.1.1 - last version : 0.1.1
Traceback (most recent call last):
File "VS_ModsUpdater.py", line 458, in
File "VS_ModsUpdater.py", line 370, in update_mods
File "VS_ModsUpdater.py", line 267, in compversion
File "semver\_deprecated.py", line 80, in wrapper
File "semver\_deprecated.py", line 112, in compare
File "semver\version.py", line 396, in compare
File "semver\version.py", line 646, in parse
ValueError: 100 is not valid SemVer string
[22932] Failed to execute script 'VS_ModsUpdater' due to unhandled exception!
EDIT: Assuming that it was because of the version I changed it to 1.18.x and it still crashes, but it seems that the error is somewhere to do with the max version of the game
Vintage Story Mod Updater (Net4). v.1.0.6 by Laerinok
Max game version: 1.18.x
ABCSReborn: installed version : 0.1.1 - last version : 0.1.1
Traceback (most recent call last):
File "VS_ModsUpdater.py", line 458, in <module>
File "VS_ModsUpdater.py", line 370, in update_mods
File "VS_ModsUpdater.py", line 267, in compversion
File "semver\_deprecated.py", line 80, in wrapper
File "semver\_deprecated.py", line 112, in compare
File "semver\version.py", line 396, in compare
File "semver\version.py", line 646, in parse
ValueError: 1.18.x is not valid SemVer string
[38712] Failed to execute script 'VS_ModsUpdater' due to unhandled exception!
Hi,
Thanks, I am on it. Mathgeniuszach gave me some clues to solve this issue as he was confronted to the same issue. It should befixed in the next version. And russian language will be added (thanks to Vsatan)
Hey there,
So not the most important thing but I noticed that the update for prospecttogether (https://mods.vintagestory.at/prospecttogether) isn't recognised because of their versioning:
ProspectTogether: installed version : 1.1.0-rc.3 - last version : 1.1.0
All the best
Deathscreton
Thanks a lot for you message ! Glad to see this is useful.
As you said, what I had in mind was the fact I didn't want to do anything to update. Just run the soft and go.
You emphasise the fact that I should update the description too ! After four updates there are some fixes and additions that might be more indicated
Just wanted to say that this mod has been pretty amazing. Once I got the correct version downloaded and ran, it was literally hands off. The best part was, I was completely unaware of the fact that it will spit out a changelog for everything once done. Imagine my surprise when it did so as I was struggling to open all the browser windows so I could see the changelog myself.
This is great stuff, thank you!
Aksyl
Well I have the UAC with the default settings and I have a standard account (not an admin) and I don't have this issue. Does it always occur with the 1.0.4 ? I fixed an issue.
Which version of Windows do you have ? Maybe the security options are different... I am on Win10.
But at the first run (if the config.ini was not created before) it's normal that the program stop and exit. It is to allow you to modify the config file, if needed, before. You have a message saying the config file was created and that you should run again.
To answer your question, yes my account has wright access, but I use the prompt feature of UAC to warn me if an unauthorized program is attempt to alter files. Sometimes I forget about the directories I use this in as it isn't universally applied.
mohmaniac
It's just an issue with the exit fonction. I don't know why, but as the program would exit in any case, it's not an issue, you can use it. The config.ini file should be created and that is the most important. I will investigate where does this error come from because it didn't happen to me. I'll patch it in the next version (I hope)
EDIT : Fixed in 1.0.4
The first run results in an error message:
E:\Downloads\VS_ModsUpdater.v.1.0.3>VS_ModsUpdater.exe
First execution of the program, creation of the config.ini file done.
Please restart the program (you can add the mods to exclude in the config.ini file before)
Drücken Sie eine beliebige Taste . . .
Traceback (most recent call last):
File "VS_ModsUpdater.py", line 115, in <module>
NameError: name 'exit' is not defined
[4732] Failed to execute script 'VS_ModsUpdater' due to unhandled exception!
Is this an issue?
Aksyl
Is the directory where is the VS_ModsUpdater.exe read-only or you can write in ? Because the script needs to create a temp directory to extract the modinfo.json. It's the only reason I see for the moment. Maybe your profile has no rights to write in this directory but in Admin it's OK.
@Laerinok It created the folders and config but just closed after. Subsequent runs caused it to just close immediately until running it through cmd.
Had to run as admin, d'oh
I've made a quick release for Net7 version. It's the same that the v1.0.3 but with the path for NET7 version.
Next I will make a unique file for both, but I won't have the time this weekend.
@Loco
Well, I need to put another path for the net7 version. While waiting for my change, maybe you can rename VintagestoryData\Mods in VintagestoryData\Mods_ (or what you want), then create a new Mods folder and put inside the net7 mods. Update them and put thme back in the right net7 folder. Once done, you can use again mods folder for net4 mods.
But I probably will make changes this aftermoon so You can just wait a while ;)
I have several versions on my pc. It updated the wrong version. I have a net4 version that it updated and a net7 version it did not update. The net 7 version is installed VintagestoryDataNet7. How can I get it to update the right place?
Secular12
You can now choose the version of the game via the config.ini file.
It's only for updates, I don't know if I can do for a downgrade.
New version online.
Now you can choose the maximum version of the game (set it in the config.ini file).
You must delete the old config.ini file before runs this release, or you can add this section:
[Game_Version_max]
# Select the desired game version (ex: 100, 1.18, 1.18.x). default: 100 (to have all versions)
version = 100
Aksyl
Strange issue. I've never had it. Do you have an error message or it just closes ?
The program doesn't create a VintagestoryData\ModsUpdater directory but \VintagestoryData\ModConfig\ModsUpdate
It seems that the program doesn't find the VintageStory mods directory.
Can you confirm that you have a \VintagestoryData\ModConfig\ModsUpdate directory with a config.ini file ? and that the section [ModPath] in config.ini has the right value for 'path'
Another question, what is the language of your system ? Maybe there are some special characters that are unrecognized.
If needed you can DM me on on discord (same pseudo on the VS server)
I couldn't get this to work by just running the executable, I had to:
Well, I'll see what I can do.
Is there any chance that before 1.19 comes out you can add a kind of configuration to only allow mods to update based on a version of the game it supports. Because I feel like when 1.19 comes out we won't want to update everything until a majority have updated? Also "rolling back" based on the game version support would be awesome too. So, for instance if I run for a newer version of the game, find out there is a bug, then set the config for this to a previous version of the game and then the it will roll things back? I know it is a lot to ask but some food for thought to be prepped for when 1.19 comes out.
BlueBottle
Glad you enjoy it ! 😃
@Laerinok
Wow, thats exactly what i was hoping for! thanks very much
BlueBottle
It's possible. I can scrap the page and get the changelog. But I don't know how will be the consequence on the speed of the script (it will take more time to execute). But I could set an option in the config.ini to disable this option by defaut, and those who want it just have to enable.
I'll think about it
@Laerinok
Thanks for the fix and nice work on this.
No idea how hard it would be or if its even possible, would if be possible to pull the contents of the changelog for the updated mods?
Would be amazing to see this under the updated mods in the updated section.
OK. I see. I think I could add something for that.
It's on my to do list
StepUp for example
OK. I will what I ça do. If you could give me a name of a such mod, I will have à look.
Thanks
Laerinok They have ModInfoAttribute which contains modid, name etc.
DanaCraluminum I don't how mods works. But my script checks the modinfo.json in the zip-file and check the lastest version with the api.
How cs-mod are packaged ?
Issues from checking version should be fixed.
For mods with incomplete modinfo.json file, I cannot do anything. I have set an error message when occurs. You could try to ask modder to put the right key 'moddid' in the modinfo.json
I have change the directory name. So delete the old directory if you have the previous version.
Thanks to BlueBottle for his report
Is it compatible with mods that are just a single .cs file?
BlueBottle
Hello,
Ok. I see what is the problem. the version number contains letters in addition to numbers so it cannot compare the version and... crashes. I think it's the problem.
Thanks.
EDIT : In fact, there are two distinct issues:
Hello there,
I seem to be getting quite a few errors including
"Traceback (most recent call last):
File "Vintage_Story_ModUPdate_V4_WIP.py", line 225, in <module>
File "Vintage_Story_ModUPdate_V4_WIP.py", line 164, in compversion
File "Vintage_Story_ModUPdate_V4_WIP.py", line 164, in <listcomp>
ValueError: invalid literal for int() with base 10: '0-rc'
[25940] Failed to execute script 'Vintage_Story_ModUPdate_V4_WIP' due to unhandled exception!"
and
Traceback (most recent call last):
File "Vintage_Story_ModUPdate_V4_WIP.py", line 222, in <module>
KeyError: 'mod'
[2356] Failed to execute script 'Vintage_Story_ModUPdate_V4_WIP' due to unhandled exception!
After excluding the following it finished successfully
BetterFirepit.zip (..net7)
ACulinaryArtillery 1.0.12_RC.zip (.net7 and crashed)
AnvilMetalRecovery_V0.1.19-pre.1_Debug.zip (crashed)
arachnidreplacer.zip (crashed)
Bullseye_2.5.0-rc.1.zip (crashed)
FarmlandDropsSoil-VS1.15-v1.4.0.zip (crashed)
Indeed it is a point of view. But I don't share it. Yes it's an easy way, just to click one button. But you have to go to the site, check which mod have been updated. That's OK for 5 mods. But 70+, I don't feel like to spend my time at chekcking and clicking.
And Moreover, as I've said, it originally was an exercise for me. And then I decided to share it.
You may not like the idea, but auto-update is a lack for many players I know.
Because of the great way the official mod site is laid out. It is no problem to pop in for 5 minutes a day just before you start playing and update anything that has changed.
And check out anything that is new.
And doing it that way has the benefit that you can avoid updating when the mod changes in a way you don't like.
Araiye
Well I don't know. what kind of server ? I mean, it's just an executable file for Windows. So if you can run the software on the server it should be able to update mods.
I see several cases:
As I said, I am learning python. So I don't know if I will able to do something. But I will look for.
Can you create a server-side version of this? That would be amazing if you could!