Jump to content

Vortex's reliance upon download filenames for versioning


VulcanTourist
Go to solution Solved by Tannin42,

Recommended Posts

Vortex has a problem with versioning, caused by its reliance upon the downloaded filenames for version information. This reliance leads to problems and confusion when trying to update mods. I reference this discussion elsewhere:

 

 

All files are marked as version 2.2... Take it up with the Vortex devs. They're the ones who need to fix Vortex. Not much I can do since this clearly wreaks of an issue with Vortex's handling of downloaded files...

 

You are not entirely correct that all the files are "marked as version 2.2"; two of them are not, as demonstrated by the names of the downloaded files:

Denise - SSE 2.2

Date uploaded: 14 Jul 2020, 8:00AM
Version: 2.2

(File to be downloaded:)
Denise - SSE 2.2-36200-2-2-1594738809.zip

Denise - Demoniac v1.12 CBBE SMP Supported Textures

Date uploaded: 01 Jun 2020, 7:38AM
Version: 2.2

(File to be downloaded:)
Denise - Demoniac v1.12 CBBE SMP Supported Textures-36200-2-0-1591022319.7z

Denise - Mature Skin Textures

Date uploaded: 14 Jul 2020, 7:55AM
Version: 2.2

(File to be downloaded:)
Denise - Mature Skin Textures-36200-2-2-1594738515.zip

Denise - Pride of Valhalla Asgard Textures

Date uploaded: 30 May 2020, 11:17PM
Version: 2.2

(File to be downloaded:)
Denise - Pride of Valhalla Textures-36200-2-0-1590905828.zip

 

You modified two of the four files on July 14th. The NexusMods Web site - not Vortex - knows this, in spite of the displayed version being changed. As a result, the package files being offered for download of the two patches that weren't modified remain unchanged, including the filenames. The result, as you can see, is that the names of the files being offered for download for the two that were not changed still reflect the version when they were last modified. Vortex uses the information in those filenames themselves to determine the version to display, rather than pulling data directly from the Web site.

 

Is that a bad thing, that the Web site and Vortex use the filenames themselves to communicate information? Perhaps, but this is why the apparent version mismatch is occurring.

 

In another comparable instance, a mod author changed all the versions of his mod's files at the site to "Current" - yes, the WORD "Current" - without changing the contents at all. Since nothing about the content was altered, the downloaded filenames still reflected the previous NUMERIC versions. Vortex polls the Web site asking for version information, and since the Web site now shows different "Current" versions for all the files then Vortex notifies the user that a new version is available... even though there isn't. When the files are downloaded, of course, they are the exact same files that the user already had.

 

So... either Vortex needs to start communicating directly with the NexusMods Web site to retrieve the actual versions being downloaded, or the Web site needs to better educate mod authors and/or impose more structure on the publishing process.

Link to comment
Share on other sites

Vortex reads the metadata from the Mod Page

The problem is... it only seems to do that when checking whether there's an update. Once you've scheduled the download it conveniently forgets what it might have learned during the update query and relies upon the filename alone to decide what version it is. That means if an author decides to "reimagine" the versioning of files without having actually made any changes, then Vortex will claim there's new content when there actually isn't, and once you download any files they appear identical to the ones you already have (because they ARE).

 

This creates unnecessary confusion and wasted time and bandwidth (on BOTH ends of the connection). Ideally, if the content of a package file hasn't changed then the version should not change either. Vortex is smart enough to recognize that the file is unchanged once it has it in its possession, but too stupid to recognize it beforehand when an unnecessary download could have been prevented.

 

I suppose what Vortex should be doing is querying the FILENAMES at the Web site to see if those have changed? Then mod authors can have a field day changing their versioning as the mood suits them and Vortex will still know when there's really new content to download.

Link to comment
Share on other sites

  • Solution

First of all, I'm fully aware that mod authors often don't use the version field correctly. The problem is that this is not a solvable problem.

Look at this mod: https://www.nexusmods.com/skyrimspecialedition/mods/5804

Assume you currently have the Paper variant of the mod at - for example - version 8.2.

How is Vortex to decide which file to get? The version number is part of the file name so vortex can't just look for the file with the same name as it currently has and then pick the newest version but it also can't simply take the file with the highest version number because that would be the "Vivid with Stone Roads" variant which is at version 9.0.1 whereas the newest Paper variant is only at version 9.0P.

 

The tl;dr is: It's not possible - in the absence of magic - to reliably determine mod updates for all mods, the file version is completely worthless for this purpose because way too many mod authors encode the *variant* (like "paper") into the version field, in other cases the mod has multiple variants/alternatives (e.g. 2k/4k texture resolutions) with the exact same version number.

No matter how much we communicate with the page, the information simply doesn't exist (at least not for all mods) and no matter what we change to the site now, for older mods the information will never exist.

No matter how the update mechanism works, there is a large number of mods that will not update correctly with it, we can merely decide _which_ mods will fail and the mechanism Vortex uses is the one that is least likely to lead to an unnecessary update or an update to a completely different file. As far as humanly possible it errs on the side of caution.

 

So this is a base fact I need people to understand: Mod updating through a tool is always a heuristic, it can fail, that can't be changed. By nobody. ever. Not without overhauling the existing data for hundreds of thousands of mods.

There is no point calling this a bug or pestering mod manager authors about it, it's a fundamental historic flaw in how nexusmods stores mods and we will never get rid of it, we have to make the best of the information we have.

 

 

The only ones who can actually ensure a clean update procedure is mod authors, by strictly using only a subset of the functionality the site offers, such that mod managers even have a chance to correctly find an update. But that too would first have to be communicated through the site...

 

 

To address your actual point: Vortex doesn't use the file version. At all. Anywhere.

Vortex determines updates in one of two ways:

a) Mod Authors can, when they upload a file, declare that "this file is an update to this older file I uploaded earlier". This information is saved internally, not visible to the user, but mod managers can query it. If this info is available, Vortex follows this chain of "file x was replaced by y was replaced by z ..." until it finds a file that hasn't been updated and assumes that that file is current and if it's not the one installed.

b) If that information is absent, Vortex simply checks if there is a single "Main File" for the mod. If so, it compares the file id against the one it has locally and if they differ, updates to it.

 

In both cases, the version number/text is irrelevant, in both cases the download happens based on a file id, an id that has to be different from the one already installed and that is found through a deterministic algorithm that won't find a different file the next call (unless a new file was actually uploaded).

 

If both these methods don't find a single file (either they find nothing or multiple files) Vortex will not update automatically but ask the user to figure out which update to download and then again, Vortex downloads the file based on an id that the user clicks.

At no point is the file version relevant for anything in Vortex, it's only there for the user.

 

However: if the author uploads the same file again, unmodified, that file will have a new id and Vortex will have no way to determine that it's the same file without downloading it. And to be perfectly honest, even if it did, this wouldn't be worth having a separate check in Vortex If anything the page should be catching this and simply not give out a new file id for an unmodified file.

Link to comment
Share on other sites

FYI, the mod whose file versions were all changed to "Current" is RE - Real Estate Continued. When I criticized this choice, the response from its author @Habalak was juvenile AND he received mindless support from two other posters. If @tannin42 could step in and educate him as well, it would be appreciated.

Edited by VulcanTourist
Link to comment
Share on other sites

FYI, the mod whose file versions were all changed to "Current" is RE - Real Estate Continued. When I criticized this choice, the response from its author @Habalak was juvenile AND he received mindless support from two other posters. If @tannin42 could step in and educate him as well, it would be appreciated.

 

 

That's against the TOS to call out other users and mod authors by name

Link to comment
Share on other sites

Create an account or sign in to comment

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

Create an account

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

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...