Click and reaction test
How many clicks per second you can manage, and how long you take to react to a signal, averaged over five attempts.
en / tools / dice-roller
Dice in XdY notation, with modifiers, keep-highest, advantage and disadvantage, and the evening's history.
Free, in the browser, no account
Up to 10 dice. The + duplicates that die, the × removes it.
From 2 to 12
The dice have already come up when the digits start spinning: the roll is drawn first, and what you see is theatre. The digits in motion are not rolls — if they were, the animation would be deciding the result while showing it. With "reduced motion" on, the result arrives at once.
This session’s rolls appear here.
In memory only: reload the page and it is gone.
It only counts when a single die is kept: on 2d6 a six is not a critical, it is a six. And the modifier does not take it away — a 20 is still a 20 with a +5 on it.
Dropped dice stay on screen, in grey: they were rolled, and hiding them would remove the only proof that the roll actually happened.
The dice come from crypto.getRandomValues, with the remainder rejected rather than divided: taking the modulus of a random number would make some faces come up more often than others, by very little and for ever.
The COMPOSITION lives in the address, not the result: whoever opens the link finds the same dice on the tray — or the same formula — and rolls their own.
Everything happens in your browser: no data is sent anywhere.
Because the dice are in the other room, or in the other city. Because a game played at a distance needs a roll everyone can watch being made, and because a generator that only tells you the total lets you verify nothing.
XdY is X dice of Y faces, and X can be left out: d20 is a single die. The modifier goes on the
end, 2d6+3 or d20-1. And then there is the part that actually matters: 4d6k3 rolls four dice
and keeps the best three, which is how you roll an ability score; 2d20kl1 keeps the worse of two,
which is disadvantage.
k on its own means “keep the highest”. It is the short form used at the table, and a different
default here would mean weaker characters without anybody noticing. For the lowest you write kl.
Advantage and disadvantage are not two ways of rolling: they are 2d20kh1 and 2d20kl1. The two
buttons write the formula into the field rather than hiding it, so you can edit it — which is the
whole reason a notation exists.
They stay on screen, grey and with a dashed border. A 4d6k3 is a roll in which the fourth die came
up: hiding it would turn a rule every player knows into a black box, and would remove the only proof
that the roll really happened. In the history the dropped ones sit in brackets, which is the same
information for anyone reading with their ears.
The dice come from crypto.getRandomValues, the browser’s cryptographic generator. But a good source
is not enough: the usual way of turning it into a die — taking the remainder of a division by the
number of faces — is not fair.
The possible values of a 32-bit integer do not divide by six: four are left over, so four faces out of
six come up once more every seven hundred million rolls. On a d6 that is invisible; on a d100, or
on any die whose face count divides badly, the gap grows. Here the leftover is rejected rather
than divided: the draw is repeated until the number falls in the part of the range that divides
exactly. It costs an extra draw now and then, and returns a fair die.
What goes into the query string is the formula, not the result. A link carrying “17” is a link to
a number, and whoever opens it has rolled nothing; a link carrying 2d6+3 is an invitation to roll.
The formula is rewritten in canonical form before it goes there: 2d6+3 and 2 D 6 + 3 are the
same roll, and two people who did the same thing should be able to exchange the same link.
Everything happens in your browser. The history stays in memory until you reload the page: it is not saved anywhere.
How many clicks per second you can manage, and how long you take to react to a signal, averaged over five attempts.
Check that your camera and microphone work, with the detected resolution and a live audio level. Nothing is recorded.
Press a key and watch it light up on the drawing. Shows the key code, how many you are holding at once, and which ones you have already tried.