Adding cards - Pandemonium14/ExoLoader GitHub Wiki
Instructions on how to add custom memory and gear cards. Check out Adding collectibles page for adding custom collectibles.
Cards are added by first adding a folder in the Exocolonist/CustomContent
folder, assuming you don't have your ModName
folder already. Inside your ModName
folder, create a folder called Cards
. This will contain all your custom cards - each card will have its own .json file and a corresponding .png image file.
Creating the data file
The data file must be a .json file in the Cards folder. For example, Exocolonist/CustomContent/TemplateContent/Cards/template2.json
. Be careful to keep all brackets, commas and quotation marks properly formatted!
Mandatory Entries
- An
ID
entry. This will be used in the backend and in story files to refer to your card. It cannot contain special characters. Note: Make sure your ID is unique and doesn't conflict with existing cards. To ensure that your card IDs are unique, consider using a prefix related to your mod. - A
Name
entry. This is the card's display name that players will see, for example "Template's Insight" or "Wacky Gizmo". - A
Type
entry. Currently supports "memory" and "gear" types. Memory cards are used in challenges, while gear cards are the ones PC can equip for passive benefits. - A
Suit
entry. Valid suits are "physical", "mental", "social", "wild", or "none" (none used for gear cards). - A
Value
entry (number as string). The base value of the card. Leave empty ("") for gear cards. - A
Level
entry (number as string). Value from 1 to 4, might not have any gameplay effect, but is used for sorting on Gallery -> Cards window and in Shop menus. Higher levels are generally more powerful cards.
Ability Entries
Cards can have up to three abilities defined as Ability1
, Ability2
, and Ability3
. Each ability entry contains:
ID
- The ability identifier (see abilities reference)Value
- The numerical value for the ability (as a string)Suit
- The suit the ability applies to (if applicable)
Here are some of the ability IDs you can reference (suit means suit value from the ability, which can be empty and apply to all suits):
Positional Abilities:
plusNeighbors
- Add value to neighboring cards of specified suitplusLeft
/plusRight
- Add value to left/right card of specified suitifLeftSuit
/ifRightSuit
- Bonus if adjacent card is specified suit
Global Abilities:
plusAll
- Add value to all cards of specified suitplusFirst
/plusLast
- Add value to first/last card of specified suitsetAll
- Set all cards of specified suit to specific value
Gear-specific Abilities:
gearDraw
- Draw extra cards at battle startgearEmpathy
,gearPersuasion
- Provide skill bonuses outside challenges
For a complete list of available abilities, check the abilities reference file Exocolonist\Exocolonist_Data\StreamingAssets\Data\ExocolonistCards - abilities.tsv
.
Optional Entries
-
UpgradeFrom
entry. The ID of the card this upgrades from (for card progression chains, like cards you get from relationship progression with friend characters or cards you can upgrade in the garrison). -
HowGet
entry. Determines how the card is obtained:none
- Default value, used by the most cardsunique
- Special story/event cards, player can only have one copy, used by the cards from relationship progression, ultimate job events, etc.training
- Obtained through upgrading another card in the garrisontrainingBuy
- Can be purchased in the garrison (used in game for "Giggling", "Wondering" and "Crawling" cards)shopDefault
- Available in Supply DepotshopClothes
- Available in Supply Depot with the first perk from "Creativity" skillshopWeapons
- Available in Supply Depot with the first perk from "Combat" skillshopGadgets
- Available in Supply Depot with the second perk from "Engineering" skill
-
Kudos
entry (number as string). The cost in Kudos if this card can be purchased or upgraded in the garrison. -
ArtistName
entry. Credit for the card's artwork. -
ArtistSocialAt
entry. Social media handle for the artist. -
ArtistSocialLink
entry. Link to the artist's social media or other page.
Examples
Here are example card data files:
Memory Card Example (template2.json):
{
"ID": "template2",
"Name": "Template's Insight II",
"Type": "memory",
"Level": "2",
"Suit": "mental",
"Value": "6",
"Ability1": {
"ID": "plusNeighbors",
"Value": "3",
"Suit": "mental"
},
"Ability2": {
"ID": "",
"Value": "",
"Suit": ""
},
"Ability3": {
"ID": "",
"Value": "",
"Suit": ""
},
"UpgradeFrom": "template1",
"HowGet": "unique",
"ArtistName":"Poayo_",
"ArtistSocialAt":"",
"ArtistSocialLink":""
}
Gear Card Example (templategear.json):
{
"ID": "templategear",
"Name": "Template's Gizmo",
"Type": "gear",
"Level": "2",
"Suit": "none",
"Value": "",
"Ability1": {
"ID": "gearDraw",
"Value": "2",
"Suit": ""
},
"Ability2": {
"ID": "",
"Value": "",
"Suit": ""
},
"Ability3": {
"ID": "",
"Value": "",
"Suit": ""
},
"HowGet": "unique",
"ArtistName":"Poayo_",
"ArtistSocialAt":"",
"ArtistSocialLink":""
}
Adding Card Images
Each card requires a corresponding .png image file with the same name as the .json file. For example, if your card data file is named template2.json
, you need an image file named template2.png
in the same Cards folder.
The image will be displayed as the card's artwork in the game. Make sure your images are appropriately sized.
Important notes
- Make sure your JSON syntax is correct - missing commas or brackets will cause parsing errors
- Ensure your ability IDs are valid by checking the abilities reference