Skip to main content

Demilich, the MTG skeleton wizard

Project description

Demilich - the MTG skeleton wizard

A tool for quickly scaffolding a custom MTG set.

For designers of custom Magic: the Gathering sets, the designers of canon Magic suggest starting from a design skeleton. This is a set of "slots" which have some standard creatures, keywords, and spells to make the limited game work, at least at a base level. I've found that the act of mechanically filling out a design skeleton (15 commons per color, 14 uncommons per color, plus artifacts and signposts) is draining. In fact, I've never successfully completed a design skeleton by hand.

Enter demilich. Demilich encodes the suggested distributions of things and generates a randomized set of initial slots. This takes the drudgery and thinking out of the process and makes it a simple, mechanical starting point. From there, you can start assigning your own mechanics and creative to your new set!

Installation

The fastest way to simply generate a basic skeleton is to run demilich using pipx.

  1. Install pipx
  2. Run demilich: pipx run demilich play-booster > skeleton.csv

If you intend to use more of its features (like generating a skeleton programmatically), you can also install the package.

# first make a virtualenv however you normally do
% python -m venv env
% . env/bin/activate
# then install demilich
% pip install demilich

Basic use

% demilich play-booster > skeleton.csv

Then open skeleton.csv in the editor of your choice.

Custom skeleton

You can use demilich with your custom skeleton definition. I recommend you copy pb2024.toml to use as a starting point. Once you have your my-custom-skeleton.toml ready to go, run:

% demilich custom-skeleton my-custom-skeleton.toml

Output formats

By default, demilich generates a CSV. You can ask for a pretty-printed table instead with the --format option.

% demilich play-booster --format=table
# or
% demilich custom-skeleton my-custom-skeleton.toml --format=table

Suppressing or including big columns

CSV mode includes all columns by default.

Table mode suppresses the "instruction" column by default. You can bring it back with --include-instruction. (You'll want a pretty wide terminal for this to make sense.)

% demilich play-booster --format=table --include-instruction

You can additionally suppress card text with --no-include-text:

% demilich play-booster --format=table --no-include-text

Programmatically building a skeleton

The API for SkeletonGenerator is documented in docstrings so you can generate skeletons programmatically. See the examples in examples/ for ideas on how to do it.

Each SkeletonGenerator is only responsible for a single section of a full skeleton. It keeps a fixed rarity and frame code, which simplifies the implementation quite a bit. If you need something much fancier, like redistribution keywords that didn't make it into one rarity into another rarity, you can probably achieve that using the programmatic interface.

Fan content policy

demilich is unofficial Fan Content permitted under the Fan Content Policy. Not approved/endorsed by Wizards. Portions of the materials used are property of Wizards of the Coast. ©Wizards of the Coast LLC.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

demilich-1.1.0.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

demilich-1.1.0-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

Details for the file demilich-1.1.0.tar.gz.

File metadata

  • Download URL: demilich-1.1.0.tar.gz
  • Upload date:
  • Size: 20.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.7 Darwin/24.2.0

File hashes

Hashes for demilich-1.1.0.tar.gz
Algorithm Hash digest
SHA256 e07567a60b4f40d52a15670bf904605161efd2e4e1079446b9669029d0386a0e
MD5 8ab0cfa29ce40c2de5b7af2454d8df6f
BLAKE2b-256 7b5f73c4d3999097ec6cc8a58c0f97a38e8a76cc32d475dc113040c4dc7c76b8

See more details on using hashes here.

File details

Details for the file demilich-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: demilich-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 22.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.7 Darwin/24.2.0

File hashes

Hashes for demilich-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ac1f8479bba27e05fb3f17e25645cb379ea72624912e19d27c0c4d0e14f84f0e
MD5 84e0b4436c15f02d0cee2badda8402bc
BLAKE2b-256 3c3b6cea15540a22d0e95e863675ccada3b82dfb7c3122a36836f97dd3cd7df0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page