MT2 Keywords - Monster-Train-2-Modding-Group/Trainworks-Reloaded GitHub Wiki

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).
⚠️ **GitHub.com Fallback** ⚠️