Designing Dice

Three questions regarding making dice:

First, if I want to assign 3 values to the face of any given die that are all totalled independently, can/how I do that with vassal? (eg, damage, range, bonus)

Second, if I wanted to roll a number of dice at the same time, can/how may I add these three different values up?

Third, if I routinely roll different combinations of dice, is there a way to create dice within the module then choose which ones to add to a roll of multiple dice, and have it do the totals for me “on the fly”, while the module is running, rather than programming in each different combination of dice rolled?

Hope these are comprehensible questions, and I very much appreciate the input from those who understand better than I how the programming works.

  1. Try using Symbolic dice–they use symbols or images instead of numbers. You can define the die faces however you wish.

  2. Players will have to add up the die roll totals manually–Vassal only supports the automatic totals for 1 quantity per die. For example, if you assign a numerical quantity each to damage, range and bonus, you can only have the module report on one of these quantities, not all three. (But players could still total them up visually.)

  3. You can set up buttons to pre-define combinations of symbolic dice (a button for 2d6, a button for 3d6, etc) and then put them all on a menu so players could pick the die rolls they need.

Alternatively, you might want to look at the regular die roller button, which can be set to allow players to define the die roll when they actually roll the dice–for example, the same button could roll 1d6, 1d4, 1d10+2–whatever the player defines when he clicks it.

Another alternative to all this is to define each die as a Piece, with some number of randomly activated Layers. Each Layer is another face of the die.

Players “roll” the die using the random Layer command that you define when you set up the Layers. They would then visually inspect the die image to figure out what they rolled, just like they would do with actual physical dice.

Players could just drag the number of dice they need from the Pieces palette and roll them–there would be no need to pre-define the number of dice rolled.

  1. Thank you kindly for the suggestion, and I have been using symbolic dice, but yes, what does happen is that they have been needed to be read manually, I thought there might be a vassal engine, or a class applet I don’t know about, that can sum them up for you.

  2. Thank you again for clarifying that, that’s what I started to think when all it would let me put in the results section is a single number value.

  3. That’s an interesting solution, have the dice as 6+ layer pieces… My appreciation to you, again, for an interesting solution idea…

You should be able to get around this by sending the dice numeric value property to a GP(s) and report the GP(s) instead

Tim, can you elaborate on how this would work?

see this thread - … sc&start=0

has a basic demo I put together showing the work around principle.

Tim, love your demo, gives me some new ideas (and a little more experience with how to play with Global), but here’s a new project idea…

I want to be able to select different kinds of dice to be rolled simultaneously. It is possible that there is a way to tell the engine to roll one blue, red, and 2 purple dice at the same time?

Similar to the Symbolic Demo #2 (linked on the other post) , could a window be created that allowed a player to select different numberings of dice (3-4 pull down windows) then a final button that allowed them to all be rolled at once?

Also, on the same tangent, is there a way to store values over the course of the game? I’m pretty sure I’m being lazy by asking rather than figuring it out on my own exactly how the command works (because I looked at Global options a little in the help menu), but how could I store an integer value and have it reflect on a field somewhere as a “game summary” page?

Yes, possible
Use a toolbar GKC to activate a hidden inaccessible At start stack counter/
window button prompt
This component will have a dynamic property which prompts the user for dice
selection and numerous triggers based on the set DP value that activate
afterward which roll the required die

Post generated using Mail2Forum (


  1. Is there a way to make a die with mathematical calculation?

When a player roll a die such calculation happens:

Result = (fixed number + (fixed number - d10)/2)

  1. Is there a way to make a die with mathematical calculation and connect it with a counter on map?

When a player roll a die such calculation happens:

Result = (fixed number + X + d10 + 1 if the specific counter on map is on the “A” side)

X - is the pause for the roll when program ask player to input the number


It’s sounds like what you’re describing may be possible in the next version of vassal (3.2) as it should be including BeanShell (a Java mathematics engine) but at the present time, Vassal does not accommodate mathematical formulas.


I have a problem with triggering a die roll.

I have a counter, when a specific command is chosen a marker is placed under the counter. In the field “apply the keystroke after placing a marker” I have put a key command which is responsible for rolling a die, but it doesn’t work. Should I add something more, some global command or something? Thanks!

The “apply the keystroke after placing a marker” would apply to the marker only. What you need to do is include a Global Hotkey trait in the marker to set off the die roll.

For example, let’s say you’re using a CTRL D to roll your die …and let’s say you’re applying a keystroke to the marker of CTRL 1. You would then have a Global Hotkey trait on the marker that would accept Keyboard Command CTRL 1 and fire off Global Hotkey CTRL D.

Thanks :smiley: !