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.

Modding Keyword Decision Tree

Before diving into making a keyword this decision tree will help you determine the best way to go about it, along with the relevant section to refer to.

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