Drop Tables

Andreas Stokholm, May 11, 2021

This week we are launching a new Asset Complexity called Drop Tables. The Drop Table Complexity provides logic for randomly selecting individual or multiple Assets from predefined groups based on their rarity weighting or tags. This can be useful if your game has a boss with specific loot, for example. To explain how Drop Tables work, I will set up a Drop Table Asset for one of my favorite bosses, Ragnaros from World of Warcraft. A version of this guide can also be found in our user documentation.

Ragnaros is a Firelord in the Molten Core instance and was my first experience with a 40-person final raid boss. It took many, many weeks of work (read: wipes) to make it all the way to his cavern at the bottom of Blackrock Mountain, and witness him emerge from the lava.

Long story short, when you finally kill Ragnaros, you can loot him to find out what awesome gear has “dropped” based on a predefined drop table the game designers populated. Ragnaros always drops 2 pairs of “Tier 2 Pants”, a few other epic and rare items, and some currency. There is also a very small chance that Ragnaros will drop one of two Legendary items. Let's set this up in LootLocker!

Configure Contexts

To set this up in LootLocker first we need to create the Drop Table Context. Contexts are a way to group and describe Assets. All Assets must have an assigned Context as they let your game know what type of Asset it is, and tells LootLocker what sort of information or logic will be stored in the Asset and any special relationships it should have, for example with Character Classes and Default Loadouts.

The Context Configuration menu can be found in the Game Settings menu by clicking the Settings icon on the left bar of the Management Interface.

Click on the Context Configuration tab at the top of the Game Settings menu. You should be taken to a menu that looks like this.

To create a new Context, click the Add Context button. As we want to create a Drop Table Asset, select Drop Table from the Complexity dropdown menu.

Next we will want to fill in the rest of the information about the Context. A detailed explanation about each of the Context options can be found here.

  • Name: Drop Table
  • Friendly Name: (can leave this blank if the Friendly Name is the same as the Name)
  • Detachable?: No
  • User Facing?: No
  • Depends On: Independent (No Asset)

Click Save Contexts to save this Context. It should now look like this:

Create the Drop Table Asset

Now lets navigate to the Asset Manager to create the actual Drop Table Asset which will be used to select which Assets are dropped by Ragnaros. The Asset Manager can be accessed by clicking the Content button of the side bar and selecting Assets.

To create an Asset, click the Add Asset button in the top right corner of the Asset Manager. Fill in Ragnaros as the Asset Name and select the Drop Table Context from the drop down menu. Click Create to create the Asset.

Once the Asset has been created, you will be taken to the Asset's page where you can see all of it's stored information and data. The most important fields when setting up a Drop Table are in the Drop Table tab at the top of the Asset's page. This is where we will define the content of the Drop Table by creating drop groups, and then assigning those groups weighting and Assets that are dropped.

Click Add Group to create a new drop group. In total we will create six drop groups, each containing a different group of Assets and settings related to the ultimate outcome we’re looking to achieve. Here’s a brief description of the fields in the Drop Groups and then details for each group we’ll create.

Force Select / Weight lets you indicate if the group is guaranteed to be selected when LootLocker computes the Asset, or what rarity weight it should have.

Drop Count lets you set the minimum and maximum number of Assets that will be selected from that group. Numbers in between the minimum and maximum will be randomly selected.

Tags can be used when computing the Drop Table to indicate if a group should be considered or not.

Assets are the contents of the group and can be added by clicking the Add Asset button. In a drop group each Asset also has its own Force Select / Weight and Tags to allow both macro and micro control over the specific outcome of the Drop Table.

The first group we will create will be for the “Tier 2 Pants”. This group will have Force Select enabled and a Drop Count minimum and maximum both set to 2. This will insure that this group is always selected and that 2 Assets will always drop from it. We will add all 9 “Tier 2 Pants” Assets to the group and leave their Weight as 1 by default since we want all of the Assets to have an equal chance of dropping. Since World of Warcraft has two Faction specific classes, Paladins and Shamans, we also need to indicate to the group which Assets can drop for Alliance and Horde players by adding Alliance and Horde tags to all Assets but those for Paladin and Shaman classes. For the Paladin Asset we will only add the Alliance tag, and for the Shaman Asset we will only add the Horde tag. The setup should look like this.

Here’s a summary of how all of the groups should look with a short description about why we set up the group that way.

Group 1 (Tier 2 Pants Assets)

| Force Select / Weight       | Enabled         |
| Drop Count (Min / Max)      | 2 / 2           |
| Tags                        | None            |
| Assets                      | 9               |
| Asset Force Select / Weight | 1               |
| Asset Tags                  | Alliance, Horde |

This group will always be selected and will drop 2 Assets and will exclude the Paladin Asset if Horde are playing, and the Shaman Asset if Alliance are playing.

Group 2 (Epic Assets)

| Force Select / Weight       | Enabled         |
| Drop Count (Min / Max)      | 1 / 3           |
| Tags                        | None            |
| Assets                      | 11              |
| Asset Force Select / Weight | 1               |
| Asset Tags                  | None            |

This group will always be selected and will drop between 1 and 3 Assets. All of the Assets in the group have an equal chance of being selected.

Group 3 (Rare Assets)

| Force Select / Weight       | Enabled         |
| Drop Count (Min / Max)      | 1 / 5           |
| Tags                        | None            |
| Assets                      | 20              |
| Asset Force Select / Weight | 1               |
| Asset Tags                  | None            |

This group will always be selected and will drop between 1 and 5 Assets. All of the Assets in the group have an equal chance of being selected.

Group 4 (Currency)

| Force Select / Weight       | Enabled         |
| Drop Count (Min / Max)      | 1 / 1           |
| Tags                        | None            |
| Assets                      | 1               |
| Asset Force Select / Weight | 1               |
| Asset Tags                  | None            |

This group will always be selected and will drop only 1 Asset. The Asset is a Currency Package and will include a fixed amount of currency.

Group 5 (Legendary Assets)

| Force Select / Weight       | 1               |
| Drop Count (Min / Max)      | 1 / 1           |
| Tags                        | None            |
| Assets                      | 2               |
| Asset Force Select / Weight | 1               |
| Asset Tags                  | None            |

This group has a <10% chance to be selected and will drop only 1 Assets. Both Legendary Assets in the group have an equal chance of being selected.

Group 6 (Empty)

| Force Select / Weight       | 11              |
| Drop Count (Min / Max)      | 1 / 1           |
| Tags                        | None            |
| Assets                      | 0               |
| Asset Force Select / Weight | N/A             |
| Asset Tags                  | N/A             |

This group is empty and used to make sure Group 5 has a low chance of being selected. By setting the rarity weight to 11 means that this empty group is selected in 91.66% of cases. As it has no Assets, if it is selected nothing will be granted from it.

With everything now set up, let's make sure to click the Save button at the top of the page.

Activate the Asset

The final step is to activate the Asset so that it is sent to the game and players can access the Asset. To do this, click the Activate button on the right side of the Asset menu. Clicking Activate will automatically Activate and save any changes you have made to the Asset.

Send the Asset to Live Environment

All of the work we've done so far has been in the Stage Environment of LootLocker - where you can make changes to Assets and settings and easily test those changes before sending them to the Live Environment for your players to see in their game. While we usually suggest testing all changes against the Stage Environment first, for the purpose of this tutorial we will push the new Asset to the Live Environment and test it there.

To push the Drop Table Asset to the Live Environment, click the Review Changes button in the side bar of the Management Console.

This will take you to the Differences screen where you can see all the differences between the Stage and Live Environments of your data in LootLocker. To calculate these differences you will need to switch to the Live Environment by clicking the Switch to Live button on this screen. This will automatically switch you to the Live Environment and calculate the differences between the two states. You should see the Drop Table Context and Assets you created in this tutorial.

Since we want to push both the new Asset and the new Context information we will tick the boxes next to both entries and then select Push Selected to Live. In the confirmation modal that appears, click Merge to merge the changes into the Live Environment.

There we have it - our Ragnaros drop table has been set up and just needs implementation in-game... but that's for another blog post in the future!

I hope this has been a helpful demonstration of how flexible Drop Tables can be and how quickly they can be set up! If you have any questions or ideas for ways we can improve Drop Tables or any other features, please let us know through Discord, email, or Twitter.