Practical Example: Creating a Variable/Step Dice System

schedule 20 min

Prerequisites:

Goals:

  • Learn how to create a "Variable Dice System"

Let's imagine that you wanted to create a system where the die rolled changes based on some condition.

For this example, let's say you wanted to create a "roll-over system" (a success means beating a number determined by the moment — like D&D or Pathfinder) where skill progression increases the size of the die rolled, rather than adding a static bonus. In other words, a character rolls a d4 if they have not invested any skill points into a particular skill, but they increase this die size by 1 for every skill point invested (to a maximum of 5 points invested).

Skill Points Invested Die Size
0 d4
1 d6
2 d8
3 d10
4 d12
5 d20

Note: For Your System

While your system may work differently, hopefully the concepts of this example can apply to your system and help you create your own version of the same.

For experienced users, you may also be aware that there are many ways to accomplish the same result on TTM. For this guide, we will take an approach that focuses on:

  • Simplicity: Making it easy to follow what's going on.
  • Modularity: Making it easy to change the mechanics if you decide to in the future.
  • The Homebrewer's Experience: Making it easy for future contributors of your system

So with that, let's get started.

The Basics

Let's create a new Rule System by going to the "Mechanics Page" and clicking "Create Rule System

As this guide isn't about setting up a system holistically, we're going to skip the details of setting up most of the system. For more information on setting up a system, consider checking out our Practical Example: Setting Up the D&D 5E SRD guide.

Instead, go over to "Character Derivations". Let's create a "Derivation Group" called Skills.

Next, let's specify that the number of points granted is equal to 1 per Character Level; in other words, every level, a character is given 1 point to invest freely into any skill that allows it.

Also, because Skills cannot have more than 5 points in them, we can set the "Maximum Points Per Derivation" to 5.

Otherwise, we can skip Point Mappings.

Thus, the completed basics of our Derivation Group will look like so:

Next, let's create 3 skills: "Athletics", "Toughness", and "Magic", just as examples. Let's assume these are all the skills in our system. They will all be numerical skills with character input and no other changes.

For example, here is our "Athletics" skill (completed):

And likewise, we'd create two more Derivations with the same process, but different names:

Creating the Variable Dice

Let's start by recapping how our system works so far.

We have 3 skills. At each level, a character may invest exactly 1 new point into any one of these 3 skills, to a maximum of 5 points for any given skill. When they do so, the skill increases by 1.

Thus, the actual value of a skill is just equal to the number of skill points invested (as of now).

For our purposes, that's exactly what we want. Now, we're going to set up the variable dice.

Setting Up The Variable Dice System

Create a Derivation Property called "Check Dice". Note: it'll automatically be added to all of the Derivations.

Set it to Field Type "Numerical".

Now, to make things easier, let's set up the Default Calculation to work for our first skill, Athletics. By doing so, we'll be creating the basic framework — which will make it easier to adapt the property for each of the skills after it.

Edit the Default Calculation, and go to the "Table Tab".

You'll see something like this:

The basic idea here is that we're going to create a table of values from which we will look up the dice size based on our Athletics (just like we represented it above).

Start by setting the Table Calculation to "Athletics" as so:

Then add a row. In the box to the left of the arrow, enter "0". To the right of the arrow, configure it to 1d4.

Then, repeat this process for all of the skill values and the die sizes. When you're done, it should look like this:

Once you're done, click "Save" to complete this calculation. When we're finished, our "Check Dice" property will look like this:

You may have noticed that the order of our dice has changed and there's nothing to indicate that these are "conditional" dice. It looks like they are all just added together. That's okay; it's a known bug that exists at the time of writing this guide.

If you look at the bonus calculation itself by editing it, you will see that all of our set-up is right as we left it. And for our purposes, the order of the dice doesn't matter (as long as the conditions are correct).

Tailoring For Each Skill

Now, if you save and look at your derivations, you will notice they all have a "Check Dice" property that represents our "Variable Dice" system.

The one problem is that each Skill's Check Dice is based on Athletics. This is the part we have to change.

Go into the Toughness' Check Dice Calculation. You'll see the full table we set up before:

All we have to do here is to update "Athletics" with "Toughness".

Thus, we'll have the same general computation, but based on "Athletics" instead of "Toughness".

And when we save, it'll look like so:

Notice, from this view, Athletics and Toughness look exactly the same. Only by looking under the hood do we see they are different conditions.

Likewise, we'll have to do the same process for Magic, our last skill — which will also look identical:

Let's recap what we did: we set up a derivation property for each Derivation that essentially just determines the relevant die to be rolled for each Skill.

Now, just one final step: Creating the Checks themselves.

Creating the Check

Let's start with Athletics.

Click "Add Related Check".

It's going to create some initial calculation for the check, but let's edit that and delete it. Instead, just set it to "Athletics Check Dice" as so:

And that's it! Now, an "Athletics Check" will result in a variable dice being rolled based on the point investment in Athletics.

And the best part? When a character in session is asked to roll the check, it'll just show them the final die being rolled labeled as "Athletics Check Dice". They don't need to know or see the complex calculations happening in the background.

But of course, if they wanted to know, they could look up how their "Athletics Check Dice" is calculated to see the breakdown.

Now, we can do the same for Toughness and Magic, setting them to their own relevant Check Dice. For example, "Toughness" will look like so:

And Magic will look similar.

Closing Notes

So what are some of the advantages of this approach?

  • If you decide to change the Check Dice calculation, you just have to edit the Derivation Property representing the check. The Check itself will automatically pick up the change.
  • If you wanted to create a "Hybrid Check" that represents two different skills rolled together, you could make it as "Athletics Check + Toughness Check" for example, even if they use different dice.
  • Everything is nice and separated. This means that players in your system can see very detailed breakdowns of every piece of their check's computation — so they know when something is not working right.

Hopefully this guide was helpful and provided a good practical example for your system.

Please leave a quick reaction with the smiling/frowning face below depending on if you liked or disliked this article. It helps us write better articles! Thank you!

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.