Lib Data Potential (LibDP)
This project requires Fabric. The project is still under development, and documentation is currently limited to java documentation.
Let's play!
Lib Data Potential, also known as LibDP, opens up new capabilities for advanced customization of data-driven systems.
This mod is open source and distributed under a permissive license, allowing its free use in any modpacks and on any platforms without prior permission. We're pleased to know when people use our mods, but you don't need to ask us about it.
Diskettes
Diskettes are user scripts written in languages compatible with Parchment. These scripts allow manipulation of data-driven structures in ways that aren't possible with JSON or other libraries. Diskettes support turing-complete conditional checks for recipe craftability, including analysis of player and world state.
Specialization
The previous version of LibCD used a Tweakers system that performed functions similar to diskettes. However, it had a significantly broader scope and the ability to add standard versions of all common vanilla recipe types. This led to significant project bloat and made creating satisfactory documentation practically impossible. LibDP consciously narrows its specialization and will include built-in support only for functions that cannot be implemented using other libraries.
Alternative Solutions
Given LibDP's narrow specialization, here are some scenarios for which this library is not suitable:
Simple Addition of a Few Recipes
Standard Vanilla JSON recipes are perfectly suitable for simple recipe modifications, as that's what they were created for. The recipe builder by thedestruc7i0n is an excellent helper for creating JSON recipes.
Bulk Recipe Editing
KubeJS is better suited for editing existing recipes and has excellent tools for bulk recipe addition. This library is well-documented and supports many other functions, including creating custom blocks and items.
Working with Custom NBT Data
NBT Crafting adds NBT support for input and output data of JSON recipes. Its dollar system also allows output NBT to depend on input NBT. If you want to create complex recipes without needing to learn full programming, this is your best choice.
Backward Compatibility
The project repository contains a legacy folder containing components of outdated loot and recipe systems, updated from LibCD names to LibDP names. You can freely use them to create a compatibility system with features removed from LibDP. Pay attention to the packages in each of the files.