1.0.5
Compatibility
Changes
Changelog - Version 1.21.5 System Upgrade & Compatibility
Fully migrated the codebase to maintain compatibility with the NeoForge 1.21.5 framework.
Updated the NBT data management system to utilize the new Optional data structure introduced in Minecraft 1.21.5, ensuring robust data handling.
Upgraded entity tracking mechanics and UUID serialization to align with Mojang's latest standard registries.
All change is 1.21.5 Compatibility:
- Core Bug Fixes
-
Resolved a critical issue where opening the ESC pause menu or triggering a world save while a companion was dead (in the respawn queue) would cause an immediate hard crash (Exit code -1).
-
Fixed graphics and memory allocation conflicts with the vanilla blur shader by refactoring the instantiation of Ghost and Nametag entities from standard constructors to the official EntityType.create() method.
-
Corrected the Y-axis alignment (teleportTo) for the ArmorStand nametag entity, ensuring the "Soul" text displays precisely above the ghost model without floating out of bounds.
-
Fixed an IllegalStateException: Not a string world-saving crash by modifying the respawnQueue map codec in CompanionData to use UUIDUtil.STRING_CODEC instead of the primitive integer array representation.
- Rendering & Weapon Animations
-
Integrated the new 1.21.5 ItemModelResolver into CompanionRenderer. Weapons like Bows and Crossbows now correctly compute and display active vanilla animations (such as string pulling, charging states, and loaded projectiles) when the companion is in combat mode.
-
Maintained the companion's signature crossed-arms pose while allowing the held weapon models to dynamically animate independently during reload and firing states.
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:EAtMErca:3EBP1nUn"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:EAtMErca:3EBP1nUn"
}

