-
Notifications
You must be signed in to change notification settings - Fork 51
Creating your mod.json file
The mod.json
file needs to provide the minimum following information.
{
"Id": "MyMod",
"DisplayName": "My Mod",
"Author": "My Name",
"Version": "1.0",
"Enable": true,
"Game": "Subnautica",
"AssemblyName": "MyMod.dll"
}
-
Id
: Your unique mod id. Can only contain alphanumeric characters and underscores.
(required)
Type:string
Example:"BestMod"
-
DisplayName
: The display name of your mod. Just like the mod id, but it can contain any type of characters.
(required)
Type:string
Example:"Best Mod"
-
Author
: Your username. Should be the same across all your mods. Can contain any type of characters.
(required)
Type:string
Example:"Awesome Guy"
-
Version
: The mod version. This needs to be updated every time your mod gets updated (please update it).
(required)
Type:string
Example:"1.0.0"
-
Dependencies
: Other mods that your mod needs. If a dependency is not found, the mod isn't loaded.
(optional, defaults to[]
)
Type:string[]
Example:[ "DependencyModID" ]
-
VersionDependencies
: Just likeDependencies
, but you can specify a version range for the needed mods.
(optional, default to{}
)
Type:Dictionary<string, string>
Example:{ "SMLHelper": "2.0", "AnotherVeryImportantMod": "1.2.3" }
Note that the version you specify here will be treated as the new "minimum required version".
If the dependency mod is out of data, QModManager won't load this one. -
LoadBefore
: Specify mods that will be loaded after your mod. If a mod in this list isn't found, it is simply ignored.
(optional, defaults to[]
)
Type:string[]
Example:[ "AModID", "SomeOtherModID" ]
-
LoadAfter
: Specify mods that will be loaded before your mod. If a mod in this list isn't found, it is simply ignored.
(optional, defaults to[]
)
Type:string[]
Example:[ "AnotherModID" ]
-
Enable
: Whether or not to enable the mod.
(optional, defaults totrue
)
Type:bool
Example:true
-
Game
: The game that this mod is for. Can be"Subnautica"
,"BelowZero"
, or"Both"
(optional, defaults to"Subnautica"
)
Type:string
Example:"Subnautica"
-
AssemblyName
: The name of the DLL file which contains the mod.
(required)
Type:string
Example:"BestMod.dll"
-
EntryMethod
: The method which is called to load the mod. The method must be public, static, and have no parameters.
Type:string
Example:"BestMod.QMod.Patch"
Note: This is no longer required.
See Basic Mod Loading Setup for details on how you can identify your patching method without setting it in the manifest file.
Please note that you need to add commas after each value except the last one. If you get a "mod.json deserialization failed" error, check the mod.json
file on an online json validator.
If there is something missing or ambiguous, please create an issue or contact us on the Subnautica Modding Discord using our tags:
- PrimeSonic:
@PrimeSonic#0667
- Metious:
@Metious#3682