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\\Default
or 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\\Mods
for 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
}
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>
As for the U12 version, the game use around 30 types of JSON: