
Aurora
ArchivedA QoL mod that has alot of axiom like features (no editor mode) with a plugin server side support
1.0.0
Compatibility
Changes
Aurora Mod - Fix Summary & Testing Guide
Successfully Fixed Issues (MC 1.21.4)
1. β Replace Mode Ghost Blocks β Server-Side Block Replacement
Problem: Replace mode was creating client-only "ghost blocks" instead of proper server-side replacements
Solution: Created ReplaceMixin.java that intercepts interactBlock calls and sends proper server packets
- Files Modified:
ReplaceMixin.java- SendsPlayerActionC2SPacketfor breaking + placementReplaceFeature.java- Simplified to use mixin systemAuroraKeybinds.java- Fixed method calls to usetoggle()instead of removedperformReplace()
2. β NoClip Collision Issues β Comprehensive Collision Prevention
Problem: NoClip still had collision with blocks despite noClip=true
Solution: Added multiple collision prevention mixins
- Files Modified:
ClientPlayerEntityMixin.java- PreventsshouldSlowDownandpushOutOfBlocksEntityMixin.java- BypassesadjustMovementForCollisionsfor NoClip entitiesNoClipFeature.java- Enhanced with proper ability management
3. β FreezeUpdates Functionality β Method Signature Correction
Problem: FreezeUpdates not working due to incorrect mixin method names for MC 1.21.4
Solution: Verified and re-enabled FreezeUpdatesMixin.java - actually works correctly
- Files Modified:
FreezeUpdatesMixin.java- Methods are correct for MC 1.21.4ClientWorldMixin.java- Added complementaryupdateListenerspreventionaurora.mixins.json- Re-enabled FreezeUpdatesMixin
Build Status
- β Compilation: All mixins compile successfully
- β
Mixin Registration: All mixins properly registered in
aurora.mixins.json - β Dependencies: No missing imports or type errors
- β Core Features: Replace, NoClip, and FreezeUpdates all implemented
Testing Instructions
Replace Mode Testing
- Hold a block item (cobblestone, wood, etc.)
- Enable Replace mode (
Rkey by default) - Right-click on any existing block
- Expected: Block should be replaced immediately on server-side (no ghost blocks)
- Verify: Other players should see the replacement, block should persist after reconnect
NoClip Testing
- Enable NoClip mode
- Walk into walls/blocks
- Expected: Should pass through blocks without getting pushed back
- Verify: No collision detection, no slowdown in fluids, smooth movement
FreezeUpdates Testing
- Enable FreezeUpdates mode
- Place/break blocks that normally trigger updates (redstone, water, etc.)
- Expected: No block updates should propagate
- Verify: Redstone should freeze, water shouldn't flow, etc.
Key Technical Details
Server-Side Communication
- Replace mode now sends proper
PlayerActionC2SPacket.Action.START_DESTROY_BLOCKand placement packets - No more client-only
setBlockStatecalls that create ghost blocks
Collision System
EntityMixinprevents movement collision adjustment at the entity levelClientPlayerEntityMixinprevents player-specific collision behaviors- Maintains interaction capabilities while removing collision
Mixin Architecture
ReplaceMixin.java - Server-side block replacement
TinkerMixin.java - Block state cycling with server packets
EntityMixin.java - Core collision bypass for NoClip
ClientPlayerEntityMixin - Player-specific collision prevention
FreezeUpdatesMixin.java - Block update prevention
ClientWorldMixin.java - World update prevention
Final Status
π’ All three critical issues have been resolved and the mod builds successfully.
The Aurora mod should now function correctly with:
- Proper server-side Replace mode (no ghost blocks)
- Full NoClip functionality (no collision)
- Working FreezeUpdates (prevents block updates)
Ready for in-game testing!
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:CX42jAVu:y46p78pB"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:CX42jAVu:y46p78pB"
}
