ModsFinder

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.

FabricNeoForgeClient or server, optionalMozilla Public License 2.0Open source1.20.5 – 1.21.1

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

  1. Runtime data packs

    Data packs are generated while the game runs, so no JSON files need to be prepared in advance.

  2. Asset packs

    Resource pack assets can be generated from code, covering both data and asset packs in one library.

  3. Callback registration

    A pack is built by registering callbacks that add entries, keeping each addition in a single place in the code.

  4. 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.

No stable releases
Every published file is a beta or alpha build.
1.21.10.2.0+1.21.10.2.0+1.21.1
1.210.2.0+1.21.10.2.0+1.21.1
1.20.60.2.0+1.20.60.2.0+1.20.6
1.20.50.2.0+1.20.60.2.0+1.20.6
ReleaseBetaAlphaNot available

Only full game releases are shown. This mod publishes no snapshot builds.

Requirements

Dependencies declared by the latest file for each loader.

Required 1

Fabric Language KotlinThis is a mod that enables usage of the Kotlin programming language for Fabric mods.
Required

Optional 1

Mod MenuAdds a mod menu to view the list of mods you have installed.
Optional

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?

Fabric Language Kotlin is required on Fabric, and Kotlin for Forge is required on NeoForge. Mod Menu is optional.

Does a server need YARRP installed?

No. Either side can run it, and neither needs it, so a server can run without the library.

Which loaders and versions does YARRP support?

It is published for Fabric and NeoForge across 1.20.5 – 1.21.1, with builds for 1.20.5, 1.20.6, 1.21 and 1.21.1.

More from RubixDev

All projects

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…
RubixDev, on the Modrinth page

Official listing

Owner
RubixDev
Published
2025-11-15
Updated on Modrinth
2025-11-17
Facts verified
2026-10-15