All mods will be placed in the [Install location]/BattleTech_Data/StreamingAssets/mods directory. Within that directory, each user that creates mods will have their own directory, and each mod they create will be placed in another directory within the user's directory. For example, if I were to create a "house-rules" mod, it would go in [Install location]/BattleTech_Data/StreamingAssets/mods/ronhatch/house-rules.
How to prevent duplicate usernames is TBD, but it will likely be your username on whatever platform we end up using to officially distribute mods. For now, your username on the Paradox forums will do.
Each mod will contain whatever JSON and Asset bundle files are needed, along with the following two mandatory files for bookkeeping:
- ModManifest.csv will contain lines to be appended to VersionManifest.csv. In case of lines that conflict with the original VersionManifest.csv or other mods, it is up to the mod manager/installer to remove duplicates based on the listed id. Mods will always be installed in a specific order, and the last conflicting entry will always be the one kept.
- ModInfo.json will contain version information and a short description of the mod. This is primarily for future features, but we're specifying it now so that we can rely on some basic information being available. The contents of the ModInfo.json file should be something like this:
{
"PackageFormat" : 0.1,
"ModVersion" : 1.2,
"ModDescription" : "A collection of changes implementing my house rules."
}
PackageFormat is the version of this specification that was used, the version described here is 0.1.
ModVersion should be a number, but can be anything the author wants as long as newer versions always use numbers greater than the previous versions.
ModDescription is freeform text intended to be displayed on a single line. Keep this to under 80 characters as a rule of thumb.
Additional files that are not required can be included, such as a ReadMe.txt file. All files can be zipped up for easier distribution, but that is currently not part of this specification.
Lastly, please keep in mind that for Linux and Mac users lowercase and uppercase are NOT treated the same in filenames. So if you have a file named AwkWaRdNamING.json in your mod, do not list it as AwkwardNaming.json in your ModManifest.csv file. Always use the exact same capitialzation as what you're seeing in your directory listing, and the mods directory should be all lowercase. Eventually it should be possible to run a script that will verify your mod follows all of these rules, but that tool has not been written yet.
And... now open for discussion...