Hey, gang. I'm Ben Smith, a senior engineer on MTG Arena's Features team. For the past few months, I've been implementing the new reprints improvements that we recently released to players. This article aims to explain the technical journey we took to deliver these changes. Before we dive deep into the article, I want to define a few terms I'll be using to clarify the issues we identified and solutions we chose:

Title: A unique card across all sets (such as Lightning Bolt)
Printing: A distinct printing of a title within a specific set. Usually, these are spoken about in terms of set (such as Lightning Bolt from Jumpstart), but a set can contain multiple printings of a particular title.
Style: A premium visualization of a title associated with one or more printings' card art.

With that out of the way, let's dive into the article. Enjoy!

Reprints: The Problem

The Game Design team on MTG Arena had long wanted a better approach to reprints. Prior to the recent changes to reprints, a player had to collect a playset of each individual printing. This could be frustrating when a card was reprinted because it meant they'd collect four more copies of a card when the player already had a full playset.

Reprints: A Proposed Solution

Once a player has collected four copies of a title in any printing, they should only have to collect a single copy of any new printing to use that new printing in their decks. Our initial investigation into this area centered around how we track player collections.

Originally, MTG Arena's existing data structures for player collections tracked card printings. We track the number of distinct printings that a player owns for each unique version of a card. For example, copies of Opt in a player's collection would look something like this:

Title: Opt, PrintingId: 123, Quantity: 1;
Title: Opt, PrintingId: 456, Quantity: 1;
Title: Opt, PrintingId: 789, Quantity: 1;

To fix this and make collecting easier, we outlined some potential changes. Under the proposed solution we came to, we'd instead keep track of one quantity for all the printings of a title a player had collected, unlocking the use of distinct printings when the player collected a single copy.

Title: Opt, Quantity: 3, Collected Printings [123, 456, 789]

This way, we could track quantity at the title level while keeping a list of "unlocked" printings that the player can use.

Restructuring any data used throughout a game can be risky. Player inventories are our most important, and closely protected, player data. Any change to the structure of player inventories would have ramifications for the game's client, the server, and any player data in the database. This strikes terror into developers, managers, and producers alike. Any risk to player data is approached with an abundance of caution.

Like many proposed changes, the reprints improvements were added to our work backlog until they could be prioritized. As is often the case in software development, large risky efforts somehow always take a backseat to less complicated (and less scary) features.

From there, these improvements remained in the backlog and were occasionally discussed but not actively worked on.

The "Thalia Problem"

Our chance to get these improvements into active development came about during an effort to solve the Thalia Problem. I'll start with a quick overview of the Thalia Problem and how it related to our card style system.

When a player purchased a card style, that card style could only be used with any printings that shared a designated card art. When we add new card styles to MTG Arena, behind the scenes, we required a specific card art to be selected and restrict the use of the new card style to any printing with that specific card art. We tracked this mapping between card style and card art in the style catalog.

This system worked great for depth art treatments where it is obvious that the styled card is an enhanced version of the associated card art.

For card styles where the style did not match the printing's card art, such as Thalia, Guardian of Thraben as "Mina Harker," we did our best to associate the card style with the printing that was most intuitive to players. In this case, we associated the "Mina Harker" card style with the Thalia, Guardian of Thraben printing from Innistrad: Crimson Vow, as that was the set that the “Mina Harker” card style was originally released with.

In the past, we've released card styles that don't have matching card art or a matching card set. When the Secret Lair drop Thalia: Beyond the Helvault was released, we added four new Thalia, Guardian of Thraben card styles that neither shared matching card art nor had a matching card set with any existing Thalia, Guardian of Thraben printing. We needed to select a card art to associate these new styles with. In this case, we selected the most commonly printed card art for Thalia, Guardian of Thraben to associate the new card styles with, which is the art by Jana Schirmer and Johannes Voss.

At a glance, it wasn't obvious which printings of Thalia, Guardian of Thraben these styles were associated with, leading some players to purchase the styles without owning any of the associated printings. The unclear mappings between card styles and printings made it difficult for players to understand how they could apply their styles after purchasing them. This resulted in even more frustration if they didn't own the mapped printing and needed to craft additional cards to use their newly purchased styles.

Any Card, Any Style

When Modern Horizons 3 came out, players who bought styles for the Modern Horizons 3 fetch lands were frustrated that those styles could not be applied to the Khans of Tarkir fetch lands they had already collected. For example, players could purchase the card style of Sean Vo's Bloodstained Mire but couldn't use it with their Khans of Tarkir printings of Bloodstained Mire. This was reminiscent of the Thalia Problem and we wanted to explore a way to fix it. We agreed with players that they should not have to collect new printings of cards they have already collected just to use a new style.

To make things clearer and prevent bad style-purchasing experiences, we decided to remove the restrictions of matching art and allow card styles to be applied to any printing of a card. This became known as "Any Card, Any Style."

The opportunity to fix this long-standing problem was exciting. We got to work investigating how we could allow players to use an art style with any printing of a card rather than require that they own printings with specific matching art.

We investigated deck validation first. In this area, we verify that a player owns all the cards and styles for the deck they have submitted for play.

The existing logic looked like this:

Is this card a style?
- Is the style owned?
- Does the player own enough printings with matching art for this style?

And was being updated to this:

Is this card a style?
- Is the style owned?
- Does the player own enough printings across the whole card title?

It was the last bit that caught my eye. We were going to enable players to use a card style in a deck as many times as printings they owned. It didn't matter if they had four copies of a single printing or one copy of four different printings.

Could we apply this logic to printings as well? That logic seemed simple enough, and could look something like this:

Is this card a printing?
- Does the player own at least one copy of this printing?
- Does the player own enough printings across the title?

Could a change to deck validation solve the Thalia Problem and implement the reprints improvements at the same time? I became convinced that we should not implement Any Card, Any Style without including the reprints improvements.

Implementing these changes in deck validation meant we could solve the reprints problem without changing the game's internal data structures. This was a staggering revelation!

However, there was some opposition to the idea. Changing the data structures would make our intent clearer from a developer perspective. The data structures could always be updated at a future time and were invisible internal workings as far as players were concerned. Other developers will, perhaps dubiously, recognize the choice to accumulate tech debt here. Hello, other developers!

The opportunity to deliver a long-overdue feature and provide impactful value to players was too good to pass up. I began to work on plans to make this a reality, starting with some initial prototypes to confirm my theory on the technical solution.

Prototyping Improved Reprints

We expanded the scope of our Any Card, Any Style fix by prototyping a change to deck validation to update how printing ownership was verified. The solution worked as expected. Players could build and submit their deck using the new reprints ownership logic, and we could fix the reprints problem!

However, many of the in-game visualizations of collections were no longer helpful. With the core change completed, we used the prototype to identify other areas where updates would be needed. What started as a somewhat simple change to deck-ownership validation quickly snowballed into many more changes!

Snowballing Changes

During the evaluation of the prototype, many areas were identified that needed updating. These are just some of the changes that we needed to implement. We had to keep all these things (and more) in mind when working toward shipping what originally was a relatively small, but far-reaching, change.

Collection Ownership Pips

In the prototype build, the pips (the diamond visuals shown above cards in the deck builder) were left unchanged, showing how many printings the player owned. It became obvious that while the new deck validation functionality was working, we'd need to change how we showed players' available cards. Showing a single ownership pip over a copy of Opt when a player could play four copies was not conveying useful information.

Our UI Design team mocked up many ways ownership and crafting pips could be presented to players. The design we landed on included dynamically updated ownership pips that were removed as cards were added to a deck, showing how many cards are still available to put into the deck.

Crafting Pips

On the crafting screen, it was important to prevent players from crafting more cards than were useful to them. If a player owned four copies of Opt from Magic: The Gathering Foundations, we needed to limit them to crafting one copy from another set so that they didn't waste their wildcards.

Rarity Downshifting

Since players can use any printing of a card to reach a full playset, we thought it would be best to protect them from accidentally spending higher-rarity wildcards when a lower-rarity printing was available. All cards can now be crafted for the lowest wildcard rarity that exists on MTG Arena. For example, you can craft Special Guests copies of Rat Colony using common wildcards, as Rat Colony was printed at common in Dominaria.

"Craft All" Functionality

When a player clicks the Craft All button in the deck builder, the logic had to be updated to calculate the minimum number of wildcards a player would need to complete their deck.

This was accomplished in two passes of the deck:

  1. Identify cards with zero printings owned and require one wildcard.
  2. Check how many cards the player owns across the whole title, including the count added by step one, and require an amount of wildcards equal to the difference.

After the Craft All logic was updated, it would show what was really missing from the deck. This updated logic became a cornerstone for determining when to display unowned card visuals.

Set Completion

If a player already has four copies of a title from any previous sets, they will now only need to collect one copy of the printing in the new set. Collecting a single card in the new set not only shows four available copies in the deck editor, but it will also count as four copies for the purposes of set completion.

Duplicate Protection

This affects packs purchased in the MTG Arena Store. If a player already owns four copies of a reprinted card, rare and mythic rare reprints will continue to be opened after the player has collected all other rare and mythic rare cards in the set. With the recent improvements, when the new reprint is opened, they will open exactly one copy of the new card, which will count as having collected four copies.

Likewise, when opening commons and uncommons that a player already owns four copies of in other printings, vault progress will be granted when opening all copies of the reprint beyond the first.

Preconstructed Deck Proration

The prorated costs of preconstructed decks needed to take the reprint changes into account when determining the cards players own. When determining the cost of the deck, the rarity of the cards included in the deck needed to be downshifted to the lowest rarity available for each card. In many cases, preconstructed decks are less expensive with these improvements.

"Apply Styles" Button

When a player clicks the Apply Styles button in the deck builder, it attempts to set all cards to the player's preferred printings or to another player-owned card style.

In the previous system, only styles mapped to the card art by the Style Catalog were considered. In our new logic, all styles owned for the entire card title will be considered.

Draft Inventory Overlay

You can view your card collection progress while drafting by holding the Alt key on PC.

When a player drafts a reprinted card that would count as four cards in their collection, the draft overlay has been updated to show the correct collection count under the new reprints logic.


The Thalia Problem and broader reprint issues have long been areas we wanted to improve for players. Finding appropriate solutions for these problems was challenging, but prototyping helped us identify the changes we needed to make.

While it wasn't the simple deck validation change that we had hoped for when we started this effort, we are very happy to deliver this value to players.