{"id":16453,"date":"2026-05-31T22:06:12","date_gmt":"2026-05-31T19:06:12","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/anvil-lib\/"},"modified":"2026-05-31T22:06:12","modified_gmt":"2026-05-31T19:06:12","slug":"anvil-lib","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/anvil-lib\/","title":{"rendered":"AnvilLib"},"content":{"rendered":"<p># AnvilLib<\/p>\n<p>![Minecraft](https:\/\/minecraft.net\/)<br \/>\n![Maven Central](https:\/\/central.sonatype.com\/search?q=anvillib)<br \/>\n![NeoForge](https:\/\/neoforged.net\/)<br \/>\n![License](https:\/\/opensource.org\/licenses\/MIT)<\/p>\n<p>**AnvilLib** is a NeoForge mod library developed by Anvil Dev, providing Minecraft mod developers with a<br \/>\nseries of practical tools and frameworks.<\/p>\n<p>## Features<\/p>\n<p>AnvilLib adopts a modular design and includes the following functional modules:<\/p>\n<p>| Module                    | Description                                       |<br \/>\n|&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;|&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;|<br \/>\n| **Config**                | Annotation-based configuration system             |<br \/>\n| **Integration**           | Mod compatibility integration framework           |<br \/>\n| **Network**               | Networking API with automatic packet registration |<br \/>\n| **Recipe**                | In-world recipe system                            |<br \/>\n| **Moveable Entity Block** | Support for block entities movable by pistons     |<br \/>\n| **Registrum**             | Simplified registration system                    |<br \/>\n| **Main**                  | Aggregated module that bundles all submodules     |<\/p>\n<p>## Module Introduction<\/p>\n<p>### Config Module<\/p>\n<p>Provides an annotation-based configuration management system to simplify the definition and management of mod configurations.<\/p>\n<p>**Key Features:**<\/p>\n<p>&#8211; Define configuration classes using `@Config` annotation<br \/>\n&#8211; Add configuration comments with `@Comment`<br \/>\n&#8211; Define numerical ranges with `@BoundedDiscrete`<br \/>\n&#8211; Create nested configurations with `@CollapsibleObject`<br \/>\n&#8211; Automatically generate client configuration GUI<\/p>\n<p>**Usage Example:**<\/p>\n<p>&#8220;`java<\/p>\n<p>@Config(name = &#8220;my_mod&#8221;, type = ModConfig.Type.COMMON)<br \/>\npublic class MyModConfig {<br \/>\n    @Comment(&#8220;Enable debug mode&#8221;)<br \/>\n    public boolean debugMode = false;<\/p>\n<p>    @Comment(&#8220;Maximum count&#8221;)<br \/>\n    @BoundedDiscrete(min = 1, max = 100)<br \/>\n    public int maxCount = 10;<br \/>\n}<\/p>\n<p>\/\/ Register configuration<br \/>\nMyModConfig config = ConfigManager.register(&#8220;my_mod&#8221;, MyModConfig::new);<br \/>\n&#8220;`<\/p>\n<p>### Integration Module<\/p>\n<p>Provides a framework for mod integrations, supporting automatic loading of integration code based on the presence of other mods.<\/p>\n<p>**Key Features:**<\/p>\n<p>&#8211; Declare integration classes with `@Integration` annotation<br \/>\n&#8211; Support for version range matching<br \/>\n&#8211; Support for different runtime environments (CLIENT \/ DEDICATED_SERVER \/ DATA)<\/p>\n<p>**Usage Example:**<\/p>\n<p>&#8220;`java<\/p>\n<p>@Integration(value = &#8220;jei&#8221;, version = &#8220;19.0,)&#8221;)<br \/>\npublic class JEIIntegration {<br \/>\n    public void init() {<br \/>\n        \/\/ JEI integration logic<br \/>\n    }<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>### Network Module<\/p>\n<p>Provides a NeoForge networking abstraction with package-based packet auto-registration.<\/p>\n<p>**Key Features:**<\/p>\n<p>&#8211; Define packet direction using `IClientboundPacket` \/ `IServerboundPacket` \/ `IInsensitiveBiPacket`<br \/>\n&#8211; Automatically register packet classes in a package via `NetworkRegistrar.register(&#8230;)`<br \/>\n&#8211; Supports `PLAY`, `CONFIGURATION`, and `COMMON` protocols<\/p>\n<p>**Usage Example:**<\/p>\n<p>&#8220;`java<\/p>\n<p>@SubscribeEvent<br \/>\npublic static void onRegisterPayload(RegisterPayloadHandlersEvent event) {<br \/>\n    PayloadRegistrar registrar = event.registrar(&#8220;1&#8221;);<br \/>\n    NetworkRegistrar.register(registrar, &#8220;my_mod&#8221;);<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>### Recipe Module<\/p>\n<p>Provides an in-world recipe system, allowing recipes to be executed in the world (rather than in crafting tables).<\/p>\n<p>**Key Features:**<\/p>\n<p>&#8211; Supports custom recipe triggers (Trigger)<br \/>\n&#8211; Supports recipe predicates (Predicate) for conditional checks<br \/>\n&#8211; Supports multiple recipe outcomes (Outcome)<br \/>\n&#8211; Built-in priority system<br \/>\n&#8211; Full datapack support<\/p>\n<p>**Recipe Components:**<\/p>\n<p>&#8211; **Trigger**: Conditions to trigger the recipe (e.g., item dropping, explosions)<br \/>\n&#8211; **Predicate**: Recipe matching conditions<br \/>\n&#8211; **Outcome**: Recipe execution results (e.g., spawning items, setting blocks)<\/p>\n<p>### Moveable Entity Block Module<\/p>\n<p>Allows blocks with block entities to be pushed by pistons while preserving their data.<\/p>\n<p>**Usage Example:**<\/p>\n<p>&#8220;`java<br \/>\npublic class MyBlock extends Block implements IMoveableEntityBlock {<br \/>\n    @Override<br \/>\n    public CompoundTag clearData(Level level, BlockPos pos) {<br \/>\n        \/\/ Return block entity data to preserve<br \/>\n        BlockEntity be = level.getBlockEntity(pos);<br \/>\n        return be != null ? be.saveWithoutMetadata(level.registryAccess()) : new CompoundTag();<br \/>\n    }<\/p>\n<p>    @Override<br \/>\n    public void setData(Level level, BlockPos pos, CompoundTag nbt) {<br \/>\n        \/\/ Restore block entity data at new position<br \/>\n        BlockEntity be = level.getBlockEntity(pos);<br \/>\n        if (be != null) {<br \/>\n            be.loadAdditional(nbt, level.registryAccess());<br \/>\n        }<br \/>\n    }<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>### Registrum Module<\/p>\n<p>A registration system based on [Registrate, simplifying the registration process for items, blocks,<br \/>\nentities, etc.<\/p>\n<p>**Key Features:**<\/p>\n<p>&#8211; Chain-style API design<br \/>\n&#8211; Automatic language file generation<br \/>\n&#8211; Automatic datapack generation<br \/>\n&#8211; Support for various builders<\/p>\n<p>**Usage Example:**<\/p>\n<p>&#8220;`java<br \/>\npublic static final Registrum REGISTRUM = Registrum.create(&#8220;my_mod&#8221;);<\/p>\n<p>public static final RegistryEntry<Item> MY_ITEM = REGISTRUM<br \/>\n    .item(&#8220;my_item&#8221;, Item::new)<br \/>\n    .properties(p -> p.stacksTo(16))<br \/>\n    .register();<br \/>\n&#8220;`<\/p>\n<p>### Main Module<\/p>\n<p>`anvillib-neoforge-1.21.1` is the aggregate artifact. It bundles and re-exports:<\/p>\n<p>&#8211; `config`<br \/>\n&#8211; `integration`<br \/>\n&#8211; `network`<br \/>\n&#8211; `recipe`<br \/>\n&#8211; `moveable-entity-block`<br \/>\n&#8211; `registrum`<\/p>\n<p>## Dependency Integration<\/p>\n<p>### Gradle (Groovy DSL)<\/p>\n<p>&#8220;`groovy<br \/>\nrepositories {<br \/>\n    mavenCentral() \/\/ This project is already uploaded to Maven Central<br \/>\n}<\/p>\n<p>dependencies {<br \/>\n    \/\/ Full library<br \/>\n    implementation &#8220;dev.anvilcraft.lib:anvillib-neoforge-1.21.1:2.0.0&#8221;<\/p>\n<p>    \/\/ Or import individual modules as needed<br \/>\n    implementation &#8220;dev.anvilcraft.lib:anvillib-config-neoforge-1.21.1:2.0.0&#8221;<br \/>\n    implementation &#8220;dev.anvilcraft.lib:anvillib-integration-neoforge-1.21.1:2.0.0&#8221;<br \/>\n    implementation &#8220;dev.anvilcraft.lib:anvillib-network-neoforge-1.21.1:2.0.0&#8221;<br \/>\n    implementation &#8220;dev.anvilcraft.lib:anvillib-recipe-neoforge-1.21.1:2.0.0&#8221;<br \/>\n    implementation &#8220;dev.anvilcraft.lib:anvillib-moveable-entity-block-neoforge-1.21.1:2.0.0&#8221;<br \/>\n    implementation &#8220;dev.anvilcraft.lib:anvillib-registrum-neoforge-1.21.1:2.0.0&#8221;<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>### Gradle (Kotlin DSL)<\/p>\n<p>&#8220;`kotlin<br \/>\nrepositories {<br \/>\n    mavenCentral() \/\/ This project is already uploaded to Maven Central<br \/>\n}<\/p>\n<p>dependencies {<br \/>\n    implementation(&#8220;dev.anvilcraft.lib:anvillib-neoforge-1.21.1:2.0.0&#8221;)<\/p>\n<p>    \/\/ Optional single-module example<br \/>\n    implementation(&#8220;dev.anvilcraft.lib:anvillib-network-neoforge-1.21.1:2.0.0&#8221;)<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>> Keep the dependency version aligned with release tags (current project property is `mod_version=2.0.0`).<\/p>\n<p>## Building the Project<\/p>\n<p>&#8220;`bash<br \/>\n# Clone repository<br \/>\ngit clone https:\/\/github.com\/Anvil-Dev\/AnvilLib.git<br \/>\ncd AnvilLib<\/p>\n<p># Build on macOS \/ Linux<br \/>\n.\/gradlew build<\/p>\n<p># Build on Windows (PowerShell \/ CMD)<br \/>\ngradlew.bat build<br \/>\n&#8220;`<\/p>\n<p>## Requirements<\/p>\n<p>&#8211; Java 21+<br \/>\n&#8211; Minecraft 1.21.1<br \/>\n&#8211; NeoForge 21.1.x<\/p>\n<p>## License<\/p>\n<p>This project is licensed under the MIT License.<\/p>\n<p>Part of the Registrum module code is based on Registrate and follows the Mozilla Public License<br \/>\n2.0.<\/p>\n<p>## Author<\/p>\n<p>&#8211; **Gugle** &#8211; Main developer<\/p>\n<p>## Links<\/p>\n<p>&#8211; GitHub Repository<br \/>\n&#8211; Issue Tracking<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AnvilLib is a NeoForge mod library developed by Anvil-Dev, providing Minecraft mod developers with a series of practical tools and frameworks.<\/p>\n","protected":false},"featured_media":16454,"template":"","meta":{"_minecraft_slug":"anvil-lib","_minecraft_project_id":"nKAcAL9b","_minecraft_author":"Gu-ZT","_minecraft_license":"MIT","_minecraft_downloads":787,"_minecraft_follows":1,"_minecraft_client_side":"required","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"anvil-lib.zip","_minecraft_size_bytes":239985245,"_minecraft_version_count":354,"_minecraft_updated_at":"2026-05-15T21:21:02.811818Z","_minecraft_date_created":"2026-03-26T03:42:18.517746Z","_minecraft_date_modified":"2026-05-11T20:21:47.057313Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/anvil-lib","_minecraft_icon_attachment_id":16454,"_minecraft_imported_at":"2026-05-31T19:06:13+00:00","_minecraft_import_hash":"c68ed221c51de5827d2369d2d7dffecc","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[873,158],"mod_loader":[160],"minecraft_version":[37,40,41,73,74,38,78,79,80,81,82,83,163],"class_list":["post-16453","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-library","mod_category-neoforge","mod_loader-neoforge","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9","minecraft_version-26-1","minecraft_version-26-1-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AnvilLib - 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\/anvil-lib\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AnvilLib - Minecraft\" \/>\n<meta property=\"og:description\" content=\"AnvilLib is a NeoForge mod library developed by Anvil-Dev, providing Minecraft mod developers with a series of practical tools and frameworks.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/anvil-lib\/\" \/>\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=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/anvil-lib\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/anvil-lib\\\/\",\"name\":\"AnvilLib - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/anvil-lib\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/anvil-lib\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/anvil-lib-icon-de4c02601664a596d6d17cf9908aa8b8bfd4cdee.png\",\"datePublished\":\"2026-05-31T19:06:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/anvil-lib\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/anvil-lib\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/anvil-lib\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/anvil-lib-icon-de4c02601664a596d6d17cf9908aa8b8bfd4cdee.png\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/anvil-lib-icon-de4c02601664a596d6d17cf9908aa8b8bfd4cdee.png\",\"width\":256,\"height\":256},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/anvil-lib\\\/#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\":\"AnvilLib\"}]},{\"@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":"AnvilLib - 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\/anvil-lib\/","og_locale":"en_US","og_type":"article","og_title":"AnvilLib - Minecraft","og_description":"AnvilLib is a NeoForge mod library developed by Anvil-Dev, providing Minecraft mod developers with a series of practical tools and frameworks.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/anvil-lib\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/anvil-lib\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/anvil-lib\/","name":"AnvilLib - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/anvil-lib\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/anvil-lib\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/05\/anvil-lib-icon-de4c02601664a596d6d17cf9908aa8b8bfd4cdee.png","datePublished":"2026-05-31T19:06:12+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/anvil-lib\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/anvil-lib\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/anvil-lib\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/05\/anvil-lib-icon-de4c02601664a596d6d17cf9908aa8b8bfd4cdee.png","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/05\/anvil-lib-icon-de4c02601664a596d6d17cf9908aa8b8bfd4cdee.png","width":256,"height":256},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/anvil-lib\/#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":"AnvilLib"}]},{"@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\/16453","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\/16454"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=16453"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=16453"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=16453"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=16453"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}