Skip to content

Game Comparison

RANDSUM supports six tabletop RPG systems, each with its own dice mechanics and outcome types. Use the comparison below to find the right package for your game.

Every game package wraps the core @randsum/roller engine, so they all share the same reliable dice rolling foundation. The difference is in how each package validates input, configures the roll, and interprets the result.

GameDiceInputOutcomesPackage
D&D 5th Edition1d20 or 2d20modifier + rollingWith
Numeric total
@randsum/fifth
Blades in the DarkNd6 pool (0-10)count (number)
criticalsuccesspartialfailure
@randsum/blades
Daggerheart2d12 hope/fear + d6modifier + rollingWith + amplify
Hope/Fear typetotaldetails
@randsum/daggerheart
Powered by the Apocalypse2d6stat + forward + ongoing + advantage
strong_hitweak_hitmiss
@randsum/pbta
Root RPG2d6bonus (number, -20 to +20)
Strong HitWeak HitMiss
@randsum/root-rpg
Salvage Union1d20tableName (string)
labeldescriptionhit type
@randsum/salvageunion

D&D 5th Edition

@randsum/fifth

Classic d20 system with advantage and disadvantage support for ability checks, saving throws, and attack rolls.

Dice1d20 or 2d20
Inputmodifier + rollingWith
Exampleroll({ modifier: 5, rollingWith: "Advantage" })
Outcomes
Numeric total
View documentation

Blades in the Dark

@randsum/blades

Dice pool system where you read the highest die. Zero dice means rolling two and keeping the lowest.

DiceNd6 pool (0-10)
Inputcount (number)
Exampleroll(3)
Outcomes
criticalsuccesspartialfailure
View documentation

Daggerheart

@randsum/daggerheart

Dual d12 hope and fear dice with optional amplification and advantage/disadvantage.

Dice2d12 hope/fear + d6
Inputmodifier + rollingWith + amplify
Exampleroll({ modifier: 3, rollingWith: "Advantage" })
Outcomes
Hope/Fear typetotaldetails
View documentation

Powered by the Apocalypse

@randsum/pbta

Universal 2d6+stat engine for Dungeon World, Monster of the Week, Apocalypse World, Masks, and more.

Dice2d6
Inputstat + forward + ongoing + advantage
Exampleroll({ stat: 2, forward: 1 })
Outcomes
strong_hitweak_hitmiss
View documentation

Root RPG

@randsum/root-rpg

Woodland adventure RPG using 2d6+bonus with three-tier outcome resolution.

Dice2d6
Inputbonus (number, -20 to +20)
Exampleroll(2)
Outcomes
Strong HitWeak HitMiss
View documentation

Salvage Union

@randsum/salvageunion

D20 table-based resolution system for mech salvage operations with multiple result tables.

Dice1d20
InputtableName (string)
Exampleroll("Core Mechanic")
Outcomes
labeldescriptionhit type
View documentation
  • Building a D&D character sheet? Use @randsum/fifth for d20-based rolls with advantage/disadvantage.
  • Running a Blades in the Dark campaign? Use @randsum/blades for dice pool resolution with four outcome tiers.
  • Playing a PbtA game? Use @randsum/pbta for the universal 2d6+stat engine that works across the entire Powered by the Apocalypse family.
  • Exploring Daggerheart? Use @randsum/daggerheart for hope/fear dual-die mechanics.
  • Adventuring in the Woodland? Use @randsum/root-rpg for Root’s 2d6+bonus system.
  • Piloting mechs? Use @randsum/salvageunion for d20 table-based resolution.

Install only what you need. Each package pulls in @randsum/roller automatically.

Terminal window
bun add @randsum/fifth # D&D 5e
bun add @randsum/blades # Blades in the Dark
bun add @randsum/pbta # Powered by the Apocalypse
bun add @randsum/daggerheart # Daggerheart
bun add @randsum/root-rpg # Root RPG
bun add @randsum/salvageunion # Salvage Union