Versioning System - CBATeam/CBA_A3 GitHub Wiki
Versioning System
The versioning system allows you to register your mod, including version.
In Multiplayer, the versions are compared between server and clients, and warnings are displayed when mismatches have been detected.
Implementation
Define the required macros and use them in CfgPatches
section of MyMod
's config.cpp
#define VERSION 1.0 // Should be a floating-point number (1 separator)
#define VERSION_STR 1.0.1 // Since CBA v3.13.0
#define VERSION_AR 1,0,1
class CfgPatches {
class MyMod_main {
VERSION_CONFIG;
};
};
Or alternatively without macros:
class CfgPatches {
class MyMod_main {
version = 1.0; // Should be a floating-point number (1 separator)
versionStr = "1.0.1";
versionAr[] = {1, 0, 1};
};
};
To register the mod with the CBA Versioning System:
class CfgSettings {
class CBA {
class Versioning {
// This registers MyMod with the versioning system and looks for version info at CfgPatches -> MyMod_main
class MyMod {
// Optional: Manually specify the Main Addon for this mod
main_addon = "MyModAddon";
// Optional: Add a custom handler function triggered upon version mismatch
// Make sure this function is compiled in preInit, not spawn/execVM
handler = "myMod_fnc_mismatch";
// Optional: Dependencies
// Example: Dependency on CBA
class Dependencies {
CBA[] = {"cba_main", {0, 8, 0}, "true"};
};
// Optional: Removed addons Upgrade registry
// Example: myMod_addon1 was removed and it's important the user doesn't still have it loaded
removed[] = {"myMod_addon1"};
};
};
};
};