Here is a link to the public repo:
Please excuse any architectural mistakes. I’m learning Python as I go with this, I’ve been a .NET / JS dev for my entire career.
It’s part of a larger project that I am building as a FoundryVTT module (and Menyr, when it comes out) that will provide an extensive library of special materials and a allow a GM to effortlessly generate recipes and add depth to crafting systems, an area that suffers from excessive abstraction in every TTRPG I’ve played.
Minerals (Metals, Crystals, Stones) get produced as a singular material. Plants & Creatures get produced with a list of “Parts” that are viable materials, so a “Manticore” would have a “Parts” array that contains information on it’s “Quills”, “Hide”, and/or “Fangs”.
It currently produces special materials like this:
{
"name": "Windrazer Steel",
"rarity": 3,
"value": 60,
"description": "Windrazer Steel is a rare, lightweight metal that is naturally attuned with airflow and elemental air magic. It is known for its exceptional speed enhancement properties when forged into weapons or armor.",
"resourceType": "MINERAL",
"resourceSubtype": "METAL",
"visualDescription": "Windrazer Steel has a shimmering, pale silver color with a subtle teal-blue sheen on its surface, reminiscent of the sky on a clear day. When struck by light, it emits a faint breeze that gently rustles nearby objects.",
"specialProperties": [
"Enhancement of speed-related abilities.",
"Attuned to elemental air magic."
],
"physicalProperties": [
"Lightweight",
"Smooth surface",
"Pale silver color with subtle teal-blue sheen"
],
"uses": [
"Making lightweight weapons and armor",
"Crafting wind-related magical artifacts",
"Creating airship components"
],
"density": 2.77,
"weight": 0.61
}