Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

When X Rebirth updates an extension, it checks the the downloaded content.xml for a game version requirement. If the extension requires a higher game version, the game discards the download (with a warning message) and continues to use the existing files on the disk. So if you as a Workshop author change the game version requirement, this will not break anyone's game. However, there are no such checks when you change dependencies on other Workshop extensions and their versions - the update will be applied anyway.

Supporting multiple game versions

In some cases you may want to provide different files for different game versions in the same Workshop extension. This is useful when Egosoft provides a beta of a new game version and you want to adjust your mod for this beta, without affecting all the players who still play the public version with your mod. For example, a new beta version of X Rebirth could add new features that you want to include in your mod, or your mod could become incompatible and has to be fixed. You can use the beta phase to make the necessary changes, and support both the released version and the beta version at the same time.

This is how it works: As described in the catalog tool documentation, the game will search for a version catalog of the current game version in your extension folder, e.g. version 1.50 would look for ext_v150.cat. If it exists it will be used to override content from your other extension catalog(s).

If you do not use the catalog tool manually, the WorkshopTool can do all the work for you. For example, you have an extension that works with the current version of X Rebirth (let's say 1.50) and there is a beta for X Rebirth (let's say version 2.00). You want to make changes to your extension to prepare it for v2.00. This is what you do:

  • You create a sub-folder called "v150" for game version 1.50.
  • You copy *everything* from your existing extension folder into this folder (except for content.xml and previously existing version folders like "v140"). This is the content that players will see in game version 1.50.
  • In your normal extension folders you make the changes for version 2.00.
  • Set the required version of X Rebirth to 1.50 in content.xml, not 2.00, because this file is also used on v1.50. (If you allow game versions older than 1.50 then you should also provide version folders for these.)
  • When you are ready to upload the update, use the WorkshopTool with -buildvcat instead of -buildcat. It's basically the same, but -buildvcat also looks for such version folders. It will find v150 and build a diff catalog ext_v150.cat/dat. This will only contain files that are different from the 2.00 content.
  • Both catalogs ext_01 (with 2.00 content) and ext_v150 will be uploaded and provided to the players. Version 1.50 players will see the 1.50 content, and 2.00 beta players will see the new content (because ext_v150 is not loaded).
  • Once version 2.00 is released for everyone, feel free to remove the v150 folder and set the required game version to "200" in content.xml, unless you want to continue support for players who have disabled game updates but have enabled Workshop updates.

If you decide to build all your catalogs and the version catalog(s) manually, be aware that you should build them again on each update - the version catalogs must always be a diff to the current version.