Skip to content

Custom Monster Cards

Brandon edited this page May 29, 2026 · 28 revisions

For many of you, this is probably the exciting part. In fact, it may be so exciting that you skipped right over the previous tutorial about spell cards. Don't do that. Monster cards are actually just spell cards that summon monsters, and I'm not going to repeat things that were already covered there, so go back and read it over.

Once you've done that, you can move on to the next section.

Blue-Eyes White Dragon (Basic Banner Unit)

Overview

The first card we will create is a Banner unit. A true classic. Blue Eyes White Dragon. This will cover the basic skeleton of a Monster Card, and common things you must set for all monster cards as well as more on specific card pools for monster cards.

Download the card art here, then download the monster art here. They're both static images. Animated characters are much more complicated, so they're covered in their own dedicated tutorial.

Of course Blue Eyes will be placed in the Pyreborne clan and have the Dragon subtype.

Full JSON Definition

For monster cards we make a card with a singular effect to spawn a character. Then we define the character to spawn. As shown below.

{
  "$schema": "https://github.com/Monster-Train-2-Modding-Group/Trainworks-Reloaded/releases/latest/download/schema.json",
  "cards": [
    {
      "id": "BlueEyesCard",
      "cost": 3,
      "card_type": "monster",
      "rarity": "rare",
      "class": "ClassPyreborne",
      "pools": [
        "UnitsAllBanner",
        "UnitsPyreborneBanner"
      ],
      "card_art": "@BlueEyesCardArt",
      "effects": [
        "@SpawnBlueEyes"
      ]
    }
  ],
  "characters": [
    {
      "id": "BlueEyesCharacter",
      "names": {
        "english": "Blue Eyes White Dragon"
      },
      "character_art": "@BlueEyesCharacterArt",
      "size": 5,
      "attack_damage": 3000,
      "health": 2500,
      "subtypes": [
        "SubtypesData_Dragon",
        "SubtypesData_BannerUnit"
      ]
    }
  ],
  "effects": [
    {
      "id": "SpawnBlueEyes",
      "name": "CardEffectSpawnMonster",
      "param_character": "@BlueEyesCharacter"
    }
  ],
  "game_objects": [
    {
      "id": "BlueEyesCardArt",
      "type": "card_art",
      "extensions": {
        "card_art": {
          "sprite": "@BlueEyesCardSprite"
        }
      }
    },
    {
      "id": "BlueEyesCharacterArt",
      "type": "character_art",
      "extensions": {
        "character_art": {
          "sprite": "@BlueEyesCharacterSprite"
        }
      }
    }
  ],
  "sprites": [
    {
      "id": "BlueEyesCardSprite",
      "path": "textures/card_art/blueeyes.png"
    },
    {
      "id": "BlueEyesCharacterSprite",
      "path": "textures/character_art/blueeyes_character.png"
    }
  ]
}

Breaking Down the Card Fields

A few things to note.

  • card_type - We set this to monster, be sure to set this properly. The game uses this to define the look and feel of the card. If it were set to spell it would still work; however, the card would not have the attack, health, and capacity icons present on the bottom and top of the card.
  • names - Notice we don't set names in the card's definition. The name of a monster card will be fetched from the character spawned by the card so no need to set that here it will be ignored.
  • pools - We add this to two card pools:
    • UnitsAllBanner is the main pool containing ALL banner units. You should put your banner units in this pool, otherwise it will not be picked for the Unit Banner reward after the ring 3 major boss battle.
    • UnitsPyreborneBanner is the pool containing just Pyreborne's banner units. This pool is used for Pyreborne Banner map rewards.

Characters

A new top level section. characters specifies a list of characters we will define. Characters are any units you see in battle, your units, enemy units, even Flying Bosses, and the Titans all can be defined here, they are all the same type of data.

  "characters": [
    {
      "id": "BlueEyesCharacter",
      "names": {
        "english": "Blue Eyes White Dragon"
      },
      "character_art": "@BlueEyesCharacterArt",
      "size": 5,
      "attack_damage": 3000,
      "health": 2500,
      "subtypes": [
        "SubtypesData_Dragon",
        "SubtypesData_BannerUnit"
      ]
    }
  ],

We define one character with id BlueEyesCharacter we will use this in the effects section coming up shortly. We give this character a name which in english is Blue Eyes White Dragon, like with card names you can specify translations in the other langauges supported by Monster Train 2.

  • character_art - Just like with cards, characters also need a sprite, we define this later.
  • size - This is how much space the unit takes, this can be a number from 1 to 6, here this unit will take 5 capacity on the floor.
  • attack_damage - This is how much attack the character has, staying true to his homage its 3000.
  • health - The units HP. 2500.
  • subtypes - Important field this determines what subtypes the character has. To make a unit a banner unit the special hidden subtype SubtypesData_BannerUnit is used. We also want to make it the Dragon subtype so the subtype corresponding to that is SubtypesData_Dragon. The full list of subtypes is in the schema and will be present in autocomplete they are fairly intuitive what they are given the name.

Effects

  "effects": [
    {
      "id": "SpawnBlueEyes",
      "name": "CardEffectSpawnMonster",
      "param_character": "@BlueEyesCharacter"
    }
  ],

Here we show a new CardEffect type - CardEffectSpawnMonster. This card effect, you guessed it. Spawns a monster. All you need to tell it is which character to spawn, we specify the BlueEyesCharacter we just defined. Remember to reference it we need to prepend an '@' to its id. All monster cards will have an effect that spawns the character in.

GameObjects and Sprites

These sections will be simple since we are defining an non-animated sprite with just a static image.

Here is the game object definition. Just like with cards we specify we want a character art gameobject created for us. Be sure to set the type as character_art you can't reuse the card art GameObjects for character art as they have a different structure. You can reuse the card sprite for the character_art by setting sprite below to be the same sprite reference for the card art.

    {
      "id": "BlueEyesCharacterArt",
      "type": "character_art",
      "extensions": {
        "character_art": {
          "sprite": "@BlueEyesCharacterSprite"
        }
      }
    }
    {
      "id": "BlueEyesCharacterSprite",
      "path": "textures/character_art/blueeyes_character.png"
    }

Testing Your Card

Once your JSON is saved, rebuild your project and copy to the Bepinex/plugins folder.

If you check the logbook and search in Pyreborne you will see that the new card is in the logbook but hasn't been discovered yet. If you don't then check the following

  • All @ references match defined IDs
  • There are no trailing commas in your JSON
  • The sprite path is correct

Make sure that the BepinEx logs don't produce any warning or error text, If you have the console enabled simply checking for red/yellow text.

You can give yourself the card by using one of the console mods if you are using Patty's DevConsole mod you can use the command card BlueEyesCard during a run to get the card for testing.

Dragon Costume (Character Triggers / Non Banner Unit / Custom Subtypes)

Overview

This character is a dragon costume. When any unit dies, it puts on a new costume (graphical effect not included), gaining damage shield. If you remember from the last tutorial, Cards can have triggers; now we show that Characters can have triggers too!

We will also show the setup and conventions for a Non Banner Unit and give this unit a Custom Subtype of Costume!

Download the card art here and the character art here.

Full JSON Definition

You'll find that it is very similar to Blue Eyes White Dragon, but note the addition of triggers.

{
  "$schema": "https://github.com/Monster-Train-2-Modding-Group/Trainworks-Reloaded/releases/latest/download/schema.json",
  "cards": [
    {
      "id": "DragonCostumeCard",
      "cost": 2,
      "card_type": "monster",
      "rarity": "uncommon",
      "class": "ClassPyreborne",
      "pools": [
        "MegaPool"
      ],
      "card_art": "@DragonCostumeCardArt",
      "effects": [
        "@SpawnDragonCostume"
      ]
    }
  ],
  "characters": [
    {
      "id": "DragonCostumeCharacter",
      "names": {
        "english": "Dragon Costume"
      },
      "character_art": "@DragonCostumeCharacterArt",
      "size": 2,
      "attack_damage": 20,
      "health": 5,
      "subtypes": [
        "SubtypesData_Dragon",
        "@Subtype_Costume"
      ],
      "triggers": ["@DragonCostumeHarvest"]
    }
  ],
  "character_triggers": [
    {
      "id": "DragonCostumeHarvest",
      "trigger": "on_any_unit_death_on_floor",
      "descriptions": {
        "english": "Gain <nobr>[damageshield] [effect0.status0.power]</nobr>"
      },
      "effects": ["@DragonCostumeGainDamageShield"]
    }
  ],
  "effects": [
    {
      "id": "SpawnDragonCostume",
      "name": "CardEffectSpawnMonster",
      "param_character": "@DragonCostumeCharacter"
    },
    {
      "id": "@DragonCostumeGainDamageShield",
      "name": "CardEffectAddStatusEffect",
      "target_mode": "self",
      "param_status_effects": [
        {
          "status":"damage shield",
          "count": 1
        }
      ]
    }
  ],
  "subtypes": [
    {
      "id": "Subtype_Costume",
      "names": {
        "english": "Costume"
      }
    }
  ],
  "game_objects": [
    {
      "id": "DragonCostumeCardArt",
      "type": "card_art",
      "extensions": {
        "card_art": {
          "sprite": "@DragonCostumeCardSprite"
        }
      }
    },
    {
      "id": "DragonCostumeCharacterArt",
      "type": "character_art",
      "extensions": {
        "character_art": {
          "sprite": "@DragonCostumeCharacterSprite"
        }
      }
    }
  ],
  "sprites": [
    {
      "id": "DragonCostumeCardSprite",
      "path": "textures/card_art/DragonCostume.png"
    },
    {
      "id": "DragonCostumeCharacterSprite",
      "path": "textures/character_art/DragonCostume.png"
    }
  ]
}

We'll only go over differences.

Characters

"triggers": ["@DragonCostumeHarvest"] - Here we set the triggers on the character to be the one we define below. DragonCostumeHarvest "subtypes": ["SubtypesData_Dragon", "@Subtype_Costume"] - Here we use our custom subtype we define later.

Subtypes

Subtypes are easier to explain, its just an ID along with the localized names for the subtype

  "subtypes": [
    {
      "id": "Subtype_Costume",
      "names": {
        "english": "Costume"
      }
    }
  ]

Here we define a subtype "Subtype_Costume" which we refer to it when using with "@Subtype_Costume". In game it will show "Costume" at the subtype section of the card.

Character Triggers

A new top level section, character_triggers defines all of the CharacterTriggers we will use on characters we define.

  "character_triggers": [
    {
      "id": "DragonCostumeHarvest",
      "trigger": "on_any_unit_death_on_floor",
      "descriptions": {
        "english": "Gain <nobr>[damageshield] [effect0.status0.power]</nobr>"
      },
      "effects": ["@DragonCostumeGainDamageShield"]
    }
  ],
  • *id* - As with other things we assign an id to our CharacterTrigger which is referenced in the character.
  • *trigger* - This determines the trigger type, the internal trigger name for Harvest is on_any_unit_death_on_floor. For a full list of internal -> in game name see Character Trigger Reference
  • *descriptions* - Triggers also have descriptions, they add themselves to the card's text. The tags prevent the text from being split onto a new line.
  • *effects* - Much like Card Triggers triggers also have a list of effects to play when the trigger fires.

Testing the card.

Testing this is the same as Blue Eyes just give yourself the card during battle and play it. Notice that it has the purple Harvest trigger, test it out by playing a card that kills a unit and watch it gain Damage Shield.

Also notice that on its card it also has the Costume subtype!.

Frost Fury (RoomModifiers)

Overview

This character introduces Room Modifiers — effects that apply to the room a character occupies for as long as that character remains there.

A good example from the base game is Deranged Brute (rage damage modification). Any unit with the yellow star icon has a Room Modifier.

Download the card art here and the character art here.

Full JSON Definition

This definition is very similar to the earlier Blue Eyes White Dragon example. The main difference is the addition of a room_modifiers section and the reference to that modifier on the character itself.

{
  "$schema": "https://github.com/Monster-Train-2-Modding-Group/Trainworks-Reloaded/releases/latest/download/schema.json",
  "cards": [
    {
      "id": "FrostFuryCard",
      "cost": 2,
      "card_type": "monster",
      "rarity": "uncommon",
      "class": "ClassStygian",
      "pools": [
        "UnitsStygianBanner",
        "UnitsAllBanner"
      ],
      "card_art": "@FrostFuryCardArt",
      "effects": [
        "@SpawnFrostFury"
      ]
    }
  ],
  "characters": [
    {
      "id": "FrostFuryCharacter",
      "names": {
        "english": "Frost Fury"
      },
      "character_art": "@FrostFuryCharacterArt",
      "size": 2,
      "attack_damage": 20,
      "health": 20,
      "subtypes": ["SubtypesData_BannerUnit"],
      "room_modifiers": ["@FrostFuryBonusFrostbite"]
    }
  ],
  "room_modifiers": [
    {
      "id": "FrostFuryBonusFrostbite",
      "name": "RoomStateAddStatusEffectOnStatusApplied",
      "titles": {
        "english": "Frosty"
      },
      "descriptions": {
        "english": "Apply +[power] stack of [frostbite] each time it is applied."
      },
      "param_int": 1,
      "param_status_effects": [
        {
          "status": "poison",
          "count": 0
        }
      ]
    }
  ],
  "effects": [
    {
      "id": "SpawnFrostFury",
      "name": "CardEffectSpawnMonster",
      "param_character": "@FrostFuryCharacter"
    }
  ],
  "game_objects": [
    {
      "id": "FrostFuryCardArt",
      "type": "card_art",
      "extensions": {
        "card_art": {
          "sprite": "@FrostFuryCardSprite"
        }
      }
    },
    {
      "id": "FrostFuryCharacterArt",
      "type": "character_art",
      "extensions": {
        "character_art": {
          "sprite": "@FrostFuryCharacterSprite"
        }
      }
    }
  ],
  "sprites": [
    {
      "id": "FrostFuryCardSprite",
      "path": "textures/card_art/FrostFury.png"
    },
    {
      "id": "FrostFuryCharacterSprite",
      "path": "textures/character_art/FrostFury.png"
    }
  ]
}

Characters

The important addition is:

"room_modifiers": ["@FrostFuryBonusFrostbite"]

This attaches the FrostFuryBonusFrostbite Room Modifier that we define in the file to the character. While this unit is in a room, the modifier becomes active and affects everything in that room according to its behavior.

Room Modifiers

The room_modifiers section defines all Room Modifiers used by your characters.

Unlike character_triggers, Room Modifiers are separate reusable objects with their own tooltip text, parameters, and behavior definitions.

    "room_modifiers": [
    {
      "id": "FrostFuryBonusFrostbite",
      "name": "RoomStateAddStatusEffectOnStatusApplied",
      "titles": {
        "english": "Frosty"
      },
      "descriptions": {
        "english": "Apply +[power] stack of [frostbite] each time it is applied."
      },
      "param_int": 1,
      "param_status_effects": [
        {
          "status": "poison",
          "count": 0
        }
      ]
    }
  ]
  
  • *id* - As with other things we assign an id to our RoomModifier which is referenced in the character.
  • *name* - Like the same parameter for card effects, this is an important parameter that specifies which Room Modifier class to use which defines the Room Modifier's behavior.
  • *titles* - This sets the tooltip title for the Room Modifier. If you forget to set this each Room Modifier has a default title.
  • *descriptions* - RoomModifiers also have descriptions, they add themselves to the card's text. Here, [power] is another special substitution text will resolve to the value in param_int Remember not to hardcode it!
  • *param_int* - This is a parameter used by RoomStateAddStatusEffectOnStatusApplied In this instance it specifies the amount of additional frostbite to apply when frostbite is applied.
  • *param_status_effects* - Another parameter used by RoomStateAddStatusEffectOnStatusApplied. In this instance it specifies which status effects the room modifier looks for to apply additional stacks of said status effect.

Testing the card.

Testing this card is the same process used in the Blue Eyes White Dragon example:

  1. Give yourself the card during a battle.
  2. Play the unit into a room.
  3. Notice the yellow star icon, which indicates an active Room Modifier.
  4. Apply Frostbite using a spell or another unit effect.
  5. Observe that additional Frostbite stacks are added automatically.

Demonic Screecher (Abilities / Status Effects)

Overview

This character introduces Abilities. Abilities are relatively easy to add to characters because they are essentially spell cards attached to a unit.

In this section, we will create an ability card, attach it to a character, configure its cooldown, and add starting status effects to make the unit more interesting.

Download the card art here and the character art here.

Full JSON Definition

At this point, this structure should be familiar. The main addition is the second card definition, which is configured as the unit’s ability.

{
  "$schema": "https://github.com/Monster-Train-2-Modding-Group/Trainworks-Reloaded/releases/latest/download/schema.json",
  "cards": [
    {
      "id": "DemonicScreecherUnit",
      "card_art": "@DemonicScreecherUnitCardArt",
      "cost": 2,
      "card_type": "monster",
      "rarity": "rare",
      "class": "ClassHellhorned",
      "targets_room": true,
      "targetless": false,
      "pools": [ "UnitsAllBanner", "UnitsHellhornedBanner" ],
      "effects": [ "@SpawnDemonicScreecherUnit" ]
    },
    {
      "id": "ScreechAbility",
      "names": {
        "english": "Screeeeeech!"
      },
      "descriptions": {
        "english": "Apply [meleeweakness] [effect0.status0.power] to enemy units. Starts on cooldown 1."
      },
      "is_an_ability": true,
      "cooldown": 3,
      "initial_cooldown": 1,
      "targetless": true,
      "targets_room": false,
      "card_type": "spell",
      "effects": [ "@DemonicScreecherAbilityApplyMeleeWeakness" ]
    }
  ],
  "characters": [
    {
      "id": "DemonicScreecherUnitCharacter",
      "names": {
        "english": "Demonic Screecher"
      },
      "character_art": "@DemonicScreecherUnitCharacterArt",
      "size": 2,
      "health": 5,
      "attack_damage": 15,
      "ability": "@ScreechAbility",
      "starting_status_effects": [
        {
          "status": "armor",
          "count": 20
        },
        {
          "status": "buff",
          "count": 15
        }
      ],
      "subtypes": [ "SubtypesData_BannerUnit"]
    }
  ],
  "effects": [
    {
      "id": "SpawnDemonicScreecherUnit",
      "name": "CardEffectSpawnMonster",
      "target_mode": "room",
      "param_character": "@DemonicScreecherUnitCharacter"
    },
    {
      "id": "DemonicScreecherAbilityApplyMeleeWeakness",
      "name": "CardEffectAddStatusEffect",
      "target_mode": "room",
      "target_team": "heroes",
      "param_status_effects": [
        {
          "status": "melee weakness",
          "count": 3
        }
      ]
    }
  ],
  "game_objects": [
    {
      "id": "DemonicScreecherUnitCardArt",
      "type": "card_art",
      "extensions": {
        "card_art": {
          "sprite": "@DemonicScreecherUnitCardSprite"
        }
      }
    },
    {
      "id": "DemonicScreecherUnitCharacterArt",
      "type": "character_art",
      "extensions": {
        "character_art": {
          "sprite": "@DemonicScreecherUnitCharacterSprite"
        }
      }
    }
  ],
  "sprites": [
    {
      "id": "DemonicScreecherUnitCardSprite",
      "path": "textures/card_art/DemonicScreecherUnit.png"
    },
    {
      "id": "DemonicScreecherUnitCharacterSprite",
      "path": "textures/character_art/DemonicScreecherUnit.png"
    }
  ]
}

Characters

The important addition is:

      "ability": "@ScreechAbility",
      "starting_status_effects": [
        {
          "status": "armor",
          "count": 20
        },
        {
          "status": "buff",
          "count": 15
        }
      ],
  • ability - Sets the character’s ability. This must reference a card that is configured as a unit ability. You cannot use just any card here; the referenced card must have is_an_ability set to true.

  • starting_status_effects - Gives the character status effects when it enters battle. In this example, Demonic Screecher starts with Armor and Rage.

Cards

The main addition is the ability card. This should look familiar by now, so we will focus on the new properties.

    {
      "id": "ScreechAbility",
      "names": {
        "english": "Screeeeeech!"
      },
      "descriptions": {
        "english": "Apply [meleeweakness] [effect0.status0.power] to enemy units. Starts on cooldown 1."
      },
      "is_an_ability": true,
      "cooldown": 3,
      "initial_cooldown": 1,
      "targetless": true,
      "targets_room": false,
      "card_type": "spell",
      "effects": [ "@DemonicScreecherAbilityApplyMeleeWeakness" ]
    }
  • is_an_ability - Marks this card as a unit ability. There are also room abilities, which use the separate is_room_ability flag.
  • cooldown - Sets the cooldown after the ability is used.
  • initial_cooldown - Sets the cooldown the ability starts with after the unit is spawned.

Testing the card.

  • Give yourself the card during a battle.
  • Play the unit into a room.
  • Notice that the unit has an ability and that it starts on cooldown.
  • Wait one turn, then try activating the ability.

Mr. Fleshy (Conditional Triggers / Unit Spawners)

Overview

This character introduces Conditional Triggers. Certain Triggers allow to trigger only when a specific conditions have been met.

In this section we will make a character with a conditional Revenge trigger as well as make a unit that spawns another unit.

Download the card art here and the character art here.

Full JSON Definition

{
  "$schema": "https://github.com/Monster-Train-2-Modding-Group/Trainworks-Reloaded/releases/latest/download/schema.json",
  "cards": [
    {
      "id": "MrFleshyUnit",
      "card_art": "@MrFleshyUnitCardArt",
      "cost": 1,
      "card_type": "monster",
      "rarity": "rare",
      "class": "ClassLazarusLeague",
      "targets_room": true,
      "targetless": false,
      "pools": [ "UnitsAllBanner", "UnitsLazarusLeagueBanner" ],
      "effects": [ "@SpawnMrFleshyUnit" ]
    }
  ],
  "characters": [
    {
      "id": "MrFleshyUnitCharacter",
      "names": {
        "english": "Mr. Fleshy"
      },
      "character_art": "@MrFleshyUnitCharacterArt",
      "size": 2,
      "health": 25,
      "attack_damage": 25,
      "triggers": ["@MrFleshyConditionalRevenge"],
      "subtypes": [ "SubtypesData_BannerUnit"]
    }
  ],
  "character_triggers": [
    {
      "id": "MrFleshyConditionalRevenge",
      "trigger": "on_hit",
      "trigger_at_threshold": 20,
      "descriptions": {
        "english": "If damage taken is at least 20, spawn a basic Mr. Fleshy with [effect0.upgrade.bonushp][health]."
      },
      "effects": ["@SpawnBasicMrFleshy"]
    }
  ],
  "effects": [
    {
      "id": "SpawnMrFleshyUnit",
      "name": "CardEffectSpawnMonster",
      "target_mode": "room",
      "param_character": "@MrFleshyUnitCharacter"
    },
    {
      "id": "SpawnBasicMrFleshy",
      "name": "CardEffectSpawnMonster",
      "target_mode": "room",
      "param_character": "@MrFleshyUnitCharacter",
      "param_upgrade": "@Minus15Health",
      "param_bool": true
    }
  ],
  "upgrades": [
    {
      "id": "Minus15Health",
      "bonus_hp": -15
    }
  ],
  "game_objects": [
    {
      "id": "MrFleshyUnitCardArt",
      "type": "card_art",
      "extensions": {
        "card_art": {
          "sprite": "@MrFleshyUnitCardSprite"
        }
      }
    },
    {
      "id": "MrFleshyUnitCharacterArt",
      "type": "character_art",
      "extensions": {
        "character_art": {
          "sprite": "@MrFleshyUnitCharacterSprite"
        }
      }
    }
  ],
  "sprites": [
    {
      "id": "MrFleshyUnitCardSprite",
      "path": "textures/card_art/MrFleshyUnit.png"
    },
    {
      "id": "MrFleshyUnitCharacterSprite",
      "path": "textures/character_art/MrFleshyUnit.png"
    }
  ]
}

Character Triggers

The important addition is:

  "character_triggers": [
    {
      "id": "MrFleshyConditionalRevenge",
      "trigger": "on_hit",
      "trigger_at_threshold": 20,
      "descriptions": {
        "english": "If damage taken is at least 20, spawn a basic Mr. Fleshy with [effect0.upgrade.bonushp][health]."
      },
      "effects": ["@SpawnBasicMrFleshy"]
    }
  ],
  • trigger_at_threshold - A new property, the purpose of this field changes depending on the trigger. For Revenge specifically, the value here will be compared with the damage taken by the unit, if the damage taken is more than this value then the trigger is allowed to fire.

  • descriptions - Just making a call out to mention that it is ok to hardcode the 20 here since there is no substitution for trigger_at_threshold.

Effects

Here is something new. To spawn a unit you, of course, use CardEffectSpawnMonster. You'll notice that it is similiar to the effect to spawn in our monster.

    {
      "id": "SpawnBasicMrFleshy",
      "name": "CardEffectSpawnMonster",
      "target_mode": "room",
      "param_character": "@MrFleshyUnitCharacter",
      "param_upgrade": "@Minus15Health",
      "param_bool": true
    }
  • param_upgrade - We can specify a card upgrade to apply when the monster is spawn.
  • param_bool - This flag controls whether to pass down stat changes present on the card to the spawned unit. If we did not set this then the Mr. Fleshy spawned would be exactly the same as the one spawned from the card.

This just shows the versality of CardEffectSpawnMonster! To see all of the possible parameters you can set with this effect see the Effect Reference entry for it

Testing the card.

  • Give yourself the card during a battle.
  • Play the unit into a room.
  • Play a spell to damage the unit with at least 20 damage, or have an enemy with 20 or more attack to hit the unit.
  • When the Revenge trigger fires a new Mr. Fleshy is spawned with just 10 health.

Clone this wiki locally