AnvilLib
ModAnvilLib is a NeoForge mod library developed by Anvil-Dev, providing Minecraft mod developers with a series of practical tools and frameworks.
Type
Mod
Modrinth Downloads
5,204
Modrinth ID
nKAcAL9b
Last Updated
Jul 26, 2026
Description
AnvilLib
AnvilLib is a NeoForge mod library developed by Anvil Dev, providing Minecraft mod developers with a series of practical tools and frameworks.
Features
AnvilLib adopts a modular design and includes the following functional modules:
Module Description Config Annotation-based configuration system Integration Mod compatibility integration framework Network Networking API with automatic packet registration Recipe In-world recipe system Moveable Entity Block Support for block entities movable by pistons Registrum Simplified registration system Main Aggregated module that bundles all submodulesModule Introduction
Config Module
Provides an annotation-based configuration management system to simplify the definition and management of mod configurations.
Key Features:
- Define configuration classes using @Config annotation
- Add configuration comments with @Comment
- Define numerical ranges with @BoundedDiscrete
- Create nested configurations with @CollapsibleObject
- Automatically generate client configuration GUI
Usage Example:
@Config(name = "my_mod", type = ModConfig.Type.COMMON) public class MyModConfig { @Comment("Enable debug mode") public boolean debugMode = false; @Comment("Maximum count") @BoundedDiscrete(min = 1, max = 100) public int maxCount = 10; } // Register configuration MyModConfig config = ConfigManager.register("my_mod", MyModConfig::new);Integration Module
Provides a framework for mod integrations, supporting automatic loading of integration code based on the presence of other mods.
Key Features:
- Declare integration classes with @Integration annotation
- Support for version range matching
- Support for different runtime environments (CLIENT / DEDICATED_SERVER / DATA)
Usage Example:
@Integration(value = "jei", version = "[19.0,)") public class JEIIntegration { public void init() { // JEI integration logic } }Network Module
Provides a NeoForge networking abstraction with package-based packet auto-registration.
Key Features:
- Define packet direction using IClientboundPacket / IServerboundPacket / IInsensitiveBiPacket
- Automatically register packet classes in a package via NetworkRegistrar.register(...)
- Supports PLAY, CONFIGURATION, and COMMON protocols
Usage Example:
@SubscribeEvent public static void onRegisterPayload(RegisterPayloadHandlersEvent event) { PayloadRegistrar registrar = event.registrar("1"); NetworkRegistrar.register(registrar, "my_mod"); }Recipe Module
Provides an in-world recipe system, allowing recipes to be executed in the world (rather than in crafting tables).
Key Features:
- Supports custom recipe triggers (Trigger)
- Supports recipe predicates (Predicate) for conditional checks
- Supports multiple recipe outcomes (Outcome)
- Built-in priority system
- Full datapack support
Recipe Components:
- Trigger: Conditions to trigger the recipe (e.g., item dropping, explosions)
- Predicate: Recipe matching conditions
- Outcome: Recipe execution results (e.g., spawning items, setting blocks)
Moveable Entity Block Module
Allows blocks with block entities to be pushed by pistons while preserving their data.
Usage Example:
public class MyBlock extends Block implements IMoveableEntityBlock { @Override public CompoundTag clearData(Level level, BlockPos pos) { // Return block entity data to preserve BlockEntity be = level.getBlockEntity(pos); return be != null ? be.saveWithoutMetadata(level.registryAccess()) : new CompoundTag(); } @Override public void setData(Level level, BlockPos pos, CompoundTag nbt) { // Restore block entity data at new position BlockEntity be = level.getBlockEntity(pos); if (be != null) { be.loadAdditional(nbt, level.registryAccess()); } } }Registrum Module
A registration system based on Registrate, simplifying the registration process for items, blocks, entities, etc.
Key Features:
- Chain-style API design
- Automatic language file generation
- Automatic datapack generation
- Support for various builders
Usage Example:
public static final Registrum REGISTRUM = Registrum.create("my_mod"); public static final RegistryEntry<Item> MY_ITEM = REGISTRUM .item("my_item", Item::new) .properties(p -> p.stacksTo(16)) .register();Main Module
anvillib-neoforge-1.21.1 is the aggregate artifact. It bundles and re-exports:
- config
- integration
- network
- recipe
- moveable-entity-block
- registrum
Dependency Integration
Gradle (Groovy DSL)
repositories { mavenCentral() // This project is already uploaded to Maven Central } dependencies { // Full library implementation "dev.anvilcraft.lib:anvillib-neoforge-1.21.1:2.0.0" // Or import individual modules as needed implementation "dev.anvilcraft.lib:anvillib-config-neoforge-1.21.1:2.0.0" implementation "dev.anvilcraft.lib:anvillib-integration-neoforge-1.21.1:2.0.0" implementation "dev.anvilcraft.lib:anvillib-network-neoforge-1.21.1:2.0.0" implementation "dev.anvilcraft.lib:anvillib-recipe-neoforge-1.21.1:2.0.0" implementation "dev.anvilcraft.lib:anvillib-moveable-entity-block-neoforge-1.21.1:2.0.0" implementation "dev.anvilcraft.lib:anvillib-registrum-neoforge-1.21.1:2.0.0" }Gradle (Kotlin DSL)
repositories { mavenCentral() // This project is already uploaded to Maven Central } dependencies { implementation("dev.anvilcraft.lib:anvillib-neoforge-1.21.1:2.0.0") // Optional single-module example implementation("dev.anvilcraft.lib:anvillib-network-neoforge-1.21.1:2.0.0") }Keep the dependency version aligned with release tags (current project property is mod_version=2.0.0).
Building the Project
# Clone repository git clone https://github.com/Anvil-Dev/AnvilLib.git cd AnvilLib # Build on macOS / Linux ./gradlew build # Build on Windows (PowerShell / CMD) gradlew.bat buildRequirements
- Java 21+
- Minecraft 1.21.1
- NeoForge 21.1.x
License
This project is licensed under the MIT License.
Part of the Registrum module code is based on Registrate and follows the Mozilla Public License 2.0.
Author
- Gugle - Main developer
Links
Compatibility
Mod Loaders
Game Versions
Similar Mods
Cold Breath
Adds an immersive breath effect in cold environments.
A Zombie Dinosaur
This mod adds a Zombie Dinosaur to Minecraft!
VH: Scaling Bingo Seals
Adds Scaling Bingo objective to Vault Hunters 3rd Edition
Fantasy Metals
Fantasy ores and gems, tools and armor.
StationAPI
A general use API for Fabric Loader mods on legacy Minecraft versions.
Catalytic Tweaks
Changes mods behaviour, in a way to optimize them, fix some issues or extends their functionalities, most of them with c...