Tutorials/SCS Workshop Uploader/How to use mod versioning

From SCS Modding Wiki
Jump to navigation Jump to search

With Steam Workshop mods you have better more flexible way to make your mod compatible with specified set of game versions. From patch (ETS2 1.24, ATS: 1.23 and SCS Workshop Uploader 1.0.4) you can use new packages - informational packages.

Informational package is a package that is used just for informational purpose - it means it does not affect gameplay in any way and is simply here to let mod user know what he has to do to use your mod - for example upgrade to the latest patch or downgrade to the currently supported patch (useful for map authors which needs some time to update mod to work with the latest patch).

Let's assume your versions.sii file looks like this:

SiiNunit {

package_version_info : .content {
    package: "content"
    compatible_versions[]: "1.25.*"
}

}

Which means your mod is only compatible with 1.25 patches.

The incompatible package should contain manifest.sii, mod icon and mod description file. The manifest should be standard - icon may indicate that this is just informational version without any functionality however mod user will see red "Incompatible" label next to the mod in mod manager so it can be the same as for different versions. The description should let mod user know how to adjust his game to make your mod working for example:

To make super mod 1000 work you must downgrade your game to patch 1.20. To do that go to your steam game library, select Euro Truck Simulator 2 click right mouse button on it select Preferences go to Beta tab and select temporary_1_20 - 1.20 for incompatible mods beta and close the dialog. Steam will downgrade your game version and on next launch of the game super mod 1000 will be useable again!

In versions.sii file this version will look like this:

package_version_info : .info.any
{
    package: "informational"
    informational: true
}

So this version will be used even for the older versions than 1.20. At the moment there is no way to specify different informational package for older game version so for example if your mod will target 1.20 game patch you will be able to specify different informational version for 1.19 and older patches and different for 1.21 and newer. However you can specify version of informational package so it will be only used for specified version. Let's say you have two informational versions - one informing about downgrade (folder is called downgrade_info_package) and one informing about update of the game (folder is called upgrade_info_package).

You have nice description in both packages with advices how to do upgrade and downgrade now you just need to add your packages to versions.sii.

The version for older game versions will look like that.

package_version_info : .info.upgrade.older.game.versions
{
    package: "upgrade_info_package"
    informational: true
    compatible_versions[]: "1.19.*"
    compatible_versions[]: "1.18.*"
    compatible_versions[]: "1.17.*"
    compatible_versions[]: "1.16.*"
    compatible_versions[]: "1.15.*"
    compatible_versions[]: "1.14.*"
    compatible_versions[]: "1.13.*"
    compatible_versions[]: "1.12.*"
    compatible_versions[]: "1.11.*"
    compatible_versions[]: "1.10.*"
    compatible_versions[]: "1.9.*"
    compatible_versions[]: "1.8.*"
    compatible_versions[]: "1.7.*"
    compatible_versions[]: "1.6.*"
    compatible_versions[]: "1.5.*"
    compatible_versions[]: "1.4.*"
    compatible_versions[]: "1.3.*"
    compatible_versions[]: "1.2.*"
    compatible_versions[]: "1.1.*"
    compatible_versions[]: "1.0.*"
}


The version for newer game versions will look like that.

package_version_info : .info.downgrade.newer.game.versions
{
    package: "downgrade_info_package"
    informational: true
}

You may notice in newer package there are no compatible versions specified. As your real mod content package looks like that:

package_version_info : .content
{
    package: "content"
    compatible_versions[]: "1.20.*"
}

and all the older game versions are listed in the upgrade package - downgrade package will be selected ONLY for the patches newer than 1.20.