Skip to main content

parse ELDEN RING files into JSON

Project description

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:

  • generate: Generate JSON data for specified tables.
  • find-values: Find all possible values of a field per param name.
  • calculate-ar: Calculate attack power of an armament.
  • changelog: Create a changelog of ERDB-detectable differences between specified versions.
  • source: Extract gamedata from an UXM-unpacked ELDEN RING installation (Windows only).
  • map: Extract world map image from an UXM-unpacked ELDEN RING installation (Windows only).
  • icons: Extract item images from an UXM-unpacked ELDEN RING installation (Windows only).
  • serve-api: Begin serving the API web server.

Data features

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

Reliable sources

  • All the data is ripped straight from the game files using Yabber and ERExporter.
  • Mild dependency on Yapped Rune Bear's Paramdex for naming of a few properties.

99%1 of data is autogenerated

  • Values are free from human error and always up-to-date.
  • Values are effortlessly regenerated with new game releases.
  • Convoluted game parameters are converted into a coherent layout, harmless2 information loss.

User contributed information

  • Made in mind with user contributions, new findings can be available in every adaptation of the database.
  • Interesting remarks about an item or a weapon's true combo list is kept up to date.
  • Designed for easy PRs where every item is contained within its own file.
  • Ability to specify game version ranges for which a particular information is valid.
  • Each human change is checked for correctness (by accepting a PR) and validity (by CI) [COMING SOON].

Thought-through structure

  • Structure of JSON designed as shallow and straightforward to parse as possible.
  • Digging into nested fields is avoided, while retaining a logically sensible layout.
  • Layout adheres to a strictly defined schema with the help of Pydantic, ensuring integrity of all values.
  • FastAPI sets up REST endpoints with OpenAPI-compatible documentation.

Availablility

  • Public webserver providing a REST API for remote data retrieval (see Usage section).
  • Generate the data yourself and embed it in your app.
  • Every released game version is supported, from 1.02.1 and up (sources).

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).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

erdb-0.2.1.tar.gz (9.0 MB view details)

Uploaded Source

Built Distribution

erdb-0.2.1-py3-none-any.whl (9.1 MB view details)

Uploaded Python 3

File details

Details for the file erdb-0.2.1.tar.gz.

File metadata

  • Download URL: erdb-0.2.1.tar.gz
  • Upload date:
  • Size: 9.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for erdb-0.2.1.tar.gz
Algorithm Hash digest
SHA256 098b5bd1d0a9fdaf8cf32fc2904359b13667cf0a69cb0482aae56935683f60b5
MD5 e355ee456c7d8bb9a1b75acdc18f57ec
BLAKE2b-256 fc6abe42617db92d0edd3a6bdaea4a20c585d33d3d44c422a5e36c0bf0748702

See more details on using hashes here.

File details

Details for the file erdb-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: erdb-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 9.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for erdb-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bf6692f7d69293816f695122020983ae3969aecaddb8b605f5355cf4ccdeacce
MD5 0fff2c24c78f01da18d605fb1a040b9b
BLAKE2b-256 b25a05b7a24c692f47a3502f93e09690cae24f75463856bda3d9d0a6193a3e57

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page