JDice: Java Dice Roller
JDice is a java program to roll dice, primarily intended for roleplaying.
It was desinged with d20 style gaming in mind, but is likely applicable
to other systems.
While many dice rolling programs exist, JDice can store a list
of common rolls that you will make. JDice also has buttons
for each of the common dice for rapid accessability.
When JDice is run with no arguments, it will open with a window that
looks like this:
Clicking on any of the dX buttons down the right will result in
rolling 1dX. The results are displayed in the list, with the most
recent roll at the top, highlited:
Note that the results list can be cleared with the "Clear"
button in the right pane.
JDice can roll more complicated sets of dice. To use this
feature, enter the dice you want to roll in the area at the
top of the window. Details of the input format can be found
in the dice strings section.
In case it matters, JDice reports the individual dice rolls as well
as the total result for each roll that it makes. The total is reported
in the middle, with the => and <= pointing at it, the individiual rolls
are reported in square brakcets, followed by any bonus or penalty.
As you may have noticed, this area is not just a text entry box,
it is also a drop down list. JDice can load a file with a list
of dice rolls to make. (This feature can be especially useful
for players who do not remember how many dice the various spells
their high level casters have). The use this feature, run JDice
with an argument specifying the file to load. The file should
have one entry per line of the format Name = Dice Info,
where Dice Info has the same format as would be entered
in the text box. The name may be anything you want, and is not
required. For example, if JDice were directed to load the following
Scorching Ray = 3 x 4d6
Fireball = 10d6
Cone of Cold = 15d6
Energy Drain = 2d4
Time Stop = 1d4 +1
Shout = 5d6
then dice rolls for those spells would appear in the list,
allowing them to be rapdily selected and rolled:
JDice will roll the dice in the top area whenever you press ENTER in it,
select a new item from the drop-down list, or click
For those of you who like formality and understand BNF grammars,
JDice understands dice strings which correspond to the following
roll::= xdice ; roll
xdice::= num 'x' dice
dice::= die dtail
| die bonus dtail
dtail::= & dice
| /* nothing */
die::= 'd' num
| num 'd' num
bonus::= '+' num
| '-' num
num::= (a number)
For everyone else, the simplest dice strings JDice will accept
are ones like d20, 3d6, or
2d8+3. Dice strings like this specify exactly what you
would expect-roll 1d20, 3d6, or 2d8+3.
JDice also lets you combine together multiple types of dice in
one roll- for example, if you need to roll 2d6 and a d10, you can do that.
To do this, use & between the different dice- for example, 2d6 & d10 .
Another thing that you might want to do is have the same roll many times.
For example, suppose you want to roll 4 separate d20s, you can do
4xd20 This results in 4 separate rolls of a d20,
which are not added together (for example, 4 different checks).
Sometimes, you may want to have different types of independent rolls
grouped together. This can be accomplished with the semi-colon (;).
For example, suppose that you want to describe a fighter's full attack,
which has 3 attacks at different bonuses. You could specify the to-hit rolls
as d20+25; d20+20; d20+15.
Note that these features can be combined- for example, if the fighter
were hasted, and thus received an extra attack at her top attack
bonus, you could specify 2xd20+25; d20+20; d20+15
Another possiblilty would be 2x d6 & d4 +3 ; d10 -
which would mean that (d6+ d4+3) should be rolled twice, and then d10
should be rolled once, for a total of 3 results.
These more complicated dice strings are probably not as practical
when typing in dice strings interactively, but can be quite
handy if saved in a file for common tasks (full attacks, attack
damage, spell damage, etc).
Dice strings are case-insenstive and ignore white space.
JDice is written in Java and is available under the terms of the
Version 0.1 alpha
This software is currently under development.
it has no useful error reporting on an incorrectly formatted
dice string, nor any in-program way to create/modify data
These features may be included in future versions.
Copyright 2006, Andrew D. Hilton
a d h i l t o n@c i s . u p e n n . e d u
Last modified: Sat Jun 10 20:53:32 EDT 2006