How results are generated

This page describes how 3D Dice Roller turns your inputs into face values and a total, how those numbers are shown, what stays on your device, and what the tool does not claim to be.

Result generation and fairness boundaries

Each die face is produced in the shared utility-core dice helpers. The helper asks the browser for random data with crypto.getRandomValues, then uses rejection sampling so the final integer is evenly distributed across the die’s faces (values from 1 through the number of sides).

That approach is appropriate for casual tabletop play and classroom demos. It is not a certified random-number product, lottery system, regulated gambling service, or audited tournament adjudicator.

Notation and input processing

Roll notation runs the text in Dice notation through a parser before any faces are drawn. Supported shapes look like d20, 2d6, 2d6+3, or 4d8-1: an optional count, the letter d, a side count, and an optional + or − modifier.

How many, Sides, and Modifier keep a matching notation string in sync when you use the steppers. If parsing fails, the tool shows the error next to the field and does not roll.

Totals, modifiers, and result display

The tool draws one face per die, lists those faces, then applies the modifier to their sum to produce the total shown in the result area.

Copy result copies a single formatted line for the last completed roll (notation, faces, modifier when present, and total). History keeps recent completed rolls in order on this device.

3D tray versus non-3D fallback

When a 3D throw runs, the numeric outcome is already chosen; the tray animates and settles to present that outcome. Settling does not draw a second independent result.

Some rolls never use the 3D engine—for example d100 quick dice are excluded from the 3D side set because that engine’s d100 model is not a 1–100 die. In those cases, and whenever 3D cannot start, a lightweight graphical view still shows the same pre-chosen faces and total.

Presets, history, storage, and reset

Presets (up to twelve notation strings) and history (up to fifty rolls), along with mode and preference fields, are written to this browser’s localStorage under keys prefixed with utility-sites:dice:.

Reset storage asks for confirmation, then clears that dice namespace and restores default settings. Roll data is not uploaded as a server-side log for adjudication.

Limits and non-guarantees

There is no built-in advantage/disadvantage toggle, exploding-dice syntax, keep-highest automation, or publisher rules engine.

Stepper limits are How many 1–40, Sides 2–1000 (Regular (d6) fixed at 6), and Modifier on the control within ±999. The notation parser accepts a wider digit range; prefer the field examples and steppers for everyday use.

This site does not replace table agreement, a game master’s rulings, certification paperwork, or regulated gambling infrastructure.