Loot boxes & card packs
In this series, we will examine how to model a card pack or loot box system using Machinations. We will also investigate how such a model can provide…
In this series, we will explore how to model a card pack or loot box-style system in Machinations. We will also explore how you can use such a model to gain practical insights about progression and spend depth.


We will be modeling the card collection system of Hearthstone, but the model applies equally to other randomly generated loot systems, like loot boxes or gacha systems.
This series is for those who already have a basic understanding of each component.
For more introductory tutorials, refer to our learning materials.
Before Modeling Can Begin
Before placing any components on the canvas, it is important to have several things in mind:
- What design question(s) you want your model to answer
- What parts of your game system you plan to include and not include
- What a step represents in your model
We explore each of these questions below:
Have a design question in mind
Without a key design question in mind, you may fall into the “model everything” trap, wasting time modeling things that have little effect on the system you’re interested in.
Our key design question is the following:
How many card packs does it take to collect all the cards in the set?
The reason we are asking this specific question is that it has implications on the progression and monetization for our game. By pursuing this design question, we can infer how long the content in our game will last, and also how much can be spent in it.
Breaking up your game
It is generally more efficient to break up your game into separate models, one for each system or mechanic. Though modeling an entire game in one diagram could produce more accurate results, it is far more cumbersome to do so.
Diagrams should be kept small and nimble, so that it’s easy to work with them and keep them up to date.


For this reason, our model will focus solely on the immediate process of collecting cards. We will not model any of the metagame surrounding it (in other words; when, where or how often card packs are earned) – that could easily be tackled in a separate model. All we need to know for now is what happens to the cards once they’re collected.
Defining a step
The definition of a step is the backbone of any model. In our model, a step will represent the opening of a single card pack.


The definition of a step should be informed by the level of precision you require: if you’re interested in the moment-to-moment experience of a player, a fine interval such as a minute might be necessary; if you’re interested in the long-term experience of a player over many sessions, a less granular interval – such as a day – is sufficient.
We expect the time taken to collect all cards in the set to be in the range of months, so a granular definition of a step would be redundant: we would sacrifice Play speed for very little gain.
Note that a step does not need to represent a unit of time, and can instead represent an event. In our case, the “event” is the opening of a single card pack.
Abstracting out the concept of time from a step allows us to account for all the possible types of player, who may collect card packs at different rates.
Later, we can use assumptions about time to infer what span of time our model represents.
Selected models to Play and remix: Selected reward system models.