{"id":172919,"date":"2026-06-10T01:27:38","date_gmt":"2026-06-09T22:27:38","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/yarrp\/"},"modified":"2026-06-10T01:27:38","modified_gmt":"2026-06-09T22:27:38","slug":"yarrp","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/yarrp\/","title":{"rendered":"YARRP"},"content":{"rendered":"<p>Has it ever bothered you that so much configuration of blocks, items, recipes,<br \/>\nand now even enchantments is defined in untyped JSON files? Well then you should<br \/>\nprobably just use<br \/>\ndata generation which<br \/>\nis much more battle tested and even used by Mojang for the Vanilla data. _But_,<br \/>\nif you _also_ want to be able to adjust the data dynamically or want some things<br \/>\nto be configurable, then this might just be the thing for you. YARRP is inspired<br \/>\nby ARRP and<br \/>\nBRRP but written from the ground up with an<br \/>\neasy to use Kotlin API. It allows you to create resource packs (i.e. both data<br \/>\npacks and asset packs) at runtime, so you don&#8217;t need to have JSON files ready<br \/>\nfor all possible options.<\/p>\n<p>## Usage<\/p>\n<p>To add YARRP as a dependency, add the following to your `build.gradle.kts`:<\/p>\n<p>&#8220;`kotlin<br \/>\nrepositories {<br \/>\n    \/\/ you can use either one<br \/>\n    maven(&#8220;https:\/\/jitpack.io&#8221;)<br \/>\n    maven(&#8220;https:\/\/api.modrinth.com\/maven&#8221;)<br \/>\n}<\/p>\n<p>dependencies {<br \/>\n    \/\/ replace the versions and loader as needed. the loader is one of `fabric` or `neoforge`<br \/>\n    modImplementation(&#8220;com.github.RubixDev.YARRP:yarrp-mc1.21.1-fabric:v0.2.0&#8221;) \/\/ when using jitpack<br \/>\n    modImplementation(&#8220;maven.modrinth:yarrp:0.2.0+1.21.1-fabric&#8221;) \/\/ when using modrinth maven<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>Don&#8217;t forget to also list YARRP as a dependency in your `fabric.mod.json` and<br \/>\n`neoforge.mods.toml` files.<\/p>\n<p>You can then use YARRP by creating a pack and adding it to one of the register<br \/>\ncallbacks. Here&#8217;s an example:<\/p>\n<p>&#8220;`kotlin<br \/>\nobject MyModResources {<br \/>\n    \/\/ call this in your mod initializer<br \/>\n    fun register() {<br \/>\n        YarrpCallbacks.register(PackPosition.AFTER_VANILLA, ResourceType.SERVER_DATA) {<br \/>\n            add(PACK)<br \/>\n        }<br \/>\n    }<\/p>\n<p>    @JvmField<br \/>\n    val PACK = RuntimeResourcePack(<br \/>\n        RuntimeResourcePack.createInfo(<br \/>\n            Identifier.of(&#8220;modid&#8221;, &#8220;my_runtime_pack&#8221;),<br \/>\n            Text.of(&#8220;Pack Title&#8221;),<br \/>\n            &#8220;pack version&#8221;, \/\/ should probably be set to the version of your mod<br \/>\n        ),<br \/>\n        RuntimeResourcePack.createMetadata(Text.of(&#8220;pack description&#8221;)),<br \/>\n    )<\/p>\n<p>    val MY_ENCHANTMENT: RegistryKey<Enchantment> = PACK.addEnchantment(<br \/>\n        Identifier.of(&#8220;modid&#8221;, &#8220;my_enchantment&#8221;),<br \/>\n        Enchantment.definition(<br \/>\n            \/\/ this dummy type can be used to create a RegistryEntryList from a given TagKey<br \/>\n            \/\/ but should only be used for adding resources to a runtime pack<br \/>\n            DummyHolderSet(ItemTags.LEG_ARMOR_ENCHANTABLE),<br \/>\n            5,<br \/>\n            3,<br \/>\n            Enchantment.leveledCost(5, 8),<br \/>\n            Enchantment.leveledCost(55, 8),<br \/>\n            2,<br \/>\n            AttributeModifierSlot.LEGS,<br \/>\n        ),<br \/>\n    )<\/p>\n<p>    init {<br \/>\n        if (MyModSettings.myEnchantmentIsTreasure) {<br \/>\n            PACK.addTag(EnchantmentTags.TREASURE) { add(MY_ENCHANTMENT) }<br \/>\n        } else {<br \/>\n            PACK.addTag(EnchantmentTags.NON_TREASURE) { add(MY_ENCHANTMENT) }<br \/>\n        }<\/p>\n<p>        if (MyModSettings.enableRecipe) {<br \/>\n            PACK.addRecipeAndAdvancement(<br \/>\n                Identifier.of(&#8220;modid&#8221;, &#8220;my_recipe&#8221;),<br \/>\n                ShapedRecipeJsonBuilder.create(RecipeCategory.MISC, Items.DIAMOND, 64)<br \/>\n                    .criterion(&#8220;tick&#8221;, TickCriterion.Conditions.createTick())<br \/>\n                    .pattern(&#8220;\/\/&#8221;)<br \/>\n                    .pattern(&#8220;\/\/&#8221;)<br \/>\n                    .input(&#8216;\/&#8217;, Items.STICK),<br \/>\n            )<br \/>\n        }<br \/>\n    }<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>Full API documentation can be found at<br \/>\nyarrp.rubixdev.de.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Yet Another Runtime Resource Pack<\/p>\n","protected":false},"featured_media":172920,"template":"","meta":{"_minecraft_slug":"yarrp","_minecraft_project_id":"Z2RtCqwR","_minecraft_author":"RubixDev","_minecraft_license":"MPL-2.0","_minecraft_downloads":22464,"_minecraft_follows":3,"_minecraft_client_side":"optional","_minecraft_server_side":"optional","_minecraft_storage_type":"zip","_minecraft_archive_name":"yarrp.zip","_minecraft_size_bytes":6298040,"_minecraft_version_count":18,"_minecraft_updated_at":"2026-05-16T22:28:30.466294Z","_minecraft_date_created":"2025-11-20T08:07:43.439548Z","_minecraft_date_modified":"2025-11-17T20:45:12.968929Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/yarrp","_minecraft_icon_attachment_id":172920,"_minecraft_imported_at":"2026-06-09T22:27:39+00:00","_minecraft_import_hash":"5a03a973c9ab99cb78a6ddf26600b051","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[97,158],"mod_loader":[99,160],"minecraft_version":[101,102,62,37],"class_list":["post-172919","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-fabric","mod_category-neoforge","mod_loader-fabric","mod_loader-neoforge","minecraft_version-1-20-5","minecraft_version-1-20-6","minecraft_version-1-21","minecraft_version-1-21-1"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>YARRP - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/yarrp\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"YARRP - Minecraft\" \/>\n<meta property=\"og:description\" content=\"Yet Another Runtime Resource Pack\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/yarrp\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/yarrp\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/yarrp\\\/\",\"name\":\"YARRP - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/yarrp\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/yarrp\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/yarrp-icon-8f889af9f9e622de7932e48680eb64da854c39b5_96.webp\",\"datePublished\":\"2026-06-09T22:27:38+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/yarrp\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/yarrp\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/yarrp\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/yarrp-icon-8f889af9f9e622de7932e48680eb64da854c39b5_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/yarrp-icon-8f889af9f9e622de7932e48680eb64da854c39b5_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/yarrp\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"YARRP\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"YARRP - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/yarrp\/","og_locale":"en_US","og_type":"article","og_title":"YARRP - Minecraft","og_description":"Yet Another Runtime Resource Pack","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/yarrp\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/yarrp\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/yarrp\/","name":"YARRP - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/yarrp\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/yarrp\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/yarrp-icon-8f889af9f9e622de7932e48680eb64da854c39b5_96.webp","datePublished":"2026-06-09T22:27:38+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/yarrp\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/yarrp\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/yarrp\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/yarrp-icon-8f889af9f9e622de7932e48680eb64da854c39b5_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/yarrp-icon-8f889af9f9e622de7932e48680eb64da854c39b5_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/yarrp\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"YARRP"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/172919","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/172920"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=172919"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=172919"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=172919"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=172919"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}