Skip to content
Brandon edited this page Jun 10, 2026 · 2 revisions

Short aside about this games Keyword System. Not all keywords are created equally, and not all keywords are associated with code. Before diving into making a keyword this design tree will help you determine the best way to go about it.

Modding Keyword Decision Tree

Use this guide to determine exactly what kind of custom element you need to create for your mod based on the keyword's intended behavior.

1. Is this keyword a status effect?


2. Is this keyword a Trigger?

  • YES ➔ Is the keyword present on a character?

3. Is this keyword expected to be available on any card to modify its behavior?

(Example: via a shop upgrade)

  • YES ➔ Create a CardTrait. See: Custom Card Traits

    Implementation Details:

    • Look at Piercing or CardTraitIgnoreArmor as examples.
    • Override one or more of the following to provide localized text: GetCardText, GetCardTooltipTitle, or GetCardTooltipText (which defaults to calling GetCardText).
    • Provide a localization key, then translate it within those functions.
    • GetCardText and GetCardTooltipTitle should return bolded text. Use LocalizeTraitKey or surround the text in HTML bold tags: <b>text</b>.
    • See CardTraitPersistent for reference.

4. Is this keyword restricted to certain cards, and/or represents a specific effect?

A. Should the keyword appear on top of the card?

  • YES ➔ Create a Custom Card Effect. See: Custom Card Effects

    Implementation Details:

    • Look at CardEffectSacrifice (a trait-like effect keyword) as an example.
    • Override GetDescriptionAsTrait, which returns the localization for the text that adds itself to the card. (You must specify localizations for this key).
    • Additionally, implement ICardEffectStatuslessTooltip and implement GetTooltipBaseKey to return a base localization key.

B. Is the effect expressed in terms of an already existing card effect?

  • YES ➔ Simply make up a keyword in the card's description.
    • Example: See any card with Cultivate.
    • Use AdditionalTooltips on the card effect to explain it. This type of keyword does not require any new code.
  • NO ➔ Create a Custom Card Effect. See: Custom Card Effects
    • Implement the custom logic to perform the effect.
    • Override the relevant function to have it display a tooltip when a card possesses it (see Propagate for reference).

Clone this wiki locally