← Back to editor

Guide

The Modder's Manual

Everything the editor does, explained in plain language. New here? Read Quick Start, then come back to the rest when you need it. You can also replay the interactive walkthrough any time with the ? Tour button in the editor's top bar.

Quick Start

This tool builds a playable custom character for Slay the Spire 2 — their card pool, relics, custom statuses, and art — and compiles it into a mod you drop into the game. No coding required. Your work auto-saves to your browser as you go.

The flow, in 8 steps

  1. Character tab — name, HP, gold, energy per turn, and the character color (it tints every card frame in game).
  2. Cards — build your pool. Click a card in the sidebar to edit it; add effect blocks to define what it does.
  3. Upgrades — for each card, decide what its + version does at rest sites.
  4. Token cards — cards created mid-combat (like Shivs). Create these before referencing them from effects.
  5. Mechanics — your own buffs/debuffs (custom statuses). Same rule: create first, reference after.
  6. Relics — passive items with a trigger and effects. You need at least one.
  7. Balance — optional sanity check of your numbers.
  8. Export — fix any pre-flight issues, then Compile & Download and install (see Export & Install).

Minimum requirements

A mod must have at least 10 cards and 1 relic before the export buttons unlock. A new project starts with Strike, Defend, and 8 blank “New Card” placeholders — replace the placeholders with real cards.

AI generation vs. building by hand

The ✦ Generate tab can create an entire character — concept, cards, mechanics, and art — from a short description, which you then refine by hand. Or skip it entirely and build everything yourself. Both paths end at the same Export tab.

Cards

Types, rarities, targeting

  • Attackdeals damage; red frame. Most damage effects live here.
  • Skilleverything that isn't an attack or a power — Block, draw, debuffs; blue frame.
  • Powera permanent effect for the rest of the combat; green frame. Power cards can use start-of-turn / end-of-turn timing on their effects.

Rarity controls how often a card shows up in rewards: Basic (starter deck only, never in rewards), Common, Uncommon, Rare, and Ancient — see the rarity rules before using Ancient.

Target decides who the card hits: Self, AnyEnemy (player picks one), AllEnemies, RandomEnemy, AnyAlly, or AllAllies (ally targets matter in co-op).

Effect blocks

A card is a stack of effect blocks, executed top to bottom when the card is played. Each block becomes real game code on export. The picker groups them by category:

  • Damagesingle hits, multi-hits, hit-all, random target, scaling damage.
  • Defensegain Block, heal, lose HP (for high-risk designs).
  • Powerapply buffs/debuffs — vanilla ones like Strength, Weak, Poison, or your own custom statuses.
  • Carddraw, discard, exhaust, upgrade cards mid-combat, and add token cards to hand / discard / draw pile.
  • Utilityenergy, gold, max HP, stances, Mantra, and other odds and ends.
  • Orbchannel and evoke orbs (give your character orb slots in the Character tab first).

Conditions

Every effect block has a condition dropdown, defaulting to “Always (no condition)”. Pick a condition and the effect only fires when it's true — e.g. target has Poison, player HP below N, last card played was an Attack, in Wrath stance, enemy intends to attack. Some conditions take a number or a custom status to check for. This is how you build “deal 7 damage; deal 14 instead if...” style cards: one unconditional block plus one conditional block.

X-cost and other advanced options

  • X-Costthe card costs all your remaining energy and its effects scale with the amount spent (like Whirlwind).
  • Playability conditionthe card can only be played while a requirement holds — hand is all Attacks (Clash), exhaust pile is large enough, or no cards discarded this turn.
  • Self-scalingthe card permanently grows (+N damage or Block) every time you play it — the Rampage pattern.

Keywords

  • Exhaustthe card is removed for the rest of combat after being played once.
  • Etherealif it's still in your hand at end of turn, it exhausts.
  • Innatealways in your opening hand.
  • Retainnot discarded at end of turn.
Sly and Eternal appear in the keyword list but are not yet wired into the generated mod code — selecting them currently has no effect in game. Stick to the four keywords above.

Card text

You never have to write card text: the description is auto-generated from your effect blocks (shown in italics under the effects list and on the card preview). If the auto text reads awkwardly — long conditional chains are the usual culprit — type your own in Description Override. Numbers in an override are up to you to keep in sync with the actual effect values.

Upgrades

At rest sites the player can upgrade a card once, turning it into its + version. The Upgrade section on each card decides what that means:

  • Cost Reductionthe + version costs this much less energy (a 1-cost card with reduction 1 becomes free).
  • +Damage / +Block / +Heal / +Draw / +Energy on Upgradeone input appears per stat the card actually uses; the + version adds that amount. Two damage effects on one card share a single damage value, so one input upgrades both.
  • +Stacks on Upgradefor cards applying vanilla statuses (Strength, Weak, Poison...), the + version applies this many more stacks.
  • Remove Exhaust on Upgradethe + version no longer exhausts (shown only on Exhaust cards).
  • Add Retain on Upgradethe + version gains Retain.
Custom status stacks can't be upgraded yet — only vanilla statuses and the numeric stats above. Leave everything at 0 and the upgrade does nothing, which players will notice; give every card some upgrade.

Token Cards & Custom Statuses

Token cards

A token card is a card that other cards create during combat — think Shivs. Tokens never appear in card rewards or shops; they only exist when an effect puts them in your hand, discard, or draw pile. Create them under Token Cards in the sidebar; they get the same editor as normal cards (effects, keywords, art, upgrades).

Custom statuses (Mechanics tab)

A custom status is your own buff or debuff — a named icon with stacks that does something on a trigger (after a card is played, when damage is taken, at turn end...). Define them in the Mechanics tab, then apply them from cards or relics with the “apply custom status” effect.

Create first, reference second. The effect dropdowns only list token cards and statuses that already exist — this ordering is the single most common point of confusion. And if you delete a token or status that an effect still points at, the Export tab's pre-flight check flags it as an error and blocks compiling until you fix or remove the effect.

Relics

A relic is a passive item: pick one trigger, attach effect blocks, and the effects fire every time the trigger happens. Rarity (Starter, Common, Uncommon, Rare, Shop, Event) controls how the relic is found in a run. Your character begins every run with the Starter relic; if your configured starting relic is ever deleted, the first relic in your list is used instead.

Triggers

TriggerFires
onPickuponce, the moment the player obtains the relic.
combatStartat the start of every combat (the classic starter-relic trigger).
combatEndwhen a combat is won.
turnStartat the start of each of your turns.
turnEndat the end of each of your turns.
onCardPlayevery time you play a card (powerful — keep the effect small).
onDamageDealtwhenever you deal damage to an enemy.
onDamageTakenwhenever you take damage.
onBlockwhenever you gain Block.
onHealwhenever you heal.
onRestwhen you rest at a campfire.

Images

You can upload your own art anywhere the editor offers it, or let the AI art generator fill the gaps. Uploads are automatically resized to the target dimensions, so close-enough source images are fine — but the aspect ratio should match or things get cropped.

AssetSizeTransparencyWhere it shows up
Card art500 × 375 PNG/JPGnothe picture in the top half of each card.
Relic icon256 × 256 PNGsupportedrelic bar at the top of the screen, reward and shop screens.
Status (mechanic) icon256 × 256 PNGsupportedthe buff/debuff icon row under a creature.
Character portrait256 × 256 PNG/JPGnocharacter select screen and run UI.
Combat sprite512 × 512 PNGrequiredyour character standing in combat.
Pose images (5)512 × 512 PNGrequiredidle / attack / cast / hit / dead poses, for the basic animation mode.
Spritesheetsany size, 1–60 framesrequiredfull animation mode; one sheet per pose plus a frame count, played at 1–30 FPS.
JPG warning: JPG files have no transparency — a combat sprite or icon uploaded as JPG gets a solid background box around it in game. Everything is re-encoded as PNG when the mod is built, but that can't invent transparency that the source image never had. For sprites, poses, and icons, always start from a transparent PNG.

Shop & Rarity Rules

The Rare-card minimum

The in-game merchant stocks five cards from your pool, typed Attack / Attack / Skill / Skill / Power, and each slot can roll Rare. If a slot rolls Rare and your pool has no matching Rare card of that type, entering the shop crashes the run. A crash-proof pool therefore needs at least:

Card typeRare cards needed
Attack2
Skill2
Power1

The pre-flight check warns you when you're short, and the compiler auto-fills the gap with generic filler cards (Honed Edge, Reckless Cleave, Bulwark, Second Wind, Inner Fire) so your mod never bricks a run — but filler is boring. Replace it with your own Rare cards.

Ancient cards

Ancient rarity currently has no acquisition path. In the base game, Ancient cards are granted by special Ancient encounters, and the mod creator does not yet generate those — an Ancient card in your pool will not appear in rewards, shops, or anywhere else in a run. Use Rare instead until this is supported.

Export & Install

Three different downloads

  • Export .jsonyour project file — a save you can back up, share, or re-import later. Not a mod. Your browser also auto-saves, but a .json export survives cleared browser data.
  • Download C# Sourcethe generated code as one combined .cs file, for the curious or for compiling by hand. Most people don't need it.
  • Compile & Download .zipthe real thing: sends your project to the compile service and returns a ready-to-install mod.

Pre-flight checks

Above the export buttons, the Export tab lists everything that would break or degrade your mod before any compiling happens: empty or non-English names, effects pointing at deleted statuses or token cards, a missing starting relic, and the Rare-card shop minimums. Red errors block compiling until fixed; gold warnings are handled automatically but worth reading.

Installing the mod

  1. Extract the downloaded .zip — it contains two folders: your mod and BaseLib.
  2. Copy both folders into your STS2 mods directory:
    Windows: Steam\steamapps\common\Slay the Spire 2\mods\
    Mac: ~/Library/Application Support/Steam/steamapps/common/Slay the Spire 2/mods/
  3. Launch STS2, open Mods in the main menu, enable both BaseLib and your mod, then restart the game.
  4. Your character appears on the character select screen.

BaseLib is required. It's the modding library your mod is built on; without it enabled, your mod won't load. If BaseLib is already installed from another mod, you can skip copying that folder.

If the compile fails

The Export tab translates compiler errors into plain language and names the card or relic responsible. The usual suspects:

ErrorWhat it means
CS0101two items produce the same internal name — rename one of them.
CS0246an effect references a custom status or token card that was deleted — re-link or remove the effect.
CS1002 / CS1513a name or description contains characters that broke the generated code — usually quotes or unusual symbols.
CS1503 / CS1061a bug in the mod creator itself; it is reported automatically — try removing the most recently added effect.