Skip to content

Creating alternate entries

Jogla edited this page Oct 27, 2025 · 3 revisions

Note

Currently Fool's Gambit only supports alternating jokers, consumables, enhancements and seals. Alternating of other objects will be added in future updates.

To make your object work with Fool's Gambit, one has to create a fg_data table inside that object's config table:

config = {
  fg_data = {}
}

Inside that table, Fool's Gambit will recognize the following entries:

  • is_alternate - (boolean) Marks this card as an alternate. Adds a question mark on the top right corner of the card.
  • alternate_card - (string) The key to the card to create when this card is alternated. If absent, cards such as Tonal won't be usable when targeting this card.
  • vars - (table) Additional variables that will be kept when alternating this card. Do note that alternating a card will overwrite the original definition values with the new ones, including deleting missing keys.
  • crossover_label - (string) Adds an additional entry to the card's info queue displaying which mod is this card a crossover of. Usually this value should be Fool's Gambit, unless one is doing cross-mod content with a different mod and one wants to involve FG's systems in it.

Example usage (Oscillator (snippet)):

SMODS.Joker{
  key = 'oscillator',
  config = {
    -- Data FG will use to work with this card
    fg_data = {
      is_alternate = false,
      alternate_card = 'j_fg_oscillator_alt',
      -- Variables to be kept when alternating
      vars = {
        chips = 0,
        y_frame = 0,
      }
      -- Since this card doesn't belong to any kind of cross-mod content, it doesn't have `crossover_label`.
    }
  },
  -- etc
}

Clone this wiki locally