counterspell

joined 2 years ago
 

I noticed that Commander Legends: Battle for Baldur’s Gate was the last big release with a wide language range, and since then most sets have been printed in fewer languages. Does anyone know why Wizards started scaling back on localization after CLB?

 

For MTG (like everything else on the internet) it feels like the old forums are dead, replaced by a dozen different Discord servers where you’re lucky to get a rushed answer before your message gets swept away and forgotten. So what are good deckbuilding communities nowadays?

I’m currently building some nostalgia Commander decks based on decks I used to play when I started playing Magic.

Honestly, I’ve found better deckbuilding advice in old forum posts than on most Discords I’ve tried. Curious what places people use now for thoughtful feedback and discussion.

[–] counterspell@mtgzone.com 0 points 5 months ago* (last edited 5 months ago)
  • Commander with low power brackets, no tutors, no infinite combos, and mostly budget decks.
  • Cube Drafts.
  • Penny Dreadful on MTGO when I want structured but cheap play.
  • Playing precons against the computer using Forge — I download the precons from a block, then run them against each other using a bit of Python randomization:
import itertools, random

decks = ["Deck A", "Deck B"]
matchups = list(itertools.combinations(decks, 2))
random.shuffle(matchups)

for i, (deck1, deck2) in enumerate(matchups, 1):
    print(f"Match {i}: {deck1} vs {deck2}")
  • I've played a bunch of Draft and Standard on MTG Arena but I didn't enjoy it that much. It felt like a chore doing the dailies and just caring about getting the four wins per day.
[–] counterspell@mtgzone.com 0 points 6 months ago (1 children)

I really used to like classic cards like Serra Angel and Shivan Dragon and I don't know exactly when they became so bad, but I couldn't even consider playing them now in most formats.

I believe Throne of Eldraine in 2019 was the set where power creep started accelerating most.

 

If you enjoy playing alternative MTG formats like Penny Dreadful, Heirloom, Pauper, Tribal Apocalypse, or Pre‑modern on Magic: The Gathering Online, check out Gatherling. It’s built for player‑run tournaments and has impressive stats: over 74,000 unique decks and 218,000+ matches logged.

It features:

  • A full deck‑search function and meta overview.
  • Event listings for many niche formats.
  • Profiles, ratings, and participation history.
  • Direct login via Discord or local credentials.

Useful Discord communities for each format:

Some of these servers may be inactive, but they’re still worth checking out.

Related tools:

 

Hello,

I’ve built a set of Python scripts to create a custom Magic: The Gathering legality checker using Scryfall and Moxfield. It fetches a card pool, converts Moxfield CSVs to JSON, and validates decks against that pool.

Right now, I'd have to update the format manually every few months. I host my repo on Forgejo, but I’m not sure if it supports GitHub-style workflow automation.

What’s the best way to automate this update process? Should I use a cron job, or are there other alternatives I should consider for a Forgejo-hosted repo?

I don’t have much experience with CI/CD or scheduled automation, so any guidance or examples would be greatly appreciated.

Thanks!

1
submitted 6 months ago* (last edited 6 months ago) by counterspell@mtgzone.com to c/mtg@mtgzone.com
 

Hey everyone!

I just finished building a web tool to help validate Magic: The Gathering decklists in any custom format. It fetches card data from Scryfall, checks for banned or illegal cards, and gives instant feedback right in your browser.

It’s perfect for experimenting with niche formats, casual play, or even building decks for some existing formats like Standard Penny Dreadful, 2015 Modern, Classic Legacy, Pre Fire Modern, Pre Horizons Modern, Pre Modern. It can also integrate with Moxfield for deck building.

Check it out here: https://git.disroot.org/hirrolot19/mtg-legality-checker

I’d love to hear your thoughts, suggestions, or ideas for improving it. Hope it helps deckbuilders and casual players alike!

[–] counterspell@mtgzone.com 0 points 6 months ago* (last edited 6 months ago)

I exported the Standard Penny collection from Moxfield to JSON using a Python script:

import csv
import json

input_csv = 'moxfield_haves_2025-10-21-1123Z.csv'
output_json = 'standard_penny.json'

sets = set()
cards = []

with open(input_csv, newline='', encoding='utf-8') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        name = row.get('Name')
        edition = row.get('Edition')
        if name:
            cards.append(name)
        if edition:
            sets.add(edition.upper())

sets = sorted(list(sets))

output_data = {
    "sets": sets,
    "cards": cards
}

with open(output_json, 'w', encoding='utf-8') as jsonfile:
    json.dump(output_data, jsonfile, indent=2)

print(f"JSON saved to {output_json}")

I saved the JSON file as validator/formats/standardpenny.json and added it to the validator’s config:

{ "name": "Standard Penny", "key": "standardpenny", "datafile":"formats/standardpenny.json" },

Then I tried to validate this deck exported as Plain Text from Moxfield and got the error.

[–] counterspell@mtgzone.com 0 points 6 months ago (1 children)

When I try to validate a deck, I only see the message “Loading data, please wait…” and nothing happens. So I’m not sure if it’s a problem with my JSON export, the file path, or the validator itself.

[–] counterspell@mtgzone.com 0 points 6 months ago

No, it's just for reference.

 
 

Hi everyone, I’m trying to build decks for a custom format using this card pool (f:standard tix<=0.1 usd<=1). I have a deck here: deck link.

I know legality is ultimately whatever rules you define for a custom format, but I’m looking for a practical way to check a deck automatically against a specific pool, rather than checking each card one by one. For reference, Penny Dreadful has a deck legality checker. I’m wondering if there’s something similar for generic card pools, or if manual checking is the only option.

Is there an easy way to check if the deck is legal for this pool and identify any cards that aren’t allowed? Also, I’d love tips or strategies for making deckbuilding simple in a custom format like this. Thanks!

[–] counterspell@mtgzone.com 0 points 6 months ago* (last edited 6 months ago)

My first try was using this script:
Query Scryfall + dump card names out for easy import into Moxfield

❯ python scryfall_search.py -q "f:standard f:penny usd<=1" --output-as-file "$HOME/desktop/out.csv"
Running Scryfall search on f:standard f:penny usd<=1 legal:commander
Found 1,197 total matches!

But when I tried importing the output csv in Moxfield, I got a bunch of No card name found on line x errors.

[–] counterspell@mtgzone.com 0 points 6 months ago* (last edited 6 months ago)

Is there a deckbuilder that allows using just that list to build decks? How would I import it?

#!/bin/bash

url="https://api.scryfall.com/cards/search?q=f%3Astandard+f%3Apenny+usd<=1"
data=()

while [ -n "$url" ]; do
    response=$(curl -s "$url")
    data_chunk=$(echo "$response" | jq -c '.data[]')
    while read -r card; do
        data+=("$card")
    done <<< "$data_chunk"

    has_more=$(echo "$response" | jq -r '.has_more')
    if [ "$has_more" = "true" ]; then
        url=$(echo "$response" | jq -r '.next_page')
    else
        url=""
    fi
done

for card_json in "${data[@]}"; do
    echo "$card_json" | jq -r '.name'
done
 

I want to play a custom MTG format where the card pool is defined by a Scryfall search and updated twice a year. For example, my search might be f:standard f:penny usd<=1.

How can I export, share, and import the list of legal cards with other people so that we can all check card legality and use a deck builder with the same pool of cards?

 
 
view more: next ›