JSPM

@motioneffector/stats

1.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2
  • Score
    100M100P100Q23941F
  • License MIT

TypeScript library for RPG stats, dice rolling, and stat checks with full D&D 5e-style mechanics

Package Exports

  • @motioneffector/stats
  • @motioneffector/stats/testing

Readme

@motioneffector/stats

A TypeScript library for RPG stat management with D&D 5e-style mechanics, dice rolling, and stat checks.

npm version license TypeScript

Features

  • Flexible Dice Rolling - Full notation parser with advantage, keep/drop, exploding, and rerolls
  • Stat Management - Define stats with bounds, modifiers, and automatic calculations
  • D&D 5e-Style Checks - Advantage/disadvantage, custom dice, and bonuses
  • Derived Stats - Auto-updating computed stats based on dependencies
  • Duration System - Temporary and permanent modifiers with expiration
  • Roll History - Track all rolls for audit trails
  • Stat Templates - Create reusable stat block configurations
  • Serialization - Save and restore complete stat block state

Read the full manual →

Quick Start

import { createStatBlock, roll, check } from '@motioneffector/stats'

// Create a character with stats
const hero = createStatBlock({
  strength: { base: 16, min: 1, max: 20 },
  dexterity: { base: 14, min: 1, max: 20 },
  health: { base: 45, min: 0, max: 100 }
})

// Roll dice with full notation support
const damage = roll('2d6+3')  // { total: 11, rolls: [4, 4], modifier: 3 }

// Make a strength check with D&D 5e mechanics
const result = check(hero, 'strength', { difficulty: 15 })
// { success: true, roll: 14, modifier: 3, total: 17 }

Testing & Validation

  • Comprehensive test suite - 367 unit tests covering core functionality
  • Fuzz tested - Randomized input testing to catch edge cases
  • Strict TypeScript - Full type coverage with no any types
  • Zero dependencies - No supply chain risk

License

MIT © motioneffector