Dice Roller · observed 2026-08-17

Read a dice roll, then compare the face counts

Check the faces and modifier behind a roll’s total, then read the historical face counts. A face’s deviation measures distance from an even split—not the distance between the most and least frequent faces.

Verbatim Dice Roller face-count bars from 6,000 one-d6 calls against a 1,000-per-face reference, recorded 2026-08-17
Production logical-generator sample, 2026-08-17: 6,000 one-d6 calls, not 6,000 animated rolls.

Read the faces before the total

2d6+3 asks for two six-sided dice, then adds three once to their sum. Inside the brackets are the faces; outside is the modifier. The total alone cannot identify the faces.

The historical observation from contains two receipts: [2 + 4] + 3 = 9 and [5 + 4] + 3 = 12.

Two new production-interface rolls on returned the breakdowns shown alongside. Add the faces and modifier to check each displayed total.

2026-09-13 · 2d6+3

First breakdown: [ 1 + 1 ] + 3
Total: 5

Second breakdown: [ 3 + 5 ] + 3
Total: 11

Both rolls reached the completed result state. Reduced motion was active in Chromium 148.0.7778.96.

“Ready” is not a new roll

Two more inputs produced no new roll. Applying 0d6 with Use changed the notation to 1d6: the interface substituted one die rather than rejecting zero dice.

The old total 11 remained visible beside Ready: 1d6. It still belonged to the preceding 2d6+3 roll. Before reading a result, check whether the interface is ready to roll or has actually completed one.

2dfoo → ?!

Invalid syntax, 2026-09-13

The notation help read: “Use notation like d20, 2d6, 5d6+2, 1d100, or 1d100-percentile.”

Unlike 0d6, this input produced an error indicator, not an adjusted ready notation.

Two different ways to describe the spread

The historical sample recorded 6,000 one-d6 calls on . The counts sum to 6,000; divide by six for a uniform reference of 1,000 per face, not a requirement that every batch split evenly.

Subtract 1,000 from each count and discard the sign: 43, 58, 26, 14, 42, 67. The largest is the maximum absolute deviation: face 6 is 67 below the reference. Range uses the original counts instead: largest minus smallest, 1043 - 933 = 110.

Scroll →
Historical observation, 2026-08-17: 6,000 calls to the logical generator. Counts retained from that run, not collected again in September.
FaceCountDistance from 1,000
11,04343
294258
31,02626
41,01414
51,04242
693367

The sample stops at the logical generator

The August run called DICE_CORE.generateLogicalResult in the production page’s loaded core module—not 6,000 clicks through the animation. Its counts describe that logical-generator run, not the physical/WebGL or other fallback paths.

September’s two completed UI rolls and two input checks used reduced motion. The five loaded scripts matched the recorded source hashes and were unchanged before and after. This was a stable-version interface check, not a new distribution sample or verification of physical rendering.

Description, not certification

LIMIT No significance threshold or randomness audit was applied to the historical counts. They neither certify fairness nor rule out bias, and they do not predict another run.

Keep this utility to tabletop and casual use, not gambling or certified draws.

For your next tabletop roll, copy 2d6+3, apply it and check the ready notation. Roll, wait for completion, then keep the faces, modifier and total together.

Open Dice Roller →