Manifest Introduction
So you are making a mod and or want to know about manifests? You've come to the right place! Let's get started.
What is a manifest?
So what is a manifest and why do you need it?
In short a manifest is a simple text file with a specific JSON format telling the manager everything it needs to know about your mod.
Things like the name, a description, icon, and its options for example.
Why do I need a manifest?
A bit of history.
In the beginning most mods were only ever 3 files:
9ba626afa44a3aa3.patch_0
,
9ba626afa44a3aa3.patch_0.gpu_resources
, and
9ba626afa44a3aa3.patch_0.stream
.
Something similar should be familiar to you if you've ever manually modded the game.
Eventually the modding community got bigger and more ambitious and with that ambition the mods grew as well.
Suddenly you had more content and options in the same archive file (ZIP, RAR, ect.) and the manager in its infidelity could not cope with that.
Back then your only option was to un-zip a mod with options you've downloaded and re-zip the options you would want to use so you could import them into the manager.
That obviously would get cumbersome as mods grew in complexity.
When I realized that on top of how many people were already using my manager, I wanted to come up with a solution.
And that solution eventually came in form of the manifests.
How to read the manifest specifications
Now that we're all caught up, here's how to read the following documents describing the so-called schema of the manifests. This is about to get a bit technical so brace yourself.You will come across notations like this:
-
Property Name
required
oroptional
- allowed types
- description
This describes a JSON property in detail.
- If this property has to be defined or if you can leave it out if you don't need it.
-
What types the property accepts as its values. These will be seperated by pipes (
|
) and can be any of the following:string
: A pice of text in double ("
) quotes.number
: A number that can be both an integer or a floating point. (description will say which one)object
: A JSON object essentially a collection of properties seperated by commas denote by curly braces. (description will point to another spec expanding on the layout)array
: A JSON array is a comma seperated list of any values (different types allowed in the same array) denoted by square brackets. (description will explain what types are allowed)null
: Null is a keyword literally meaning nothing so setting a property tonull
will explicitly give it no value.
- An additional description with more details.
I Hope that made sense.
I tried to make this as easy to understand as possible so that even people with little technical knowledge would understand it.
Now that you know what to expect and how to read it I'll leave you with the links to the different manifest versions.