Introduction


JSON files are the foundation for modding, these configuration files are read by the game at runtime and act as definition files for game parameters, like a database or catalog. It can also reference assets (meshes, textures, audio, etc...) and custom class type from DLL plugins.

The default JSON files used by the base game are packed in a.jsondb archive file (zip), in [Blade & Sorcery folder]\\BladeAndSorcery_Data\\StreamingAssets\\Defaultor as loose files in the BasSDK Unity project: [BasSdk folder]\\BuildStaging\\Catalogs\\Default

To create a mod, most of the time you have to create a json that will act as a new item or an override of an existing game json that use the same ID. To do so, you can copy the configuration files from the SDK or the game, modify it, then place it in a dedicated mod folder in [Blade & Sorcery folder]\\BladeAndSorcery_Data\\StreamingAssets\\Mods for the PCVR version of the game or in [Device storage]\\Android\\data\\com.Warpfrog.BladeAndSorcery\\files\\Modsfor the Nomad version of the game.

<aside> πŸ—’οΈ It's highly recommended to keep in the customized JSON only the fields you want to change, this way, if another mods do changes to another field in the same JSON it will not conflict.

</aside>

Each customized JSON should contain at least the fields $type, id and version. It is recommended that you do not edit these, and that if there is a new update that changes the JSON files you edit, it is recommended to start with a fresh new json parameters to prevent any issues.

{
  "$type": "ThunderRoad.CreatureData, ThunderRoad",
  "id": "PlayerDefaultMale",
  "version": 6,
  "health": 1000,
  "locomotionSpeed": 5.0
}

Manifest file


A manifest.json file is required in the mod folder, without it, the folder/mod will be ignored by the game. This file contain some data about the mod, like the mod version, the description, the author, etc...

{
    "Name": "MyMod",
    "Description": "This is my cool mod",
    "Author": "Someone",
    "ModVersion": "1.0.0",
    "GameVersion": "0.12.0.0",
		"Thumbnail": "thumbnail.png"
}

<aside> πŸ—’οΈ Thumbnail path is relative to the mod folder path, and it’s also possible to use an http address like "<https://www.some.image.link/123.png>"

</aside>

<aside> πŸ—’οΈ GameVersion is the game mod version compatible with the mod

</aside>

JSON types


As for the U12 version, the game use around 30 types of JSON: