Skip to content

gregates/gddb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

gddb is a command-line interface into the game data files for Grim Dawn, an action RPG created by Crate Entertainment. It can be used to explore the game files, and has several utilities for resolving the game files into more human-readable information. The motivating example is generating complete loot tables for monster infrequents (MIs) (see the loot command).

gddb is a work in progress and should be considered alpha software. It is built with rust and has only been tested on Ubuntu running on the Windows Subsystem for Linux (WSL) against game verison 1.2.1.6.

The author is not affilitated with Crate and cannot promise that the output of this program is correct. I have had to make several assumptions about how to interpret the game files; any one of them could be wrong. Compatibilty with past and future versions of the game is not guaranteed.

Installation

Install rust

git clone https://github.com/gregates/gddb.git
cd gddb
cargo install ./

Database files are not included. You must have Grim Dawn installed on your system for the program to work. You can specify the path to the game files by setting the GRIM_DAWN_INSTALL_PATH env variable.

On WSL, I recommend copying the data to a location in your linux filesystem, or all commands will run more slowly.

Commands

Show

Browse database files, with the files from all xpacs merged into a single file tree.

$ gddb show records/items/loottables/gearaccessories | head
lt_medal.dbr
lt_medal_a200.dbr
lt_medal_b010_balthazar_01.dbr
lt_medal_b011_moneybags_01.dbr
lt_medal_b012_halion_01.dbr
lt_medal_b013_bloodfeast_01.dbr
lt_medal_b014_gutworm_01.dbr
lt_medal_b015_nacrathan_01.dbr
lt_medal_b016_harvoul_01.dbr
lt_medal_b111_wendigoancient.dbr

$ gddb show records/items/loottables/gearaccessories/lt_medal_b010_balthazar_01.dbr
id: records/items/loottables/gearaccessories/lt_medal_b010_balthazar_01.dbr
kind: LevelTable
=======================
  levels=1,15
  records=records/items/loottables/geartorso/tdyn_torsolight_a01.dbr,records/items/loottables/gearaccessories/tdyn_medal_b10_balthazar.dbr
  Class=LevelTable
  templateName=database/templates/leveltable.tpl

Tab completion

The show command supports tab auto-complete of database file paths! This requires some setup in your shell. See gddb --completions [SHELL] for instructions.

Tag

Resolve a text tag, using the specified localization (default: English).

$ gddb tag tagGDX2FocusB206
Abaddoth's Sermons

$ gddb --language zh tag tagGDX2FocusB206
阿巴多斯的布道

Item

Find the database files referencing an item by substring match on the item's name.

$ gddb item Moosi
Multiple tags found, please disambiguate:
  Moosilauke's Pauldrons
  Moosilauke's Shoulderguards

$ gddb item "Moosilauke's Shoulderguards"
Moosilauke's Shoulderguards is referenced in the following database records:
  records/items/gearshoulders/b018c_shoulder.dbr
  records/items/gearshoulders/b018a_shoulder.dbr
  records/items/gearshoulders/b018e_shoulder.dbr
  records/items/gearshoulders/b018d_shoulder.dbr
  records/items/gearshoulders/b018b_shoulder.dbr

Loot

Resolve the loot table for an item. Accepts either a full path to a loot table file, or a (partial) item name. If given the latter, will use the highest level version of the item. Can specify parameters that modify the affix chances, like difficulty (default: Ultimate), enemy class (default: Boss), and challenge layer (default: none).

$ gddb loot "Wendigo Gaze" | head -n 9
3.16164605%     Wraithbound             of Mending
1.31735252%     Wraithbound             of Attack
1.31735252%     Wraithbound             of Protection
1.23802816%     Aggressive              of the Wild
1.23802816%     Aggressive              of the Untamed
1.23802816%     Aggressive              of Caged Souls
1.23802816%     Stalwart                of the Wild
1.23802816%     Stalwart                of the Untamed
1.23802816%     Stalwart                of Caged Souls

$ gddb loot --difficulty normal --enemy champion "Wendigo Gaze" | head -n 9
1.71753967%     Aggressive              of Mending
1.71753967%     Stalwart                of Mending
1.71753967%     Shrewd                  of Mending
1.71753967%     Mighty                  of Mending
1.71753967%     Mystic                  of Mending
1.71753967%     Vigorous                of Mending
1.41697022%     Prismatic               of Mending
1.41697022%     Impervious              of Mending
0.71564153%     Aggressive              of Attack

CSV

Outputs a csv file containing the fully resolved loot table for every MI in the game. Useful for exploring these loot tables in a sufficiently powerful spreadsheet program, such as Row Zero.

FAQ

Why not just use ArchiveTool.exe and the modding tools that come with the game?

When I first started exploring the game database, I did use ArchiveTool.exe to extract the game files to my filesystem, and explored them that way. But this is somewhat annoying to do and takes up disk space! And it slightly offends my programmer's sensibilities. The arz and arc file formats aren't that complicated, and we can just read the files in-place without having to extract them first.

Plus, this utility is composable with other programs, and can automate tasks (like resolving loot tables) that are a massive pain to do by manually reading the db files.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages