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:
- Python package:
pip install erdb
makes it accessible from CLI by callingerdb
(CLI manual). - Docker image: Python package in form of a Docker image accepting same arguments (package page).
- Docker API image: built on the regular image, only serves the REST API on port
8107
(package page). - 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.generate-wiki
: Generate a static Wikipedia website.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file erdb-0.4.0.tar.gz
.
File metadata
- Download URL: erdb-0.4.0.tar.gz
- Upload date:
- Size: 11.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3009e50d0128a8b8a23264c19e0193f3adb79a3ed5003ad1065c23287958e972 |
|
MD5 | 59c20191a175fb5412e2346e015a96f3 |
|
BLAKE2b-256 | f3513a059f07dc772d5a4c6e0386d7fd0d338b6026e693b6f4dd68c68e181d93 |
File details
Details for the file erdb-0.4.0-py3-none-any.whl
.
File metadata
- Download URL: erdb-0.4.0-py3-none-any.whl
- Upload date:
- Size: 11.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 032bbbb2451a4ad8b5694cda2280456b6a7c03043ce13fecb7c07a8b45efad8f |
|
MD5 | d4f136b1cfdc50c8dca9f07d9e1bd52a |
|
BLAKE2b-256 | bb1526f187c3f6a037e7fff522f0726b0ab0052ae13717ff75bf9affd190738e |