Package: erdb
ERDB: tool for parsing ELDEN RING filesWhat this isERDB 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 forERDB 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 inUsagesection) 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.UsageThere are several ways to use ERDB, and you're probably looking for the last one:Python package:pip install erdbmakes 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 port8107(package page).Public REST service: REST API is available without a need to use ERDB directly (docs,alt docs).Tool featuresThis 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 featuresAdopting the database in a project is beneficial beyond just providing the data itself:Reliable sourcesAll the data is ripped straight from the game files usingYabberandERExporter.Mild dependency on Yapped Rune Bear'sParamdexfor naming of a few properties.99%1of data is autogeneratedValues 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, harmless2information loss.User contributed informationMade 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 structureStructure 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 ofPydantic, ensuring integrity of all values.FastAPIsets up REST endpoints with OpenAPI-compatible documentation.AvailablilityPublic webserver providing a REST API for remote data retrieval (seeUsagesection).Generate the data yourself and embed it in your app.Every released game version is supported, from 1.02.1 and up (sources).1Some values or means of retrieving them are hardcoded in very specific cases, all listedhere.2Only 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).