Reference implementations for computing a Grim Dawn item's real, seed-applied stats from the raw fields of its records plus the item seed, by replaying the game's MINSTD random stream in the exact draw order the game engine uses.
These SDKs are meant to be integrated into third-party tools that already parse the game database — they carry no stat/data files, only the rolling algorithm. Each is self-contained with zero dependencies; integrate by project reference or by copying the source files.
All three expose the same simple entry point:
calculate(baseStats, prefix, suffix, seed, modifier) -> ordered list of (field, value)
baseStats is required; prefix, suffix and modifier are optional (may be null). modifier is the blacksmith completion bonus. Each is a field -> value
map of strings, exactly as parsed from the game database. The result is an ordered list in the
game's draw order.
| SDK | Folder | Notes |
|---|---|---|
| C# | csharp-sdk/ |
net8.0, GrimDawnItemStats.Calculator.Calculate(...) |
| JavaScript | javascript-sdk/ |
ES modules, calculate(...) from src/index.js |
| Java | java-sdk/ |
Java 8+, com.grimdawn.itemstats.Calculator.calculate(...) |
See each folder's README.md for language-specific usage.
- Models the base record plus optional prefix / suffix affixes.
- Does not model components, augments, relics, asterkarn affixes, or set-completion bonuses.
Provided as-is, as a guide for third-party implementations. No support or bug reports.