Compatibility
Minecraft: Java Edition
26.1
1.21.10–1.21.11
1.21.3–1.21.8
1.21–1.21.1
1.20.x
1.19.1–1.19.4
1.18.2
1.17.1
1.16.5
1.15.2
1.12.2
Platforms
Supported environments
Creators
Details
Licensed MIT
Created 4 years ago
Updated yesterday
Changelog
GeckoLib v5.5
- Port to 26.1
Changes
API
- Refactored the base packages of GeckoLib from
software.bernie.geckolibtocom.geckolib - Added
GeoLocator- A object implementation for locators. They are only used for listening to render positions- Added
BakedGeoModel#getLocatorandBakedGeoModel#locators - Added
GeoBone#locators - Added
RenderPassUtil#addLocatorPositionListener - Extracted
GeoBone#updateBonePositionListenerstoRenderUtil#providePositionsToListeners
- Added
- Modified GeckoLib's resource loading to allow for completely custom resource formats
- Gives root-level access to
Resourceinstances. Write an adapter to read resource files from any format you want! - Changed
GeckoLibLoaderfrom an SPI to a registerable interface - Added
GeckoLibUtil#addResourceLoader - Removed
GeckoLibUtil#addCustomBakedModelFactory - Converted
BakedGeoModelto a non-record, extendable class, for potential third-party adapters - Converted
Animationto a non-record, extendable class, for potential third-party adapters - Converted
ModelPropertiesto a non-record, extendable class, for potential third-party adapters - Converted
MathParserback to an instantiable object to allow for extensible implementations, added a deduplication schema to it, and performed a general cleanup - Improved the deduplication schema for
MathParser, further reducing memory consumption - Removed
BakedAnimationsAdapterandKeyFrameMarkersAdapter - Removed the legacy loading objects:
BoneCubeFaceUVLocatorClassLocatorValueMinecraftGeometryModelPolyMeshPolysUnionTextureMeshUVFacesUVUnionBoneStructureGeometryTree- Moved
ModelPropertiestogeckolib.cache.model - Moved
BakedAnimationstogeckolib.cache.animation
- Gives root-level access to
- Cleaned up
EasingType- Added a zero-parameter factory constructor to
EasingTypeand inGeckoLibUtil - Added
EasingState#interpolate - Added
EasingState#getFirstEasingArg - Added
EasingType#modifyKeyframes - Changed
EasingType#registerto return a generic type instead ofEasingType - Removed
EasingType#easeIn - Removed
EasingType#lerpWithOverride - Removed
EasingType#fromJson
- Added a zero-parameter factory constructor to
- Added
BakedAnimationCache#sizeandBakedModelCache#size - Added the
.jsonresource path toBakedGeoModel'sModelProperties - Removed
GeoReplacedEntity#getReplacingEntityTypeas it was no longer used - Converted all Javadocs to Markdown format
- Folded internal implementation methods in
BakedGeoModelandGeoBonefor API visibility - Removed the class parameter for TokenType-based
DataTickets, and properly typed the builtin GeckoLib tickets - Removed
MiscUtil#WORLD_TO_MODEL_SIZE - Removed
MiscUtil#MODEL_TO_WORLD_SIZE - Added
JsonUtil#worldToModelUnitsandJsonUtil#modelToWorldUnits - Removed the dual-type generics for renderstates from:
DirectionalProjectileRendererDyeableGeoArmorRendererGeoArmorRendererGeoBlockRendererGeoEntityRendererGeoReplacedEntityRenderer
- Moved
ModelFormatVersiontocom.geckolib.loading.definition.geometry.object - Renamed
RotationtoUvFaceRotationand moved tocom.geckolib.loading.definition.geometry.object - Removed
headBoneand its associated constructor inDefaultedEntityGeoModelsince it's no longer used - Added direct-object constructors for
DefaultedBlockGeoModel,DefaultedEntityGeoModel, andDefaultedItemGeoModel - Removed
GeckoLibPlatform#getGameDiras it is no longer used - Removed
SerializableDataTickets. They haven't had a place in GeckoLib since early 1.21.x versions, and they've always had unresolvable implementation issues. - Added
VanillaModelModifier- This is mostly an internal implementation class to bridge a gap that vanilla's implementation left us - Fixed and renabled
ItemArmorGeoLayer, added support for non-Equippableitems GeoRenderer#performRenderPassnow supports multiple pre-madeBoneUpdaterswhen starting a render pass- Converted some
BlockStateandItemStackreferences in rendering toItemStackRenderStateandBlockModelRenderStateper Minecraft standards- Vanilla hasn't yet set the systems in place for this to be everywhere, so I'm just doing it where I can
- Added
RenderUtil#createRenderStateForItem - Added
RenderUtil#createRenderStateForBlock
- Added
DataTickets#createas a shortcut/helper method for creating DataTickets - Changed
DataTicket.GLOW_COLOURtoDataTicket.OUTLINE_COLOR - Moved
DataTicket.BLOCK_FACINGtoGeoBlockRenderer.DIRECTION_FACING - Moved
DataTicket.ITEMtoGeoItemRenderer.CURRENT_ITEM - Moved
DataTicket.EQUIPMENT_SLOTtoGeoArmorRenderer.CURRENT_SLOT - Moved
DataTicket.IS_GECKOLIB_WEARERtoGeoArmorRenderer.IS_GECKOLIB_WEARER - Moved
DataTicket.HUMANOID_MODELtoGeoArmorRenderer.BASE_MODEL - Added
BlockEntityRendererProvider.Contextto the constructor ofGeoBlockRenderer
Other
- Added
1.16.0and1.19.30to the known geometry model definitions - Improved resource loading performance
- Added an interface injection for
BlockEntityRenderState->GeoRenderState - GeckoLib will no longer crash when unable to find a model; and will instead render a missing texture cube
Bug Fixes
- Fixed
RenderUtil#transformToBonerunning in reverse order - Fixed
AnimationControllerhaving the wrong InternalApi annotations - Fixed top-level bones not always providing the correct position to
BonePositionListeners - Fixed GeckoLib model bones not rendering in the correct order when nested under parent bones
- Fixed GeckoLib model loading not respecting
mirrorandinflatevalues properly - Reduced backface z-fighting on 0-depth cubes. Stop making your cubes 0-thickness!
Files
Metadata
Release channel
ReleaseVersion number
5.5Loaders
Game versions
26.1Environment
Client and server, optional on server
Downloads
186Publication date
March 24, 2026 at 7:03 PMPublisher
Tslat
Maintainer



