MADH95Mods-JSONCardLoader icon

JSONCardLoader

This is a BepInEx plugin made for Incryption to create custom cards using JSON files and the API by Cyantist. It can currently parse custom cards and pass them to APIPlugin to load them into the game.

Last updated a week ago
Total downloads 5256
Total rating 11 
Categories Libraries Misc
Dependency string MADH95Mods-JSONCardLoader-1.7.1
Dependants 33 other mods depend on this mod

This mod requires the following mods to function

BepInEx-BepInExPack_Inscryption-5.4.1701 icon
BepInEx-BepInExPack_Inscryption

BepInEx pack for Inscryption. Preconfigured and ready to use.

Preferred version: 5.4.1701
API_dev-API-1.12.0 icon
API_dev-API

This plugin is a BepInEx plugin made for Inscryption as an API. It can currently create custom cards and abilities and inject them into the data pool, or modify existing cards in the card pool.

Preferred version: 1.12.0

README

JSON Loader

This is a BepInEx plugin made for Incryption to create custom cards using JSON files and the API by Cyantist. It can parse custom cards and pass them to APIPlugin to load them into the game.

Converting Existing Cards

In order to have compatability with mod manager, version 1.7.0 breaks backwards compatability. Don't worry though! all the contents of your files are fine, the only change is the extension on the end. the new extension jsonlaoder looks for is .jldr, so you'll need to start making cards with that extension instead of .json (again, the contents are still in the json format). If you have a lot of cards to change, you can use the json to jldr converter utility to convert all cards in a directory from .json to .jldr!

Installation

Automatic

Simply download with Thunderstore Mod Manager!

Manual

To install this plugin you first need to install BepInEx as a mod loader for Inscryption. A guide to do this can be found here

You will also need version 1.12+ of the InscryptionAPI plugin.

Finally, you simply need to put the JSONLoader.dll folder in BepInEx/plugins.

Custom Cards

To create your own cards you just create a .jldr file (written in json) and fill in all the fields you want your card to have (fields you don't include will be defaulted). The name field is required, and the rest are optional with default values (though that would be a boring card). Those fields and their values are specified in the table below. For reference, an example custom card (8 f*cking bears.jldr) is included in the Cards folder in this repo.

To edit existing cards, you similarly create a .jldr file and fill in the fields you want to edit on the card. You must include both the name field and the fieldsToEdit field with at least 1 field name in it (explained more on the table). Any fields you don't include in fieldsToEdit will not be changed from the base card.

You can use this online JSON Schema validator to avoid syntax errors, and make sure the fields are correct in your json files. There is also a GUI based verion that is an option, just copy the json from the right hand panel when done!

Files go anywhere in the plugins folder, along with the artwork required for the card.

Cards have lots of fields that can be filled - this is a list of all field names and their purpose. The fields you wish to include in the .jldr file should be copied exactly from this table, and any fields that refer to Enums.md or Card Names.txt should have their strings be copied exactly from there.

Field Description
fieldsToEdit [Required: Editing] A string array for the fields you wish to edit. The fields must be the exact names as in the right hand side of this table
name [Required] A string for the name the game will use to identify the card - should contain no spaces. When editing, this field must match the card's name (See Card Names.txt for a list of ingame card names)
displayedName [Optional] [Default: ""] A string for the name displayed on the card
description [Optional] [Default: ""] A string for the description Leshy gives when you find the card
metaCategories [Optional] A string array of meta catagories the card has (See Enums.txt for a list of catagories)
cardComplexity [Optional] [Default: Vanilla] A string for the complexity of the card (See Enums.txt for a list of levels of complexity)
temple [Optional] [Default: Nature] A string for which Scrybe created the card
baseAttack [Optional] [Default: 0] An integer value for the attack of a card
baseHealth [Optional] [Default: 1] An integer value for the health of a card
hideAttackAndHealth [Default: false] A boolean value to toggle if the cards attack and health are visible
bloodCost [Optional] [Default: 0] An integer value for the blood cost of a card
bonesCost [Optional] An integer value for the bones cost of a card
energyCost [Optional] An integer value for the energy cost of a card
gemsCost [Optional] A string array for the gems cost of a card (See Enums.txt for a list of gems)
specialStatIcon [Optional] An string for which special stat icon the card has (See Enums.txt for a list of icons)
tribes [Optional] An string array for the tribes the card belongs to (See Enums.txt for a list of tribes)
traits [Optional] An string array for the traits a card has (See Enums.txt for a list of traits)
specialAbilities [Optional] A string array for the special abilities a card has (See Enums.txt for a list of special abilities)
abilities [Optional] A string array for the sigils a card has. (See Enums.txt for a list of sigil abilities).
customAbilities [Optional] An array of objects for the custom ability name and mod GUID (It's children are in the table below this one)
customSpecialAbilities [Optional] An array of objects for the custom special ability name and mod GUID (It's children are in the table below this one)
evolution [Optional] A json object for the evolveParams of the card. (It's children are in the table below this one)
defaultEvolutionName [Optional] The name the card will have when it evolves (when it doesn't have evolve_ fields set)
tail [Optional] A json object for the tailParams of the card. (It's children are in the table below this one)
iceCube [Optional] A json object for the iceCubeParams of the card. (It's children are in the table below this one)
flipPortraitForStrafe [Optional] A boolean to determine if the cards portrait should flip when it uses one of the strafe sigils
onePerDeck [Optional] A boolean value that toggles if there can be only one of the card per deck
appearanceBehaviour [Optional] A string array for the behaviours the cards appearance should have (See enums.txt for a list of appearance behaviours)
texture [Optional] A string for the name of the card's image (must be .png). If it is in a subfolder within Artwork the subfolder should preceed the file name seperated by a '/' (or your system equivelent)
altTexture [Optional] A string for the name of the card's alternate image (must be .png)
emissionTexture [Optional] A string for the name of the card's emission image (must be .png)
titleGraphic [Optional] A string for the name of the card's title image (must be .png)
pixelTexture [Optional] A string for the name of the card's act2 image (must be .png)
animatedPortrait [Unavailable]
decals [Optional] A string array for the texture names of a card decals (must be .png)

Custom Ability fields

Field Description
name The name of the ability. This may be seperate form the name that appears in the book, check the mod description or ask in the discord for specifics
GUID The GUID the mod maker made for their mod. This may be found in the mod description. It is usually in the layout of "MakerName.inscryption.ModName"

Custom Ability fields

Field Description
name The name of the special ability. This may be seperate form the name that appears in the book, check the mod description or ask in the discord for specifics
GUID The GUID the mod maker made to identify their mod. This may be found in the mod description. It is usually in the layout of "MakerName.inscryption.ModName"

Evolution fields

Field Description
name The name of the card this card evolves into (See Card Names.txt for a list of ingame card names)
turnsToEvolve The number of turns til the card evolves (The game supports sigil art for up to 3 turns)

Tail fields

Field Description
name The name of the tail card this will produce (See Card Names.txt for a list of ingame card names)
tailLostPortrait The portrait the card should have once it's tail is lost

IceCube fields

Field Description
creatureWithin The name of the creature the card should turn into when it perishes (See Card Names.txt for a list of ingame card names)

Debugging

The easiest way to check if the plugin is working properly or to debug an error is to enable the console. This can be done by changing

[Logging.Console]
\## Enables showing a console for log output.
\# Setting type: Boolean
\# Default value: false
Enabled = false

to

[Logging.Console]
\## Enables showing a console for log output.
\# Setting type: Boolean
\# Default value: false
Enabled = true

in Inscryption/BepInEx/Config/BepInEx.cfg


To add cards to your starting hand to test if your cards work, you can download my deck building mod


If you want help debugging you can ask in the #card-creation channel in the Inscryption modding discord.

Development

Plans for the future:

  • Up to date!

Available versions

Please note that the install buttons only work if you have compatible client software installed, such as the Thunderstore Mod Manager. Otherwise use the zip download links instead.

Upload date Version number Downloads Download link  
2021-11-24 1.7.1 2504 Version 1.7.1 Install
2021-11-24 1.7.0 28 Version 1.7.0 Install
2021-11-16 1.6.1 1029 Version 1.6.1 Install
2021-11-16 1.6.0 75 Version 1.6.0 Install
2021-11-15 1.5.3 271 Version 1.5.3 Install
2021-11-15 1.5.2 41 Version 1.5.2 Install
2021-11-15 1.5.1 28 Version 1.5.1 Install
2021-11-15 1.5.0 27 Version 1.5.0 Install
2021-11-12 1.4.0 553 Version 1.4.0 Install
2021-11-12 1.3.11 54 Version 1.3.11 Install
2021-11-12 1.3.10 39 Version 1.3.10 Install
2021-11-12 1.3.9 15 Version 1.3.9 Install
2021-11-12 1.3.8 40 Version 1.3.8 Install
2021-11-12 1.3.7 59 Version 1.3.7 Install
2021-11-12 1.3.6 9 Version 1.3.6 Install
2021-11-12 1.3.5 28 Version 1.3.5 Install
2021-11-8 1.3.3 348 Version 1.3.3 Install
2021-11-7 1.2.1 36 Version 1.2.1 Install
2021-11-7 1.2.0 13 Version 1.2.0 Install
2021-11-5 1.1.1 40 Version 1.1.1 Install
2021-11-5 1.1.0 8 Version 1.1.0 Install
2021-11-4 1.0.1 11 Version 1.0.1 Install