EldenRingDatabase / erdb

JSON schema and data parser for ELDEN RING
MIT License
47 stars 8 forks source link

ERDB: tool for parsing ELDEN RING files

What this is

ERDB is a CLI tool for parsing an ELDEN RING installation and converting it into a more display-friendly structure in JSON format. For example, it can collect data from multiple game params about an item and compile it to a single JSON object holding all the properties you could find on a Wikipedia page about it. This is only the main functionality and it covers all in-game items and more, with a possibility to extend the features thanks to the mini-framework for interacting with ELDEN RING files.

Who this is for

ERDB is primarily targeted at people developing tools and mods for ELDEN RING. You can generate data from your installation (native or modded), or use the public REST API (outlined in Usage section) for any existing version of the game. If you ever created a build planner or any sort of a tool which needs to deal with in-game items, you know how painful it is to get a hold of and store the data and assets. This is an attempt at unifying that data into something that is easily accessible and parsed by anyone, with instant updates when a new game version releases.

Usage

There are several ways to use ERDB, and you're probably looking for the last one:

  1. Python package: pip install erdb makes it accessible from CLI by calling erdb (CLI manual).
  2. Docker image: Python package in form of a Docker image accepting same arguments (package page).
  3. Docker API image: built on the regular image, only serves the REST API on port 8107 (package page).
  4. Public REST service: REST API is available without a need to use ERDB directly (docs, alt docs).

Tool features

This is a short summary of all subcommands ERDB provides as a CLI tool:

Data features

Adopting the database in a project is beneficial beyond just providing the data itself:

Reliable sources

99%1 of data is autogenerated

User contributed information

Thought-through structure

Availablility

1 Some values or means of retrieving them are hardcoded in very specific cases, all listed here. \ 2 Only unnecessary information is lost, ex. armor pieces have separate values for bleed/frostbite, but are treated as a single "robustness" value in ERDB (as are in-game).