Links
Tags
Creators
Details
Licensed LGPL-3.0-or-later
Published 4 months ago
Updated 2 days ago
All versions
4.1.0
Release
NilKit API 4.1.02 days ago 13
Uploaded by
Compatibility
Minecraft: Java Edition
26.1.x
1.21.x
1.20.x
1.19.x
1.18.x
1.17.x
1.16.x
1.15.x
1.14.x
1.13.x
1.12.x
1.11.x
1.10.x
1.9.x
1.8.x
1.7.x
1.6.4
1.6.1–1.6.2
1.5.x
1.4.4–1.4.7
1.4.2
1.3.x
1.2.x
Platform
NilLoader
Supported environments
Client and server
Changes
[4.1.0] - 2026-08-06
Byte Buddy patching framework
- Expanded the Byte Buddy integration from a thin helper wrapper into a reusable patching framework designed for Mixin-style runtime transformations.
- Added
ByteBuddyPatchas a declarative patch definition API for targeting classes and applying multiple transformations without manually recreatingAgentBuilderor transformer boilerplate. - Added
ByteBuddyPatchRegistryfor managing multiple patches with deterministic ordering and configurable priorities. - Added JVM descriptor-based method matching for more reliable targeting across mapped, obfuscated, and legacy Minecraft environments.
- Added patch validation through
require(...), allowing transformations to fail immediately when an expected method or target is missing instead of silently continuing with an unapplied patch. - Added reusable Advice-based injection support for method entry, method exit, constructors, argument modification, return-value modification, and exception handling.
- Added support for replacing complete method implementations through direct Byte Buddy interception.
- Added low-level transformation access through
mutate(...), allowing patches to use raw Byte Buddy features such asMemberSubstitution, ASM visitors, field/method definitions, implemented interfaces, and custom builder mutations. - Kept the underlying Byte Buddy API exposed so advanced transformations are not restricted by the higher-level NilKit abstraction.
Runtime transformation
- Added a NilLoader transformation bridge so registered Byte Buddy patches can participate directly in NilLoader class transformation without requiring Byte Buddy self-attachment.
- Added optional
Instrumentation-based installation with retransformation support for environments where already-loaded classes must be patched. - Preserved explicit Byte Buddy Agent attachment behavior; NilKit still does not automatically invoke
ByteBuddyAgent.install()during SDK startup. - Added composition support so multiple independent patches can safely target the same class through a single transformation pipeline.
- Improved transformation diagnostics and failure behavior for incompatible targets, incorrect mappings, and changed method descriptors.
Documentation
- Added documentation and examples for using the Byte Buddy patch API as a Mixin-style transformation layer.
- Documented patch registration, priorities, required targets, Advice injection, full method interception, and advanced raw Byte Buddy mutations.
- Added examples showing integration through the NilLoader transformer bridge without requiring a Java agent.
Supplementary resources
| File | Type | Size | |
|---|---|---|---|
| NilKit API-4.1.0-all.jar.asc | Signature file | 893 bytes | |
| NilKit API-4.1.0-javadoc.jar | Javadoc jar | 393.38 KiB | |
| NilKit API-4.1.0-mapping-tool.jar | Unknown | 20.18 KiB | |
| NilKit API-4.1.0-mapping-tool.jar.asc | Signature file | 893 bytes | |
| NilKit API-4.1.0-sources.jar | Source jar | 344.98 KiB |
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:bEmV8Hhn:LIZtNy1S"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:bEmV8Hhn:LIZtNy1S"
}

