YARRP
by RubixDev
YARRP is a Kotlin library for generating data packs and resource packs at runtime, so a mod can build them from code instead of shipping JSON files.
What it does
Yet Another Runtime Resource Pack creates data packs and asset packs while the game runs. A developer registers a callback that adds entries to a pack, and YARRP assembles the files without any JSON written by hand. It is aimed at settings that a player or server owner may want to change, such as recipes, enchantments and item definitions, which can be driven by configuration instead of fixed files.
The library is inspired by ARRP and BRRP and was written from the ground up around a Kotlin API. Its generated output follows the vanilla data format, which the author describes as battle tested, and the approach relies on data generation rather than hand-maintained resource files. The mod runs on Fabric and NeoForge, and it is published for 1.20.5 – 1.21.1 with the 0.2.0+1.21.1 build for 1.21.1 marked as the latest file. YARRP is released under the Mozilla Public License 2.0, and its source code, issue tracker and wiki are public.
Installation needs Fabric Language Kotlin on Fabric, and Kotlin for Forge on NeoForge. Either side can run the library, and neither needs it to play the game, while Mod Menu adds an optional extra on Fabric.
Key features
Runtime data packs
Data packs are generated while the game runs, so no JSON files need to be prepared in advance.
Asset packs
Resource pack assets can be generated from code, covering both data and asset packs in one library.
Callback registration
A pack is built by registering callbacks that add entries, keeping each addition in a single place in the code.
Kotlin API
The library is exposed through a Kotlin API, and dependencies must be listed in the mod's metadata files.
Compatibility
Latest build for each game version and loader.
Only full game releases are shown. This mod publishes no snapshot builds.
Requirements
Dependencies declared by the latest file for each loader.
Required 1
Optional 1
Required by 1 mod
Use cases
Configurable content
A mod can read its configuration and generate recipes, items or enchantments that change when the settings change.
Dynamic adjustments
Values that a developer wants adjustable can be set in code, avoiding a separate static file for each variant.
Who it’s for: YARRP is for mod developers who want to generate data packs and asset packs from Kotlin code. It requires working knowledge of the Kotlin API and the dependency setup for Fabric or NeoForge.
Questions
Which dependencies does YARRP require?
Does a server need YARRP installed?
Which loaders and versions does YARRP support?
More from RubixDev
What the author says
Has it ever bothered you that so much configuration of blocks, items, recipes, and now even enchantments is defined in untyped JSON files? Well then you should probably just use data generation which is much more battle tested and even used by Mojang for the Vanilla data. But, if you also want to be able to adjust…
Official listing
- Modrinth page
- modrinth.com/mod/yarrp
- Owner
- RubixDev
- Published
- 2025-11-15
- Updated on Modrinth
- 2025-11-17
- Facts verified
- 2026-10-15
