Mineuniverse
Log in Register
Mods

YARRP

Yet Another Runtime Resource Pack
by RubixDev
Download Claim this project
20,014 downloads
0 likes
Updated Jul 6, 2026
0 hypes
API and Library

YARRP - Yet Another Runtime Resource Pack

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 the data dynamically or want some things to be configurable, then this might just be the thing for you. YARRP is inspired by ARRP and BRRP but written from the ground up with an easy to use Kotlin API. It allows you to create resource packs (i.e. both data packs and asset packs) at runtime, so you don't need to have JSON files ready for all possible options.

Usage

To add YARRP as a dependency, add the following to your build.gradle.kts:

repositories {
    // you can use either one
    maven("https://jitpack.io")
    maven("https://api.modrinth.com/maven")
}

dependencies {
    // replace the versions and loader as needed. the loader is one of `fabric` or `neoforge`
    modImplementation("com.github.RubixDev.YARRP:yarrp-mc1.21.1-fabric:v0.2.0") // when using jitpack
    modImplementation("maven.modrinth:yarrp:0.2.0+1.21.1-fabric") // when using modrinth maven
}

Don't forget to also list YARRP as a dependency in your fabric.mod.json and neoforge.mods.toml files.

You can then use YARRP by creating a pack and adding it to one of the register callbacks. Here's an example:

object MyModResources {
    // call this in your mod initializer
    fun register() {
        YarrpCallbacks.register(PackPosition.AFTER_VANILLA, ResourceType.SERVER_DATA) {
            add(PACK)
        }
    }

    @JvmField
    val PACK = RuntimeResourcePack(
        RuntimeResourcePack.createInfo(
            Identifier.of("modid", "my_runtime_pack"),
            Text.of("Pack Title"),
            "pack version", // should probably be set to the version of your mod
        ),
        RuntimeResourcePack.createMetadata(Text.of("pack description")),
    )

    val MY_ENCHANTMENT: RegistryKey<Enchantment> = PACK.addEnchantment(
        Identifier.of("modid", "my_enchantment"),
        Enchantment.definition(
            // this dummy type can be used to create a RegistryEntryList from a given TagKey
            // but should only be used for adding resources to a runtime pack
            DummyHolderSet(ItemTags.LEG_ARMOR_ENCHANTABLE),
            5,
            3,
            Enchantment.leveledCost(5, 8),
            Enchantment.leveledCost(55, 8),
            2,
            AttributeModifierSlot.LEGS,
        ),
    )

    init {
        if (MyModSettings.myEnchantmentIsTreasure) {
            PACK.addTag(EnchantmentTags.TREASURE) { add(MY_ENCHANTMENT) }
        } else {
            PACK.addTag(EnchantmentTags.NON_TREASURE) { add(MY_ENCHANTMENT) }
        }

        if (MyModSettings.enableRecipe) {
            PACK.addRecipeAndAdvancement(
                Identifier.of("modid", "my_recipe"),
                ShapedRecipeJsonBuilder.create(RecipeCategory.MISC, Items.DIAMOND, 64)
                    .criterion("tick", TickCriterion.Conditions.createTick())
                    .pattern("//")
                    .pattern("//")
                    .input('/', Items.STICK),
            )
        }
    }
}

Full API documentation can be found at yarrp.rubixdev.de.

[NeoForge] [1.20.6] YARRP v0.2.0
MC 1.20.5, 1.20.6, NeoForge
Beta 2025-11-17 Get
[Fabric] [1.21.1] YARRP v0.2.0
MC 1.21, Fabric, 1.21.1
Beta 2025-11-17 Get

More from RubixDev

Rug
6,668
EnchantedShulkers
21,823
Carpet Gamerules
10,718

You Might Also Like

Vivecraft
A Minecraft VR mod on a loader of your choice!
9,988,339
Athena
A crossplatform (Forge/Fabric) solution to connected block textures for 1.19.4+
99,799,527
Lodestone
A collection of code used throughout projects under the Lodestar team.
9,914,417
TheDragonLib
A library for most of sokratis12GR's Mods
9,910,232
Multi Mob Library
A library mod containing essential files for Daveyx0's mob mods
9,892,767
FTB Library (Forge) (Legacy)
FTB Library is a library mod that is used for some of our mods.
98,265,314