Tips on rolling a lot of non-standard dice?

Never made a module with a lot of dice before, but now I have one (Oath) with two large sets of dice with no strict upper limit. Each die in a set is identical, each die has 3-4 different graphical faces.

I want to make it easy to roll between 1 and … maybe 30 dice at once for one set, leave them all visible and available for manipulation, and roll between 1 and maybe 20 of the second set.

It’d be really cool if the dice self-sorted into groups of identical faces after rolling, but I can’t see how that would work.

So, a couple of questions: what’s the best UI for this, with ease of use and flexibility, any example modules already out there? And is there any way to get that self-sorting idea working?

Currently I’m thinking of two grids of buttons, 5 across, however many down, that look like blank translucent dice. Any button pressed will roll that die and all dice “before” it, randomising the face and making them appear solid, after which they can be dragged around and further rotated. Buttons disappear to avoid accidental clicks. Another button resets. Report will tally everything. Does this sound OK? Overwrought? Any better solutions?

So I’ve not done anything than a simple pair of standard d6 in VASSAL so far. So I had to have a quick look at the manual.

Obviously you have got the symbolic die option in VASSAL so getting started is not too hard,

However even tallying that would be hard. I am not quite sure what you are proposing to tally. Are you proposing to just count the different numbers of die faces? Or actually get a number? In Oath the defence die gives you a raw number, but the attack dice give you a number plus a number of warbands to kill. That latter calculation looks impossible in VASSAL. Even for the former, unless I am mistaken, you would need to assume an absolute limit on the number of dice.

I can’t even begin to imagine how to code the graphical aspects.

I believe this would be a lot simpler as a Java extension. (Something I have been determined to avoid myself!!)

One large piece with 30 action buttons, places X markers and moves offboard when clicked. The markers are functional dice, “rolled” to a random layer level when placed.

Tallying is a matter of assigning each dice face a value triggered on layer change to change an associated GP (or two). The tally is simply the GP(s) reported.

I don’t think any of this is too tricky. This is just what I came up with after a bit of thinking, haven’t had time to do anything yet. Making something better, on the other hand - I’m open to suggestions.

I have some die rolling experience. I think you may find the Vassal symbolic method too limiting, but I’d be happy to learn otherwise.

You will find a simple and effective example in Michel Dippel’s CCN module (the current Vassal release). It rolls 1-7 dice using offset layers on a dicetray piece to display the results.

I have re-engineered the CCN die rolling method in a new version, not yet published, which uses the Random() function, HTML for presentation, scalable for lots of dice (16 currently) and integration to automation via global properties. Current working release of my C&C Nap module can be found in this dropbox folder (look for latest CCN V4). The dice functionality is in the “dicetray” piece in “Hidden Game Pieces” palette but the actual functionality is in prototypes: “Dice Tray” with sub-components “DiceTray-…”. Though the primary output goes to Chat, a dice tray piece is still provided, and could form the basis of a solution for the requirement you specify.

Self sorting - I came across this somewhere… can’t remember the module just yet and it was sorted text output. Maybe that is a Vassal option for simple dice rolling. Actually, it might be ACTS! My CCN module counts results according to die faces, so I imagine that could form the basis of a sorted display? It depends what you want to do with the dice afterwards and if they need to keep sorting / re-organising, I guess.

Happy to discuss further, here or on discord somewhere. I look forward to trying Oath!

Thanks, I will check that out.

The sorting is simply to make a visual count easier. The faces of one set of the dice can be 0.5, 1, or 2(+skull), so grouping the 0.5s would make sense. The other set can be 0, 1, 2, or x2.

As far as I know, no further manipulation of the dice is required, but some effects can make all 0.5s count as 0, or similar, so the raw visual output is necessary to complement the simple tally (which will not take any such effects into account).

I’ve gotten away from using the toolbar dice buttons. Now I make dice pieces, which I think are far more attractive, easier to read, and way cooler. You can move them around, clone them if you need more, change their colors, and delete them if you want. I’ve even put blank faces on disabled dice. If you want to roll a bunch of them at once, you’d group-select the bunch, right click, and choose roll.

For your case I’d put a crap load of dice pieces on the table in the colors I need. Need more dice? Just clone them or pull them off a palette. To sort them, I’d define zones on the map and send the dice to zones based on their face values. (You can neatly line them up by using a global property as an index.) You could even display counters for how many of each face and color are showing.

I think we are broadly in agreement then. I definitely prefer the dice to be on the table, I’m just not so keen on the group selection and cloning requirements. My solution will allow players to do that too though, if they want.

You are right that sorting shouldn’t be too hard, if space weren’t an issue. Ideally I’d have them all going to the same zone though… but that might be easier than I first thought. Just make sure all the 0.5s trigger before the 1s, etc.