We first saw the concept of a sideboard in Hearthstone earlier this year with the debut of E.T.C., Band Manager, which allowed 3 additional cards to be added to your "Band". You would then be able to Discover one of these cards each time you triggered the Battlecry of E.T.C. This effectively allows you to bring a card from outside the game into the game, which can lead to very creative strategies.

Sideboarding is a common practice in card games for tournament play, where you'll be allowed to have a certain number of cards on the side, and you can swap them into your deck between matches. It's a great way to bring along an arsenal of tech cards to swap into your deck to help counter different deck types from your opponents. There's a whole extra level of complexity involved when people know what you could potentially swap into your deck to counter their synergies.

Enough of that though, let's look at what Hearthstone's most recent update did for sideboarding.

As always, datamined information is subject to change and may never see the light of day. It is also open to interpretation!


A Brand New Type of Database Record

Hearthstone's data is largely stored in a "DBF" format. This "DataBase File" is for a specific type of object and stores a set of Records. As an example, Hearthstone has a Card DBF which stores Records of each Card in the game. 

In this week's game update, Blizzard added a brand new type of DBF file, one that is currently void of any Records. The new object type is called SideboardCard.


Digging Deeper - Breaking Into the Client

Taking apart the Hearthstone client is always a fun task when a new patch arrives, and this week's update was no different. With a new type of DBF it's time to start digging. Hearthstone has code for each of their DBFs which will tell the game how to process the data within them. Maybe we can find an answer there?

Inspecting the format for the SideboardCard file, we know that it will be loading a List of Records, which is exactly as we'd expect.

public List<SideboardCardDbfRecord> Records = new List<SideboardCardDbfRecord>();

What about how each Record itself is loaded? Are there any signs here that tell us what Blizzard is up to?

private int m_deckCardId;
private int m_sideboardCardId;

This tells us that, currently, the Records for a SideboardCard are going to store two different numerical ids. The first is in relation to a "deckCard", and the second is to a "sideboardCard". Without any other information present in the client, it's not entirely obvious what Blizzard is referring to. This isn't hooked up to E.T.C., the code isn't hooked up anywhere with the exception that the game recognizes that it exists. It is almost surely a feature that is currently a work in progress and for some reason, they left the bare minimum in the client for us to find.

No new images, no other code, we've hit a dead end.


What Could it Mean?

We can take an easy guess and assume that sideboardCardId is going to store the id of a card you choose to put into a deck's sideboard. However, that doesn't feel right with the current way the game has this configured. Allow me to explain.

With the way E.T.C. works in the client, you add him to your deck and then you choose whatever cards you'd like to add to his sideboard. Blizzard doesn't define these relationships in their client-side database files because they don't need to - all of this is stored on the servers for each deck that includes E.T.C. What we see here today is a strict relationship between specific cards.

Imagine a scenario where I add a card to my deck with the internal id that maps back to deckCard. It is entirely possible that this deckCard adds its associated sideboardCards to your deck's sideboard. It feels to me as if a new mechanic is coming for certain cards, possibly even during this expansion, in which several cards will be able to add to a sideboard, their own unique tools, and then other cards, or possible themselves as well, will be able to draw from the sideboard like E.T.C. can. Baking this into a mechanic shortens the overall text and allows for some craziness down the line should Blizzard make the mechanic evergreen, meaning we should see it in the core set and future expansions.

Hearthstone did in fact make it a lot easier recently to see what tokens they are associated with in the collection manager, so it wouldn't be surprising if this was a precursor to sideboard cards.

Regardless, all of this is a huge stretch; We don't even know if this code is going to actually "go live". This could be the Hearthstone devs playing around with a sideboard mechanic, accidentally leaving it in the build, and the reason we don't see any references to any card data is because that card data itself doesn't exist in the public build of the game. We know they have the ability to remove cards from builds and with that, other references to those cards are also removed.

At the end of the day, this is still an exciting bit of code to see in the Hearthstone client because of what it could mean for the future. What would you want to see out of a Hearthstone sideboard?


RIP Fireside Gatherings

Fun fact! Blizzard has removed all code relating to Fireside Gatherings in the client with this week's patch. This isn't exactly surprising considering they had already announced the program was being axed, but it's a shame.