SANDBOX — this is a test environment. No servers are actually deployed and no real payments are charged.
✓ VerifiedGameplay & overhauls

YARRP

by RubixDev · for Minecraft

Yet Another Runtime Resource Pack

40KDownloads
11 mo agoLast updated
MPL-2.0License
Fabric · NeoForgeLoaders

About YARRP

From Modrinth

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.

Highlights

From source data

Game versions

Supports 4 Minecraft versions, the newest being 1.21.1.

Loaders

Runs on Fabric and NeoForge.

Footprint

Rated a light load on a server.

What kind of mod it is

From the catalog
Listed on Modrinth as “Mods”

Gameplay & overhauls

New mechanics, content and overhauls that change how the game plays.

Works on a server

From source side support

Modrinth lists server-side support for YARRP as optional: it can run on a server, but isn’t required there.

Compatibility

Game
Minecraft
Loaders
FabricNeoForge
Runs on
Serveroptional on the server
Game versions
1.21.1 and 3 earlier

Verified at the source

  • ✓ModrinthOfficial listing, checked 2026-10-01Open ↗
  • ✓AuthorRubixDev, as published on Modrinth
  • ✓LicenseMPL-2.0Free

YARRP, answered

Generated from the mod’s own source data.

Do my players need to install YARRP?

Modrinth lists server-side support for YARRP as optional: it can run on a server, but isn’t required there.

Which loaders does it support?

Fabric and NeoForge.

Is it free?

Yes. YARRP is free to download from Modrinth. Its license is MPL-2.0.

How do I add it to my Nxeon server?

Use “Add to a server” on this page, or open NxLabs from your dashboard. We install it, restart your server and switch it on.

NxLabs

Run YARRP on a Minecraft server.

Deploy in about a minute from $4.20 a month, then add YARRP in one click.