Tags
Creators
Details
All versions
2.0.0+mc1.21.11
Release
Marlow's Crystal Optimizer 2.0.0 for Fabric 1.21.115 days ago 60.2K
Compatibility
Minecraft: Java Edition
1.21.11
Platform
Fabric
Supported environments
Client-side
Required content
Any compatible version
Changes
2.0.0
Added
- Added NeoForge support for Minecraft 1.20.4 through 26.3, released next to the Fabric jars. It sends the same packets as the Fabric version. With YetAnotherConfigLib installed, the settings open from NeoForge's mod list, which also shows new versions.
- Added an update check, shown in Mod Menu on Fabric and in NeoForge's mod list. It offers new versions built for your Minecraft version and mod loader, from Modrinth or from GitHub as picked in the settings. Beta builds are only offered with the Experimental Builds setting, which is off by default.
- The version packet now also sends the mod loader, the git commit the build came from, whether it had uncommitted changes, and when it was built. PROTOCOL.md lists the fields.
- Added a Keep Render setting, off by default. A broken crystal stays visible until the server removes it instead of being hidden, and the next crystal can still be placed where it stood straight away. It sends exactly the same packets as the default mode.
- Added Minecraft 26.3 to the supported versions. The 26.1 build covers it unchanged, so it ships as the
same jar. On 26.3 Fabric API itself asks for Fabric Loader
0.19.3or newer.
Fixed
- Fixed a crash when joining a server that disables the optimizer on Minecraft 1.21.2 through 1.21.4.
The mod called a Minecraft method whose return type changed in 1.21.2, which threw
NoSuchMethodErrorthe moment the server sent its opt-out packet. - Fixed the mod failing to start the game on Minecraft 1.20.5 and 1.20.6. Packet identifiers were built with a method that only exists from 1.21 onwards.
- Fixed a crystal struck while sprinting skipping the vanilla attack slowdown, which anticheats flagged as movement. The crystal was removed the moment the attack packet was sent, before Minecraft ran its own attack, so the client never lost the speed and the sprint a sprint hit costs. It is now hidden right after that attack, still inside the same click, so the next crystal is placed exactly as fast as before.
- Fixed a crystal the server did not break staying invisible until you moved out of its range, for example one that cannot be damaged or a hit a plugin cancelled. A broken crystal is now hidden rather than removed. It comes back as soon as the server confirms a block you placed or started breaking after the hit without having removed the crystal first, and otherwise 30 ticks after the hit, a second and a half at the normal tick rate, so a placement stops going through a crystal that is still there.
- Fixed a crystal outside the world border disappearing when hit. The server ignores those hits.
- Fixed a crystal disappearing without breaking when hit with Weakness just as Strength ran out. The server ends Strength before the client is told, so its last 1.5 seconds no longer count.
Changed
- A broken crystal now only lets crystals through. Until the server removes it, it stands in the way of everything else exactly as it does without the mod: a click never breaks the block under it or reaches anyone behind it, and no other item is used past it. An attack on it goes to the next end crystal behind it, and a right click with an end crystal in either hand places that crystal on the obsidian or bedrock behind it, both in the same tick it was broken and as fast as before. Only the hand holding the end crystal sees past it. Anticheats flagged hitting, breaking and placing blocks through a crystal the server had not removed yet.
- The opt-out is now tracked per connection instead of being remembered per server address. A backend switch behind a proxy keeps the opt-out, and disconnecting clears it, which is what the documented protocol always said should happen.
- The message shown when a server disables the optimizer now appears once per connection rather than once per server per game session.
Optional dependencies
Any compatible version
Any compatible version
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:ozpC8eDC:Wzw6RsOc"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:ozpC8eDC:Wzw6RsOc"
}

