1.0.5-beta
Compatibility
Changes
Changelog — Undo Mod
[1.0.5-beta] — 2026-06-14
Changed: YACL is now Optional (Recommended)
YACL (Yet Another Config Lib) v3 is no longer required. It is now a recommended dependency:
- If YACL is installed → full config screen (YACL GUI)
- If YACL is not installed → a basic in-game settings screen is shown (mouse side buttons toggle + undo mode toggle)
| Dependency type | Before | After |
|---|---|---|
| YACL v3 | depends (required) |
recommends (optional but recommended) |
Don't want to install YACL? Download the
-bundledJAR — it has YACL built in.
New: Basic Settings Screen (No YACL required)
Press U in-game to open settings.
- With YACL installed: full YACL config screen (General / HUD / History categories)
- Without YACL: a simple vanilla screen with two toggles:
Mouse Side Buttons— ON/OFFUndo Mode— Full / Block Only
Settings are saved to config/undo-client.json in both cases.
New: Mod Icon
Added a custom icon (assets/undo/icon.png) displayed in the Minecraft mod list and Modrinth.
Fix: Mixin Crash on MC 26.1.2 (Java 25 Bytecode)
Bug: MC 26.1.2 requires JDK 25 to build, but the previous config compiled classes to Java 25 bytecode (v69). The Mixin library's ASM reader cannot parse Java 25 class files, causing ClassNotFoundException for all mixin classes on startup.
Symptom:
MixinApplyError: Mixin [...] FAILED during PREPARE
Caused by: java.lang.ClassNotFoundException: ServerPlayerInteractionManagerMixin
Fix: The 26.1.2 build now uses JDK 25 toolchain but outputs Java 21 bytecode:
java {
toolchain { languageVersion = JavaLanguageVersion.of(25) }
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
tasks.compileJava { options.release = 21 }
- Runtime requirement: Java 25 ✅ (MC 26.1.2 needs it)
- Compiled bytecode: Java 21 (v65) ✅ (Mixin ASM can read it)
Fix: Removed withSourcesJar()
All three projects no longer generate -sources.jar. Build output is now release JARs only.
Build Output
| MC Version | Mapping | Obfuscation | Main JAR | Bundled JAR |
|---|---|---|---|---|
| 26.1.2 | Mojang (official) | ❌ No (jar task) |
Undo1.0.5-beta+fabric26.1.2.jar |
Undo1.0.5-beta+fabric26.1.2-bundled.jar |
| 1.21.1 | Yarn | ✅ Yes (remapJar) |
Undo1.0.5-beta+fabric1.21.1.jar |
Undo1.0.5-beta+fabric1.21.1-bundled.jar |
| 1.21.2 | Yarn | ✅ Yes (remapJar) |
Undo1.0.5-beta+fabric1.21.2.jar |
Undo1.0.5-beta+fabric1.21.2-bundled.jar |
For Modrinth Upload
Main version (YACL not bundled):
- MC 26.1.2 → upload
Undo1.0.5-beta+fabric26.1.2.jar- Recommends:
yet_another_config_lib_v3≥ 3.9.0
- Recommends:
- MC 1.21.1 → upload
Undo1.0.5-beta+fabric1.21.1.jar- Recommends:
yet_another_config_lib_v3≥ 3.6.0
- Recommends:
- MC 1.21.2 → upload
Undo1.0.5-beta+fabric1.21.2.jar- Recommends:
yet_another_config_lib_v3≥ 3.6.0
- Recommends:
Bundled version (YACL included, no external dependency):
Same JARs but remove yet_another_config_lib_v3 from the dependency list when uploading to Modrinth.
[1.0.5-beta] — 2026-06-12 (Previous Release)
New: YACL Config Screen
Press U in-game to open the config screen (replaces the old custom settings screen).
Three categories:
| Category | Options |
|---|---|
| General | mouseSideButtonsEnabled — use mouse side buttons for Undo/Redo |
| HUD | hudCorner — where the Undo HUD appears (Top-Left / Top-Right / Bottom-Left / Bottom-Right) |
| History | maxHistoryPerPlayer — how many actions each player can undo |
Config is saved to config/undo-client.json automatically.
New: Dual Build (Main + Bundled)
Every MC version now has two JARs:
| File | YACL included? | When to use |
|---|---|---|
Undo1.0.5-beta+fabricX.Y.jar |
❌ No | You already have YACL installed |
Undo1.0.5-beta+fabricX.Y-bundled.jar |
✅ Yes | You don't want to install YACL separately |
Fix: Mixin Compatibility Level (MC 26.1.2)
undo.mixins.json used "compatibilityLevel": "JAVA_25", which is not valid (max JAVA_22). Changed to JAVA_21.
Fix: MC 1.21.2 API Changes
| Class / Method | Old (≤1.21.1) | New (1.21.2) |
|---|---|---|
| Return type of use item callback | TypedActionResult<ItemStack> |
ActionResult (merged) |
EntityType.loadEntityWithPassengers |
2 args | 3 args (added SpawnReason) |
Fix: Removed Unused undo.client.mixins.json
Deleted from all three projects (empty mixin list with required: true caused potential issues).
Version History (Modrinth Releases)
| Version | MC Versions | Date | Notes |
|---|---|---|---|
| 0.9.0 | 1.21.1 | 2024-10-03 | First release |
| 0.9.1 | 1.21.1 | 2024-10-05 | Bug fixes |
| 1.0.0 | 1.21.1 | 2024-11-20 | First stable release |
| 1.0.1 | 1.21.1 | 2024-12-01 | Minor fixes |
| 1.0.2 | 1.21.1 | 2025-01-15 | Minor fixes |
| 1.0.3 | 1.21.1 | 2025-03-10 | Minor fixes |
| 1.0.4 | 1.21.1, 1.21.2, 26.1 | 2025-05-20 | Multi-MC version support |
| 1.0.5-beta | 1.21.1, 1.21.2, 26.1.2 | 2026-06-14 | YACL optional, basic settings screen, icon, Mixin bytecode fix |
This file is from the undo-mod-26.1.2 project.
Optional dependencies
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:I13AmOJJ:5sG0CHrL"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:I13AmOJJ:5sG0CHrL"
}

