# What you supply. Everything else is derived from the card databases. # Deck name, used as the Forge [metadata] Name= value and to match "our seat" # in Forge's play-by-play logs. Deliberately distinct from the commander's own # card name (which also appears in the decklist) so log matching never # confuses "cast the commander" with "our player seat". name: "Reaper King No More" commander: "The Reaper, King No More" # Which cards decks may be built from. # Either a rank cap (popularity proxy) or an explicit curated file. pool: max_edhrec_rank: 1000 # ~451 cards in Jund. See howto.md "Choosing a pool size" # file: mypool.txt # ...or curate the list yourself min_mana_value: 0 max_mana_value: 7 # Cards you refuse to play, with reasons. See blacklist.txt. blacklist_file: blacklist.txt constraints: bracket: 3 # game changers <=3, no MLD, extra turns sparse no_vacuum_combos: true # house rule: no 2-card infinites needing no board state lands: 36 deck_size: 100 # How many of each job a deck should contain. The generator fills to these # targets and a variant is a deliberate deviation from them. # Roles are detected automatically from Scryfall Tagger tags. roles: minus_engine: 16 sac_outlet: 6 sac_payoff: 4 opp_death: 7 drain: 5 death_trigger: 8 ramp: 9 draw: 6 removal_mass: 3 removal_spot: 8 tokens: 2 proliferate: 2 reanimate: 1 tutor: 0 # Cards the generator may never cut -- your deck's identity. protected: - "Hapatra, Vizier of Poisons" - "Blowfly Infestation" - "Nest of Scarabs" - "Necroskitter" - "Yawgmoth, Thran Physician" - "Blood Artist" - "Zulaport Cutthroat" - "Viscera Seer" - "Carrion Feeder" # tools/generate.py's variant recipes -- role-budget reallocation hypotheses. variants_file: variants.yaml simulation: games_per_deck: 150 # 150 = +/-6.9pp. Below 100 is noise. See howto.md workers: 16 # ~1 core and ~1.5GB RAM each heap: 2g # per-worker JVM heap rotate_opponents: true # 4 precon pods, so results aren't matchup-specific