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 suit
  • plusLeft / plusRight - Add value to left/right card of specified suit
  • ifLeftSuit / ifRightSuit - Bonus if adjacent card is specified suit

Global Abilities:

  • plusAll - Add value to all cards of specified suit
  • plusFirst / plusLast - Add value to first/last card of specified suit
  • setAll - Set all cards of specified suit to specific value

Gear-specific Abilities:

  • gearDraw - Draw extra cards at battle start
  • gearEmpathy, 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 cards
    • unique - 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 garrison
    • trainingBuy - Can be purchased in the garrison (used in game for "Giggling", "Wondering" and "Crawling" cards)
    • shopDefault - Available in Supply Depot
    • shopClothes - Available in Supply Depot with the first perk from "Creativity" skill
    • shopWeapons - Available in Supply Depot with the first perk from "Combat" skill
    • shopGadgets - 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