A 3D animation library for entities, blocks, items, armor, and more!
GeckoLib provides detailed documentation in the form of a wiki. We spent many hours writing the wiki, so please read it!
If you have questions or need help getting up and running with questions, join our discord!
Pull requests are welcome. For significant changes, please open an issue first to discuss what you would like to change.
Need a server to play with friends? Don't know how to setup one? Just rent an already configured server from BisectHosting!
Click on the picture above, select plan(at least 4GB), and use my code gecko to get 25% off your first month and enjoy playing with your friends!
Required
Optional
Terms for using, modifying and redistributing this product.
01.07.2026 · Modrinth
v4.9.2
Screenshots and images from the original Modrinth page.

Published versions and original Modrinth files.
01.07.2026 · 348 923 downloads
v4.9.2
01.07.2026 · 19 867 downloads
v4.9.2
01.07.2026 · 387 952 downloads
v4.9.2
27.06.2026 · 9 874 downloads
ItemArmorGeoLayer. This one should be the last one27.06.2026 · 6 048 downloads
ItemArmorGeoLayer. This one should be the last one27.06.2026 · 93 656 downloads
ItemArmorGeoLayer. This one should be the last one27.06.2026 · 4 265 downloads
ItemArmorGeoLayer (#843)27.06.2026 · 3 329 downloads
ItemArmorGeoLayer (#843)27.06.2026 · 46 751 downloads
ItemArmorGeoLayer (#843)23.06.2026 · 98 449 downloads
v4.9.1
23.06.2026 · 5 144 downloads
v4.9.1
23.06.2026 · 40 426 downloads
v4.9.1
22.06.2026 · 923 downloads
v4.9
AttachedAnimatableRenderLayer and a handful of subclasses to make rendering GeckoLib objects on vanilla models (such as players) a lot easier22.06.2026 · 24 965 downloads
v4.9
AttachedAnimatableRenderLayer and a handful of subclasses to make rendering GeckoLib objects on vanilla models (such as players) a lot easier22.06.2026 · 17 989 downloads
v4.9
AttachedAnimatableRenderLayer and a handful of subclasses to make rendering GeckoLib objects on vanilla models (such as players) a lot easier20.06.2026 · 1 004 431 downloads
v4.8.4
20.06.2026 · 306 024 downloads
v4.8.4
20.06.2026 · 1 743 downloads
& GeoRenderState dual-type generic from everywhere. I thought I'd already done it, but apparently not. I can't build forge without this breaking change, sorry19.06.2026 · 2 561 downloads
& GeoRenderState dual-type generic from everywhere. I thought I'd already done it, but apparently not. I can't build forge without this breaking change, sorry19.06.2026 · 21 964 downloads
& GeoRenderState dual-type generic from everywhere. I thought I'd already done it, but apparently not. I can't build forge without this breaking change, sorry17.06.2026 · 1 606 downloads
Direct port to 26.2
17.06.2026 · 8 463 downloads
Direct port to 26.2
12.04.2026 · 24 998 downloads
CustomBoneTextureGeoLayer#shouldRenderBone to allow for handling of custom-hidden bonesquery.limb_swing not interpolating correctly (#834)12.04.2026 · 168 083 downloads
CustomBoneTextureGeoLayer#shouldRenderBone to allow for handling of custom-hidden bonesquery.limb_swing not interpolating correctly (#834)24.03.2026 · 5 714 downloads
software.bernie.geckolib to com.geckolibGeoLocator - A object implementation for locators. They are only used for listening to render positionsBakedGeoModel#getLocator and BakedGeoModel#locatorsGeoBone#locatorsRenderPassUtil#addLocatorPositionListenerGeoBone#updateBonePositionListeners to RenderUtil#providePositionsToListenersResource instances. Write an adapter to read resource files from any format you want!GeckoLibLoader from an SPI to a registerable interfaceGeckoLibUtil#addResourceLoaderGeckoLibUtil#addCustomBakedModelFactoryBakedGeoModel to a non-record, extendable class, for potential third-party adaptersAnimation to a non-record, extendable class, for potential third-party adaptersModelProperties to a non-record, extendable class, for potential third-party adaptersMathParser back to an instantiable object to allow for extensible implementations, added a deduplication schema to it, and performed a general cleanupMathParser, further reducing memory consumptionBakedAnimationsAdapter and KeyFrameMarkersAdapterBoneCubeFaceUVLocatorClassLocatorValueMinecraftGeometryModelPolyMeshPolysUnionTextureMeshUVFacesUVUnionBoneStructureGeometryTreeModelProperties to geckolib.cache.modelBakedAnimations to geckolib.cache.animationEasingTypeEasingType and in GeckoLibUtilEasingState#interpolateEasingState#getFirstEasingArgEasingType#modifyKeyframesEasingType#register to return a generic type instead of EasingTypeEasingType#easeInEasingType#lerpWithOverrideEasingType#fromJsonBakedAnimationCache#size and BakedModelCache#size.json resource path to BakedGeoModel's ModelPropertiesGeoReplacedEntity#getReplacingEntityType as it was no longer usedBakedGeoModel and GeoBone for API visibilityDataTickets, and properly typed the builtin GeckoLib ticketsMiscUtil#WORLD_TO_MODEL_SIZEMiscUtil#MODEL_TO_WORLD_SIZEJsonUtil#worldToModelUnits and JsonUtil#modelToWorldUnitsDirectionalProjectileRendererDyeableGeoArmorRendererGeoArmorRendererGeoBlockRendererGeoEntityRendererGeoReplacedEntityRendererModelFormatVersion to com.geckolib.loading.definition.geometry.objectRotation to UvFaceRotation and moved to com.geckolib.loading.definition.geometry.objectheadBone and its associated constructor in DefaultedEntityGeoModel since it's no longer usedDefaultedBlockGeoModel, DefaultedEntityGeoModel, and DefaultedItemGeoModelGeckoLibPlatform#getGameDir as it is no longer usedSerializableDataTickets. They haven't had a place in GeckoLib since early 1.21.x versions, and they've always had unresolvable implementation issues.VanillaModelModifier - This is mostly an internal implementation class to bridge a gap that vanilla's implementation left usItemArmorGeoLayer, added support for non-Equippable items GeoRenderer#performRenderPass now supports multiple pre-made BoneUpdaters when starting a render passBlockState and ItemStack references in rendering to ItemStackRenderState and BlockModelRenderState per Minecraft standardsRenderUtil#createRenderStateForItemRenderUtil#createRenderStateForBlockDataTickets#create as a shortcut/helper method for creating DataTicketsDataTicket.GLOW_COLOUR to DataTicket.OUTLINE_COLORDataTicket.BLOCK_FACING to GeoBlockRenderer.DIRECTION_FACINGDataTicket.ITEM to GeoItemRenderer.CURRENT_ITEMDataTicket.EQUIPMENT_SLOT to GeoArmorRenderer.CURRENT_SLOTDataTicket.IS_GECKOLIB_WEARER to GeoArmorRenderer.IS_GECKOLIB_WEARERDataTicket.HUMANOID_MODEL to GeoArmorRenderer.BASE_MODELBlockEntityRendererProvider.Context to the constructor of GeoBlockRenderer1.16.0 and 1.19.30 to the known geometry model definitionsBlockEntityRenderState -> GeoRenderStateRenderUtil#transformToBone running in reverse orderAnimationController having the wrong InternalApi annotationsBonePositionListeners mirror and inflate values properly24.03.2026 · 59 286 downloads
software.bernie.geckolib to com.geckolibGeoLocator - A object implementation for locators. They are only used for listening to render positionsBakedGeoModel#getLocator and BakedGeoModel#locatorsGeoBone#locatorsRenderPassUtil#addLocatorPositionListenerGeoBone#updateBonePositionListeners to RenderUtil#providePositionsToListenersResource instances. Write an adapter to read resource files from any format you want!GeckoLibLoader from an SPI to a registerable interfaceGeckoLibUtil#addResourceLoaderGeckoLibUtil#addCustomBakedModelFactoryBakedGeoModel to a non-record, extendable class, for potential third-party adaptersAnimation to a non-record, extendable class, for potential third-party adaptersModelProperties to a non-record, extendable class, for potential third-party adaptersMathParser back to an instantiable object to allow for extensible implementations, added a deduplication schema to it, and performed a general cleanupMathParser, further reducing memory consumptionBakedAnimationsAdapter and KeyFrameMarkersAdapterBoneCubeFaceUVLocatorClassLocatorValueMinecraftGeometryModelPolyMeshPolysUnionTextureMeshUVFacesUVUnionBoneStructureGeometryTreeModelProperties to geckolib.cache.modelBakedAnimations to geckolib.cache.animationEasingTypeEasingType and in GeckoLibUtilEasingState#interpolateEasingState#getFirstEasingArgEasingType#modifyKeyframesEasingType#register to return a generic type instead of EasingTypeEasingType#easeInEasingType#lerpWithOverrideEasingType#fromJsonBakedAnimationCache#size and BakedModelCache#size.json resource path to BakedGeoModel's ModelPropertiesGeoReplacedEntity#getReplacingEntityType as it was no longer usedBakedGeoModel and GeoBone for API visibilityDataTickets, and properly typed the builtin GeckoLib ticketsMiscUtil#WORLD_TO_MODEL_SIZEMiscUtil#MODEL_TO_WORLD_SIZEJsonUtil#worldToModelUnits and JsonUtil#modelToWorldUnitsDirectionalProjectileRendererDyeableGeoArmorRendererGeoArmorRendererGeoBlockRendererGeoEntityRendererGeoReplacedEntityRendererModelFormatVersion to com.geckolib.loading.definition.geometry.objectRotation to UvFaceRotation and moved to com.geckolib.loading.definition.geometry.objectheadBone and its associated constructor in DefaultedEntityGeoModel since it's no longer usedDefaultedBlockGeoModel, DefaultedEntityGeoModel, and DefaultedItemGeoModelGeckoLibPlatform#getGameDir as it is no longer usedSerializableDataTickets. They haven't had a place in GeckoLib since early 1.21.x versions, and they've always had unresolvable implementation issues.VanillaModelModifier - This is mostly an internal implementation class to bridge a gap that vanilla's implementation left usItemArmorGeoLayer, added support for non-Equippable items GeoRenderer#performRenderPass now supports multiple pre-made BoneUpdaters when starting a render passBlockState and ItemStack references in rendering to ItemStackRenderState and BlockModelRenderState per Minecraft standardsRenderUtil#createRenderStateForItemRenderUtil#createRenderStateForBlockDataTickets#create as a shortcut/helper method for creating DataTicketsDataTicket.GLOW_COLOUR to DataTicket.OUTLINE_COLORDataTicket.BLOCK_FACING to GeoBlockRenderer.DIRECTION_FACINGDataTicket.ITEM to GeoItemRenderer.CURRENT_ITEMDataTicket.EQUIPMENT_SLOT to GeoArmorRenderer.CURRENT_SLOTDataTicket.IS_GECKOLIB_WEARER to GeoArmorRenderer.IS_GECKOLIB_WEARERDataTicket.HUMANOID_MODEL to GeoArmorRenderer.BASE_MODELBlockEntityRendererProvider.Context to the constructor of GeoBlockRenderer1.16.0 and 1.19.30 to the known geometry model definitionsBlockEntityRenderState -> GeoRenderStateRenderUtil#transformToBone running in reverse orderAnimationController having the wrong InternalApi annotationsBonePositionListeners mirror and inflate values properly03.03.2026 · 1 226 509 downloads
v4.8.4
03.03.2026 · 45 029 downloads
v4.8.4
03.03.2026 · 1 536 046 downloads
v4.8.4
03.03.2026 · 36 139 downloads
03.03.2026 · 23 894 downloads
03.03.2026 · 492 816 downloads
27.02.2026 · 2 608 downloads
RenderPassInfo#getPreRenderMatrixPose and RenderPassInfo#getModelRenderMatrixPose, capturing the entire PoseStack pose instead of just the matrix pose itselfOverridingDataTicket - A DataTicket implementation that defers to an existing RenderState field first before applying itself.RenderUtil#transformToBone manipulating the PoseStack in reverse (#819)RenderUtil#transformToBone not accounting for back-translating to the pivot point (#822)MathParser sometimes parsing mathmematical expressions incorrectly (#820)GeoItems sometimes having their id collide if not registered as a synced animatable27.02.2026 · 1 793 downloads
RenderPassInfo#getPreRenderMatrixPose and RenderPassInfo#getModelRenderMatrixPose, capturing the entire PoseStack pose instead of just the matrix pose itselfOverridingDataTicket - A DataTicket implementation that defers to an existing RenderState field first before applying itself.RenderUtil#transformToBone manipulating the PoseStack in reverse (#819)RenderUtil#transformToBone not accounting for back-translating to the pivot point (#822)MathParser sometimes parsing mathmematical expressions incorrectly (#820)GeoItems sometimes having their id collide if not registered as a synced animatable27.02.2026 · 25 135 downloads
RenderPassInfo#getPreRenderMatrixPose and RenderPassInfo#getModelRenderMatrixPose, capturing the entire PoseStack pose instead of just the matrix pose itselfOverridingDataTicket - A DataTicket implementation that defers to an existing RenderState field first before applying itself.RenderUtil#transformToBone manipulating the PoseStack in reverse (#819)RenderUtil#transformToBone not accounting for back-translating to the pivot point (#822)MathParser sometimes parsing mathmematical expressions incorrectly (#820)GeoItems sometimes having their id collide if not registered as a synced animatable31.01.2026 · 3 381 394 downloads
v4.8.3
math.pi is and breaking animations (??? How has no-one told me about this until now)31.01.2026 · 933 680 downloads
v4.8.3
math.pi is and breaking animations (??? How has no-one told me about this until now)28.01.2026 · 12 553 downloads
RenderUtil#prepMatrixForBoneAndUpdateListenersRenderUtil#addPosToMatrix28.01.2026 · 9 637 downloads
RenderUtil#prepMatrixForBoneAndUpdateListenersRenderUtil#addPosToMatrix28.01.2026 · 109 396 downloads
RenderUtil#prepMatrixForBoneAndUpdateListenersRenderUtil#addPosToMatrix11.01.2026 · 9 808 downloads
RenderPassInfo#addBonePositionListenerTypeToken alternative to classes for DataTickets, to allow for generic-typed DataTickets11.01.2026 · 5 948 downloads
RenderPassInfo#addBonePositionListenerTypeToken alternative to classes for DataTickets, to allow for generic-typed DataTickets11.01.2026 · 100 035 downloads
RenderPassInfo#addBonePositionListenerTypeToken alternative to classes for DataTickets, to allow for generic-typed DataTickets04.01.2026 · 401 426 downloads
v4.8.3
04.01.2026 · 16 085 downloads
v4.8.3
04.01.2026 · 1 351 825 downloads
v4.8.3
01.01.2026 · 2 975 downloads
RenderPassInfo#addBoneUpdaterAnimationController sometimes thinking time has gone backwards (thanks Mojang?)AnimationController handling triggered animations in ticks instead of seconds01.01.2026 · 2 246 downloads
RenderPassInfo#addBoneUpdaterAnimationController sometimes thinking time has gone backwards (thanks Mojang?)AnimationController handling triggered animations in ticks instead of seconds01.01.2026 · 120 741 downloads
RenderPassInfo#addBoneUpdaterAnimationController sometimes thinking time has gone backwards (thanks Mojang?)AnimationController handling triggered animations in ticks instead of seconds27.12.2025 · 2 175 downloads
null values#setTransitionTicks to AnimationControllerJsonUtil#jsonToVec3 direct helper methodGeckoLibClient#getGeoModelForItem as it was unused and unnecessary, use RenderUtil#getGeckoLibItemRenderer instead and get the model as neededGeckoLibServices.Client was extracted to GeckoLibClientServices, because java kept failing to compile for seemingly no reasonGeoBone#positionAndRender, which implements the full render operation for a given boneGeoRenderState#getOrDefaultGeckolibData for deferred computationSerializableDataTicket#enforceValidTicketbind_pose_rotation legacy support from the Bone formatAnimationVariables classGeoObjectRenderer from E to O to match the rest of the libraryBoneSnapshots, PerBoneRender, and RenderPassInfo to the renderer base packageGeoRenderLayer classes to a builtin subpackageKeyFramesAdapter to GeckoLibResourcesKeyFramesAdapter to KeyFrameMarkersAdapter27.12.2025 · 1 367 downloads
null values#setTransitionTicks to AnimationControllerJsonUtil#jsonToVec3 direct helper methodGeckoLibClient#getGeoModelForItem as it was unused and unnecessary, use RenderUtil#getGeckoLibItemRenderer instead and get the model as neededGeckoLibServices.Client was extracted to GeckoLibClientServices, because java kept failing to compile for seemingly no reasonGeoBone#positionAndRender, which implements the full render operation for a given boneGeoRenderState#getOrDefaultGeckolibData for deferred computationSerializableDataTicket#enforceValidTicketbind_pose_rotation legacy support from the Bone formatAnimationVariables classGeoObjectRenderer from E to O to match the rest of the libraryBoneSnapshots, PerBoneRender, and RenderPassInfo to the renderer base packageGeoRenderLayer classes to a builtin subpackageKeyFramesAdapter to GeckoLibResourcesKeyFramesAdapter to KeyFrameMarkersAdapter27.12.2025 · 23 648 downloads
null values#setTransitionTicks to AnimationControllerJsonUtil#jsonToVec3 direct helper methodGeckoLibClient#getGeoModelForItem as it was unused and unnecessary, use RenderUtil#getGeckoLibItemRenderer instead and get the model as neededGeckoLibServices.Client was extracted to GeckoLibClientServices, because java kept failing to compile for seemingly no reasonGeoBone#positionAndRender, which implements the full render operation for a given boneGeoRenderState#getOrDefaultGeckolibData for deferred computationSerializableDataTicket#enforceValidTicketbind_pose_rotation legacy support from the Bone formatAnimationVariables classGeoObjectRenderer from E to O to match the rest of the libraryBoneSnapshots, PerBoneRender, and RenderPassInfo to the renderer base packageGeoRenderLayer classes to a builtin subpackageKeyFramesAdapter to GeckoLibResourcesKeyFramesAdapter to KeyFrameMarkersAdapter10.12.2025 · 44 271 downloads
10.12.2025 · 2 582 downloads
29.10.2025 · 21 037 downloads
BlockAndItemGeoLayer#renderStackForBone and #renderBlockForBone renamed to #submitItemStackRender and #submitBlockRender respectivelyOBJECT_RENDER_POSE and MODEL_RENDER_POSE DataTickets to the base GeoRenderer, so that subclasses do not need to handle them in overridesPerBoneRenderTask per GeoBoneGeoBone#transformToBonePerBoneRender tasks out into GeoRenderer#submitPerBoneRenderTasksskipPerBoneTasks in several GeoRenderer method calls as it is no longer neededPerBoneRenderTasks for neatly handling per-bone render tasks given their added complexityGeoArmorLayer's generic type to require an AvatarRenderState, as that is the actual type required by the models usedRenderStateUtillightCoords now by defaultGeoRenderState#getPackedLightGeoRenderer#defaultRender has been renamed to #submitRenderTasks to better represent its function now that we're not actually rendering at the time of that callGeoRenderer#actuallyRender has been renamed to #buildRenderTask to better represent its functionGeoLayer#render has been renamed to #buildRenderTask to better represent its functionGeoRenderer#reRender has been removed. Instead, render layers or renderers should submit another render task via GeoRenderer#buildRenderTask. Consequently, you no longer need to check for isReRender in renderer methodspreRender, scaleModelForRender, and adjustPositionForRender have all been moved to after the preRender event checkGeoRenderer#createRenderStateGeoEntityRenderer#createBaseRenderState - Use #createRenderState instead GeoRenderer#doPostRenderCleanupGeoArmorLayer.RenderDataRenderModelPositionerGeoArmorRenderer - it should now be significantly easier to use and understand#withRenderLayer to the various GeoRenderers to allow for a functional instantiationGeoObjectRenderer now uses a generic for its GeoRenderState, allowing for generic extensibilityGeoRenderer#addRenderData, GeoRenderLayer#addRenderData, GeoModel#prepareForRenderPass, and the various CompileRenderState events/hooks (#762)GeoRenderer#adjustPositionForRender to #adjustRenderPose to better reflect its intended usageItemArmorGeoLayer.RenderData now uses GeoArmorRenderer.ArmorSegments instead of manual slots and part gettersGeoRenderEvent and its various sub-events multiloader compatibleCompileBlockRenderLayersEventStatelessGeoBlockEntityStatelessGeoEntityStatelessGeoObjectStatelessGeoReplacedEntityStatelessGeoSingletonAnimatableStatelessAnimationControllerattack.punch DefaultAnimation constantmisc.idle.flying DefaultAnimation constantmove.dive DefaultAnimation constantDefaultAnimations#triggerOnlyController for creating a controller specifically for arbitrary triggered animationsRawAnimation#getStageCountAnimationController#getStateHandlerDefaultAnimations#genericWalkFlyIdleControllernew GeoEntityRenderer(ModEntities.MY_ENTITY);GeoRenderEvent#hasDataRenderUtil#getReplacedEntityRendererRenderUtil#getGeckoLibItemRendererRenderUtil#getGeckoLibEntityRendererRenderUtil#getGeckoLibBlockRendererRenderUtil#getGeckoLibArmorRendererEntityRenderState is properly extracted before passing to GeoArmorRenderer for extractionAnimation.StageRawAnimationGeoRenderEvent#getRenderDataRenderUtil#getCurrentSystemTickRenderUtil#booleanToFloatRenderUtil#getGeoModelForEntityTypeRenderUtil#getGeoModelForEntityRenderUtil#getGeoModelForItemRenderUtil#getGeoModelForBlockRenderUtil#getGeoModelForArmorRenderUtil#getCurrentTick to ClientUtilRenderUtil#arrayToVec to JsonUtilGeoRenderProvider#getGeoArmorRendererItemArmorGeoLayer#prepHumanoidModelForRender to #positionModelPartFromBone29.10.2025 · 21 457 downloads
BlockAndItemGeoLayer#renderStackForBone and #renderBlockForBone renamed to #submitItemStackRender and #submitBlockRender respectivelyOBJECT_RENDER_POSE and MODEL_RENDER_POSE DataTickets to the base GeoRenderer, so that subclasses do not need to handle them in overridesPerBoneRenderTask per GeoBoneGeoBone#transformToBonePerBoneRender tasks out into GeoRenderer#submitPerBoneRenderTasksskipPerBoneTasks in several GeoRenderer method calls as it is no longer neededPerBoneRenderTasks for neatly handling per-bone render tasks given their added complexityGeoArmorLayer's generic type to require an AvatarRenderState, as that is the actual type required by the models usedRenderStateUtillightCoords now by defaultGeoRenderState#getPackedLightGeoRenderer#defaultRender has been renamed to #submitRenderTasks to better represent its function now that we're not actually rendering at the time of that callGeoRenderer#actuallyRender has been renamed to #buildRenderTask to better represent its functionGeoLayer#render has been renamed to #buildRenderTask to better represent its functionGeoRenderer#reRender has been removed. Instead, render layers or renderers should submit another render task via GeoRenderer#buildRenderTask. Consequently, you no longer need to check for isReRender in renderer methodspreRender, scaleModelForRender, and adjustPositionForRender have all been moved to after the preRender event checkGeoRenderer#createRenderStateGeoEntityRenderer#createBaseRenderState - Use #createRenderState instead GeoRenderer#doPostRenderCleanupGeoArmorLayer.RenderDataRenderModelPositionerGeoArmorRenderer - it should now be significantly easier to use and understand#withRenderLayer to the various GeoRenderers to allow for a functional instantiationGeoObjectRenderer now uses a generic for its GeoRenderState, allowing for generic extensibilityGeoRenderer#addRenderData, GeoRenderLayer#addRenderData, GeoModel#prepareForRenderPass, and the various CompileRenderState events/hooks (#762)GeoRenderer#adjustPositionForRender to #adjustRenderPose to better reflect its intended usageItemArmorGeoLayer.RenderData now uses GeoArmorRenderer.ArmorSegments instead of manual slots and part gettersGeoRenderEvent and its various sub-events multiloader compatibleCompileBlockRenderLayersEventStatelessGeoBlockEntityStatelessGeoEntityStatelessGeoObjectStatelessGeoReplacedEntityStatelessGeoSingletonAnimatableStatelessAnimationControllerattack.punch DefaultAnimation constantmisc.idle.flying DefaultAnimation constantmove.dive DefaultAnimation constantDefaultAnimations#triggerOnlyController for creating a controller specifically for arbitrary triggered animationsRawAnimation#getStageCountAnimationController#getStateHandlerDefaultAnimations#genericWalkFlyIdleControllernew GeoEntityRenderer(ModEntities.MY_ENTITY);GeoRenderEvent#hasDataRenderUtil#getReplacedEntityRendererRenderUtil#getGeckoLibItemRendererRenderUtil#getGeckoLibEntityRendererRenderUtil#getGeckoLibBlockRendererRenderUtil#getGeckoLibArmorRendererEntityRenderState is properly extracted before passing to GeoArmorRenderer for extractionAnimation.StageRawAnimationGeoRenderEvent#getRenderDataRenderUtil#getCurrentSystemTickRenderUtil#booleanToFloatRenderUtil#getGeoModelForEntityTypeRenderUtil#getGeoModelForEntityRenderUtil#getGeoModelForItemRenderUtil#getGeoModelForBlockRenderUtil#getGeoModelForArmorRenderUtil#getCurrentTick to ClientUtilRenderUtil#arrayToVec to JsonUtilGeoRenderProvider#getGeoArmorRendererItemArmorGeoLayer#prepHumanoidModelForRender to #positionModelPartFromBone29.10.2025 · 197 139 downloads
BlockAndItemGeoLayer#renderStackForBone and #renderBlockForBone renamed to #submitItemStackRender and #submitBlockRender respectivelyOBJECT_RENDER_POSE and MODEL_RENDER_POSE DataTickets to the base GeoRenderer, so that subclasses do not need to handle them in overridesPerBoneRenderTask per GeoBoneGeoBone#transformToBonePerBoneRender tasks out into GeoRenderer#submitPerBoneRenderTasksskipPerBoneTasks in several GeoRenderer method calls as it is no longer neededPerBoneRenderTasks for neatly handling per-bone render tasks given their added complexityGeoArmorLayer's generic type to require an AvatarRenderState, as that is the actual type required by the models usedRenderStateUtillightCoords now by defaultGeoRenderState#getPackedLightGeoRenderer#defaultRender has been renamed to #submitRenderTasks to better represent its function now that we're not actually rendering at the time of that callGeoRenderer#actuallyRender has been renamed to #buildRenderTask to better represent its functionGeoLayer#render has been renamed to #buildRenderTask to better represent its functionGeoRenderer#reRender has been removed. Instead, render layers or renderers should submit another render task via GeoRenderer#buildRenderTask. Consequently, you no longer need to check for isReRender in renderer methodspreRender, scaleModelForRender, and adjustPositionForRender have all been moved to after the preRender event checkGeoRenderer#createRenderStateGeoEntityRenderer#createBaseRenderState - Use #createRenderState instead GeoRenderer#doPostRenderCleanupGeoArmorLayer.RenderDataRenderModelPositionerGeoArmorRenderer - it should now be significantly easier to use and understand#withRenderLayer to the various GeoRenderers to allow for a functional instantiationGeoObjectRenderer now uses a generic for its GeoRenderState, allowing for generic extensibilityGeoRenderer#addRenderData, GeoRenderLayer#addRenderData, GeoModel#prepareForRenderPass, and the various CompileRenderState events/hooks (#762)GeoRenderer#adjustPositionForRender to #adjustRenderPose to better reflect its intended usageItemArmorGeoLayer.RenderData now uses GeoArmorRenderer.ArmorSegments instead of manual slots and part gettersGeoRenderEvent and its various sub-events multiloader compatibleCompileBlockRenderLayersEventStatelessGeoBlockEntityStatelessGeoEntityStatelessGeoObjectStatelessGeoReplacedEntityStatelessGeoSingletonAnimatableStatelessAnimationControllerattack.punch DefaultAnimation constantmisc.idle.flying DefaultAnimation constantmove.dive DefaultAnimation constantDefaultAnimations#triggerOnlyController for creating a controller specifically for arbitrary triggered animationsRawAnimation#getStageCountAnimationController#getStateHandlerDefaultAnimations#genericWalkFlyIdleControllernew GeoEntityRenderer(ModEntities.MY_ENTITY);GeoRenderEvent#hasDataRenderUtil#getReplacedEntityRendererRenderUtil#getGeckoLibItemRendererRenderUtil#getGeckoLibEntityRendererRenderUtil#getGeckoLibBlockRendererRenderUtil#getGeckoLibArmorRendererEntityRenderState is properly extracted before passing to GeoArmorRenderer for extractionAnimation.StageRawAnimationGeoRenderEvent#getRenderDataRenderUtil#getCurrentSystemTickRenderUtil#booleanToFloatRenderUtil#getGeoModelForEntityTypeRenderUtil#getGeoModelForEntityRenderUtil#getGeoModelForItemRenderUtil#getGeoModelForBlockRenderUtil#getGeoModelForArmorRenderUtil#getCurrentTick to ClientUtilRenderUtil#arrayToVec to JsonUtilGeoRenderProvider#getGeoArmorRendererItemArmorGeoLayer#prepHumanoidModelForRender to #positionModelPartFromBone22.10.2025 · 1 872 downloads
BlockAndItemGeoLayer#renderStackForBone and #renderBlockForBone renamed to #submitItemStackRender and #submitBlockRender respectivelyOBJECT_RENDER_POSE and MODEL_RENDER_POSE DataTickets to the base GeoRenderer, so that subclasses do not need to handle them in overridesPerBoneRenderTask per GeoBoneGeoBone#transformToBonePerBoneRender tasks out into GeoRenderer#submitPerBoneRenderTasksskipPerBoneTasks in several GeoRenderer method calls as it is no longer neededPerBoneRenderTasks for neatly handling per-bone render tasks given their added complexityGeoArmorLayer's generic type to require an AvatarRenderState, as that is the actual type required by the models usedRenderStateUtillightCoords now by defaultGeoRenderState#getPackedLightGeoRenderer#defaultRender has been renamed to #submitRenderTasks to better represent its function now that we're not actually rendering at the time of that callGeoRenderer#actuallyRender has been renamed to #buildRenderTask to better represent its functionGeoLayer#render has been renamed to #buildRenderTask to better represent its functionGeoRenderer#reRender has been removed. Instead, render layers or renderers should submit another render task via GeoRenderer#buildRenderTask. Consequently, you no longer need to check for isReRender in renderer methodspreRender, scaleModelForRender, and adjustPositionForRender have all been moved to after the preRender event checkGeoRenderer#createRenderStateGeoEntityRenderer#createBaseRenderState - Use #createRenderState instead GeoRenderer#doPostRenderCleanupGeoArmorLayer.RenderDataGeoArmorRenderer - it should now be significantly easier to use and understand#withRenderLayer to the various GeoRenderers to allow for a functional instantiationGeoObjectRenderer now uses a generic for its GeoRenderState, allowing for generic extensibilityGeoRenderer#addRenderData, GeoRenderLayer#addRenderData, GeoModel#prepareForRenderPass, and the various CompileRenderState events/hooks (#762)GeoRenderer#adjustPositionForRender to #adjustRenderPose to better reflect its intended usageItemArmorGeoLayer.RenderData now uses GeoArmorRenderer.ArmorSegments instead of manual slots and part gettersGeoRenderEvent and its various sub-events multiloader compatibleCompileBlockRenderLayersEventStatelessGeoBlockEntityStatelessGeoEntityStatelessGeoObjectStatelessGeoReplacedEntityStatelessGeoSingletonAnimatableStatelessAnimationControllerattack.punch DefaultAnimation constantmisc.idle.flying DefaultAnimation constantmove.dive DefaultAnimation constantDefaultAnimations#triggerOnlyController for creating a controller specifically for arbitrary triggered animationsRawAnimation#getStageCountAnimationController#getStateHandlerDefaultAnimations#genericWalkFlyIdleControllernew GeoEntityRenderer(ModEntities.MY_ENTITY);GeoRenderEvent#hasDataRenderUtil#getReplacedEntityRendererRenderUtil#getGeckoLibItemRendererRenderUtil#getGeckoLibEntityRendererRenderUtil#getGeckoLibBlockRendererRenderUtil#getGeckoLibArmorRendererEntityRenderState is properly extracted before passing to GeoArmorRenderer for extractionAnimation.StageRawAnimationGeoRenderEvent#getRenderDataRenderUtil#getCurrentSystemTickRenderUtil#booleanToFloatRenderUtil#getGeoModelForEntityTypeRenderUtil#getGeoModelForEntityRenderUtil#getGeoModelForItemRenderUtil#getGeoModelForBlockRenderUtil#getGeoModelForArmorRenderUtil#getCurrentTick to ClientUtilRenderUtil#arrayToVec to JsonUtilGeoRenderProvider#getGeoArmorRendererItemArmorGeoLayer#prepHumanoidModelForRender to #positionModelPartFromBone22.10.2025 · 1 291 downloads
BlockAndItemGeoLayer#renderStackForBone and #renderBlockForBone renamed to #submitItemStackRender and #submitBlockRender respectivelyOBJECT_RENDER_POSE and MODEL_RENDER_POSE DataTickets to the base GeoRenderer, so that subclasses do not need to handle them in overridesPerBoneRenderTask per GeoBoneGeoBone#transformToBonePerBoneRender tasks out into GeoRenderer#submitPerBoneRenderTasksskipPerBoneTasks in several GeoRenderer method calls as it is no longer neededPerBoneRenderTasks for neatly handling per-bone render tasks given their added complexityGeoArmorLayer's generic type to require an AvatarRenderState, as that is the actual type required by the models usedRenderStateUtillightCoords now by defaultGeoRenderState#getPackedLightGeoRenderer#defaultRender has been renamed to #submitRenderTasks to better represent its function now that we're not actually rendering at the time of that callGeoRenderer#actuallyRender has been renamed to #buildRenderTask to better represent its functionGeoLayer#render has been renamed to #buildRenderTask to better represent its functionGeoRenderer#reRender has been removed. Instead, render layers or renderers should submit another render task via GeoRenderer#buildRenderTask. Consequently, you no longer need to check for isReRender in renderer methodspreRender, scaleModelForRender, and adjustPositionForRender have all been moved to after the preRender event checkGeoRenderer#createRenderStateGeoEntityRenderer#createBaseRenderState - Use #createRenderState instead GeoRenderer#doPostRenderCleanupGeoArmorLayer.RenderDataGeoArmorRenderer - it should now be significantly easier to use and understand#withRenderLayer to the various GeoRenderers to allow for a functional instantiationGeoObjectRenderer now uses a generic for its GeoRenderState, allowing for generic extensibilityGeoRenderer#addRenderData, GeoRenderLayer#addRenderData, GeoModel#prepareForRenderPass, and the various CompileRenderState events/hooks (#762)GeoRenderer#adjustPositionForRender to #adjustRenderPose to better reflect its intended usageItemArmorGeoLayer.RenderData now uses GeoArmorRenderer.ArmorSegments instead of manual slots and part gettersGeoRenderEvent and its various sub-events multiloader compatibleCompileBlockRenderLayersEventStatelessGeoBlockEntityStatelessGeoEntityStatelessGeoObjectStatelessGeoReplacedEntityStatelessGeoSingletonAnimatableStatelessAnimationControllerattack.punch DefaultAnimation constantmisc.idle.flying DefaultAnimation constantmove.dive DefaultAnimation constantDefaultAnimations#triggerOnlyController for creating a controller specifically for arbitrary triggered animationsRawAnimation#getStageCountAnimationController#getStateHandlerDefaultAnimations#genericWalkFlyIdleControllernew GeoEntityRenderer(ModEntities.MY_ENTITY);GeoRenderEvent#hasDataRenderUtil#getReplacedEntityRendererRenderUtil#getGeckoLibItemRendererRenderUtil#getGeckoLibEntityRendererRenderUtil#getGeckoLibBlockRendererRenderUtil#getGeckoLibArmorRendererEntityRenderState is properly extracted before passing to GeoArmorRenderer for extractionAnimation.StageRawAnimationGeoRenderEvent#getRenderDataRenderUtil#getCurrentSystemTickRenderUtil#booleanToFloatRenderUtil#getGeoModelForEntityTypeRenderUtil#getGeoModelForEntityRenderUtil#getGeoModelForItemRenderUtil#getGeoModelForBlockRenderUtil#getGeoModelForArmorRenderUtil#getCurrentTick to ClientUtilRenderUtil#arrayToVec to JsonUtilGeoRenderProvider#getGeoArmorRendererItemArmorGeoLayer#prepHumanoidModelForRender to #positionModelPartFromBone22.10.2025 · 7 676 downloads
BlockAndItemGeoLayer#renderStackForBone and #renderBlockForBone renamed to #submitItemStackRender and #submitBlockRender respectivelyOBJECT_RENDER_POSE and MODEL_RENDER_POSE DataTickets to the base GeoRenderer, so that subclasses do not need to handle them in overridesPerBoneRenderTask per GeoBoneGeoBone#transformToBonePerBoneRender tasks out into GeoRenderer#submitPerBoneRenderTasksskipPerBoneTasks in several GeoRenderer method calls as it is no longer neededPerBoneRenderTasks for neatly handling per-bone render tasks given their added complexityGeoArmorLayer's generic type to require an AvatarRenderState, as that is the actual type required by the models usedRenderStateUtillightCoords now by defaultGeoRenderState#getPackedLightGeoRenderer#defaultRender has been renamed to #submitRenderTasks to better represent its function now that we're not actually rendering at the time of that callGeoRenderer#actuallyRender has been renamed to #buildRenderTask to better represent its functionGeoLayer#render has been renamed to #buildRenderTask to better represent its functionGeoRenderer#reRender has been removed. Instead, render layers or renderers should submit another render task via GeoRenderer#buildRenderTask. Consequently, you no longer need to check for isReRender in renderer methodspreRender, scaleModelForRender, and adjustPositionForRender have all been moved to after the preRender event checkGeoRenderer#createRenderStateGeoEntityRenderer#createBaseRenderState - Use #createRenderState instead GeoRenderer#doPostRenderCleanupGeoArmorLayer.RenderDataGeoArmorRenderer - it should now be significantly easier to use and understand#withRenderLayer to the various GeoRenderers to allow for a functional instantiationGeoObjectRenderer now uses a generic for its GeoRenderState, allowing for generic extensibilityGeoRenderer#addRenderData, GeoRenderLayer#addRenderData, GeoModel#prepareForRenderPass, and the various CompileRenderState events/hooks (#762)GeoRenderer#adjustPositionForRender to #adjustRenderPose to better reflect its intended usageItemArmorGeoLayer.RenderData now uses GeoArmorRenderer.ArmorSegments instead of manual slots and part gettersGeoRenderEvent and its various sub-events multiloader compatibleCompileBlockRenderLayersEventStatelessGeoBlockEntityStatelessGeoEntityStatelessGeoObjectStatelessGeoReplacedEntityStatelessGeoSingletonAnimatableStatelessAnimationControllerattack.punch DefaultAnimation constantmisc.idle.flying DefaultAnimation constantmove.dive DefaultAnimation constantDefaultAnimations#triggerOnlyController for creating a controller specifically for arbitrary triggered animationsRawAnimation#getStageCountAnimationController#getStateHandlerDefaultAnimations#genericWalkFlyIdleControllernew GeoEntityRenderer(ModEntities.MY_ENTITY);GeoRenderEvent#hasDataRenderUtil#getReplacedEntityRendererRenderUtil#getGeckoLibItemRendererRenderUtil#getGeckoLibEntityRendererRenderUtil#getGeckoLibBlockRendererRenderUtil#getGeckoLibArmorRendererEntityRenderState is properly extracted before passing to GeoArmorRenderer for extractionAnimation.StageRawAnimationGeoRenderEvent#getRenderDataRenderUtil#getCurrentSystemTickRenderUtil#booleanToFloatRenderUtil#getGeoModelForEntityTypeRenderUtil#getGeoModelForEntityRenderUtil#getGeoModelForItemRenderUtil#getGeoModelForBlockRenderUtil#getGeoModelForArmorRenderUtil#getCurrentTick to ClientUtilRenderUtil#arrayToVec to JsonUtilGeoRenderProvider#getGeoArmorRendererItemArmorGeoLayer#prepHumanoidModelForRender to #positionModelPartFromBone12.10.2025 · 2 236 downloads
lightCoords now by defaultGeoRenderState#getPackedLightGeoRenderer#defaultRender has been renamed to #submitRenderTasks to better represent its function now that we're not actually rendering at the time of that callGeoRenderer#actuallyRender has been renamed to #buildRenderTask to better represent its functionGeoLayer#render has been renamed to #buildRenderTask to better represent its functionGeoRenderer#reRender has been removed. Instead, render layers or renderers should submit another render task via GeoRenderer#buildRenderTask. Consequently, you no longer need to check for isReRender in renderer methodspreRender, scaleModelForRender, and adjustPositionForRender have all been moved to after the preRender event checkGeoRenderer#createRenderStateGeoEntityRenderer#createBaseRenderState - Use #createRenderState instead GeoRenderer#doPostRenderCleanupGeoArmorLayer.RenderDataGeoArmorRenderer - it should now be significantly easier to use and understand#withRenderLayer to the various GeoRenderers to allow for a functional instantiationGeoObjectRenderer now uses a generic for its GeoRenderState, allowing for generic extensibilityGeoRenderer#addRenderData, GeoRenderLayer#addRenderData, GeoModel#prepareForRenderPass, and the various CompileRenderState events/hooks (#762)GeoRenderer#adjustPositionForRender to #adjustRenderPose to better reflect its intended usageItemArmorGeoLayer.RenderData now uses GeoArmorRenderer.ArmorSegments instead of manual slots and part gettersGeoRenderEvent and its various sub-events multiloader compatibleCompileBlockRenderLayersEventStatelessGeoBlockEntityStatelessGeoEntityStatelessGeoObjectStatelessGeoReplacedEntityStatelessGeoSingletonAnimatableStatelessAnimationControllerattack.punch DefaultAnimation constantmisc.idle.flying DefaultAnimation constantmove.dive DefaultAnimation constantDefaultAnimations#triggerOnlyController for creating a controller specifically for arbitrary triggered animationsRawAnimation#getStageCountAnimationController#getStateHandlerDefaultAnimations#genericWalkFlyIdleControllernew GeoEntityRenderer(ModEntities.MY_ENTITY);GeoRenderEvent#hasDataRenderUtil#getReplacedEntityRendererRenderUtil#getGeckoLibItemRendererRenderUtil#getGeckoLibEntityRendererRenderUtil#getGeckoLibBlockRendererRenderUtil#getGeckoLibArmorRendererEntityRenderState is properly extracted before passing to GeoArmorRenderer for extractionAnimation.StageRawAnimationGeoRenderEvent#getRenderDataRenderUtil#getCurrentSystemTickRenderUtil#booleanToFloatRenderUtil#getGeoModelForEntityTypeRenderUtil#getGeoModelForEntityRenderUtil#getGeoModelForItemRenderUtil#getGeoModelForBlockRenderUtil#getGeoModelForArmorRenderUtil#getCurrentTick to ClientUtilRenderUtil#arrayToVec to JsonUtilGeoRenderProvider#getGeoArmorRendererItemArmorGeoLayer#prepHumanoidModelForRender to #positionModelPartFromBone12.10.2025 · 1 931 downloads
lightCoords now by defaultGeoRenderState#getPackedLightGeoRenderer#defaultRender has been renamed to #submitRenderTasks to better represent its function now that we're not actually rendering at the time of that callGeoRenderer#actuallyRender has been renamed to #buildRenderTask to better represent its functionGeoLayer#render has been renamed to #buildRenderTask to better represent its functionGeoRenderer#reRender has been removed. Instead, render layers or renderers should submit another render task via GeoRenderer#buildRenderTask. Consequently, you no longer need to check for isReRender in renderer methodspreRender, scaleModelForRender, and adjustPositionForRender have all been moved to after the preRender event checkGeoRenderer#createRenderStateGeoEntityRenderer#createBaseRenderState - Use #createRenderState instead GeoRenderer#doPostRenderCleanupGeoArmorLayer.RenderDataGeoArmorRenderer - it should now be significantly easier to use and understand#withRenderLayer to the various GeoRenderers to allow for a functional instantiationGeoObjectRenderer now uses a generic for its GeoRenderState, allowing for generic extensibilityGeoRenderer#addRenderData, GeoRenderLayer#addRenderData, GeoModel#prepareForRenderPass, and the various CompileRenderState events/hooks (#762)GeoRenderer#adjustPositionForRender to #adjustRenderPose to better reflect its intended usageItemArmorGeoLayer.RenderData now uses GeoArmorRenderer.ArmorSegments instead of manual slots and part gettersGeoRenderEvent and its various sub-events multiloader compatibleCompileBlockRenderLayersEventStatelessGeoBlockEntityStatelessGeoEntityStatelessGeoObjectStatelessGeoReplacedEntityStatelessGeoSingletonAnimatableStatelessAnimationControllerattack.punch DefaultAnimation constantmisc.idle.flying DefaultAnimation constantmove.dive DefaultAnimation constantDefaultAnimations#triggerOnlyController for creating a controller specifically for arbitrary triggered animationsRawAnimation#getStageCountAnimationController#getStateHandlerDefaultAnimations#genericWalkFlyIdleControllernew GeoEntityRenderer(ModEntities.MY_ENTITY);GeoRenderEvent#hasDataRenderUtil#getReplacedEntityRendererRenderUtil#getGeckoLibItemRendererRenderUtil#getGeckoLibEntityRendererRenderUtil#getGeckoLibBlockRendererRenderUtil#getGeckoLibArmorRendererEntityRenderState is properly extracted before passing to GeoArmorRenderer for extractionAnimation.StageRawAnimationGeoRenderEvent#getRenderDataRenderUtil#getCurrentSystemTickRenderUtil#booleanToFloatRenderUtil#getGeoModelForEntityTypeRenderUtil#getGeoModelForEntityRenderUtil#getGeoModelForItemRenderUtil#getGeoModelForBlockRenderUtil#getGeoModelForArmorRenderUtil#getCurrentTick to ClientUtilRenderUtil#arrayToVec to JsonUtilGeoRenderProvider#getGeoArmorRendererItemArmorGeoLayer#prepHumanoidModelForRender to #positionModelPartFromBone12.10.2025 · 44 042 downloads
lightCoords now by defaultGeoRenderState#getPackedLightGeoRenderer#defaultRender has been renamed to #submitRenderTasks to better represent its function now that we're not actually rendering at the time of that callGeoRenderer#actuallyRender has been renamed to #buildRenderTask to better represent its functionGeoLayer#render has been renamed to #buildRenderTask to better represent its functionGeoRenderer#reRender has been removed. Instead, render layers or renderers should submit another render task via GeoRenderer#buildRenderTask. Consequently, you no longer need to check for isReRender in renderer methodspreRender, scaleModelForRender, and adjustPositionForRender have all been moved to after the preRender event checkGeoRenderer#createRenderStateGeoEntityRenderer#createBaseRenderState - Use #createRenderState instead GeoRenderer#doPostRenderCleanupGeoArmorLayer.RenderDataGeoArmorRenderer - it should now be significantly easier to use and understand#withRenderLayer to the various GeoRenderers to allow for a functional instantiationGeoObjectRenderer now uses a generic for its GeoRenderState, allowing for generic extensibilityGeoRenderer#addRenderData, GeoRenderLayer#addRenderData, GeoModel#prepareForRenderPass, and the various CompileRenderState events/hooks (#762)GeoRenderer#adjustPositionForRender to #adjustRenderPose to better reflect its intended usageItemArmorGeoLayer.RenderData now uses GeoArmorRenderer.ArmorSegments instead of manual slots and part gettersGeoRenderEvent and its various sub-events multiloader compatibleCompileBlockRenderLayersEventStatelessGeoBlockEntityStatelessGeoEntityStatelessGeoObjectStatelessGeoReplacedEntityStatelessGeoSingletonAnimatableStatelessAnimationControllerattack.punch DefaultAnimation constantmisc.idle.flying DefaultAnimation constantmove.dive DefaultAnimation constantDefaultAnimations#triggerOnlyController for creating a controller specifically for arbitrary triggered animationsRawAnimation#getStageCountAnimationController#getStateHandlerDefaultAnimations#genericWalkFlyIdleControllernew GeoEntityRenderer(ModEntities.MY_ENTITY);GeoRenderEvent#hasDataRenderUtil#getReplacedEntityRendererRenderUtil#getGeckoLibItemRendererRenderUtil#getGeckoLibEntityRendererRenderUtil#getGeckoLibBlockRendererRenderUtil#getGeckoLibArmorRendererEntityRenderState is properly extracted before passing to GeoArmorRenderer for extractionAnimation.StageRawAnimationGeoRenderEvent#getRenderDataRenderUtil#getCurrentSystemTickRenderUtil#booleanToFloatRenderUtil#getGeoModelForEntityTypeRenderUtil#getGeoModelForEntityRenderUtil#getGeoModelForItemRenderUtil#getGeoModelForBlockRenderUtil#getGeoModelForArmorRenderUtil#getCurrentTick to ClientUtilRenderUtil#arrayToVec to JsonUtilGeoRenderProvider#getGeoArmorRendererItemArmorGeoLayer#prepHumanoidModelForRender to #positionModelPartFromBone23.09.2025 · 6 190 461 downloads
v4.8.2
23.09.2025 · 1 768 593 downloads
v4.8.2
22.09.2025 · 811 909 downloads
v4.8.2
22.09.2025 · 20 338 downloads
v4.8.2
22.09.2025 · 1 976 769 downloads
v4.8.2
22.09.2025 · 29 520 downloads
v4.8.1
22.09.2025 · 9 518 downloads
v4.8
StatelessGeoBlockEntityStatelessGeoEntityStatelessGeoObjectStatelessGeoReplacedEntityStatelessGeoSingletonAnimatableStatelessAnimationControllerNetworkUtil, adding some network helpers for writing/reading RawAnimationsRawAnimation#getStageCountAnimationController#getStateHandlerDefaultAnimations#triggerOnlyController for creating a controller specifically for arbitrary triggered animationsDefaultAnimations#genericWalkFlyIdleControllerattack.punch DefaultAnimation constantmisc.idle.flying DefaultAnimation constantmove.dive DefaultAnimation constantnew GeoEntityRenderer(ModEntities.MY_ENTITY);21.09.2025 · 109 089 downloads
v4.8
StatelessGeoBlockEntityStatelessGeoEntityStatelessGeoObjectStatelessGeoReplacedEntityStatelessGeoSingletonAnimatableStatelessAnimationControllerNetworkUtil, adding some network helpers for writing/reading RawAnimationsRawAnimation#getStageCountAnimationController#getStateHandlerDefaultAnimations#triggerOnlyController for creating a controller specifically for arbitrary triggered animationsDefaultAnimations#genericWalkFlyIdleControllerattack.punch DefaultAnimation constantmisc.idle.flying DefaultAnimation constantmove.dive DefaultAnimation constantnew GeoEntityRenderer(ModEntities.MY_ENTITY);21.09.2025 · 198 875 downloads
v4.8
StatelessGeoBlockEntityStatelessGeoEntityStatelessGeoObjectStatelessGeoReplacedEntityStatelessGeoSingletonAnimatableStatelessAnimationControllerNetworkUtil, adding some network helpers for writing/reading RawAnimationsRawAnimation#getStageCountAnimationController#getStateHandlerDefaultAnimations#triggerOnlyController for creating a controller specifically for arbitrary triggered animationsDefaultAnimations#genericWalkFlyIdleControllerattack.punch DefaultAnimation constantmisc.idle.flying DefaultAnimation constantmove.dive DefaultAnimation constantnew GeoEntityRenderer(ModEntities.MY_ENTITY);20.09.2025 · 15 282 downloads
v4.8.1
20.09.2025 · 926 downloads
v4.8.1
20.09.2025 · 12 908 downloads
v4.8.1
18.09.2025 · 6 563 downloads
v4.8
StatelessGeoBlockEntityStatelessGeoEntityStatelessGeoObjectStatelessGeoReplacedEntityStatelessGeoSingletonAnimatableStatelessAnimationControllerattack.punch DefaultAnimation constantmisc.idle.flying DefaultAnimation constantmove.dive DefaultAnimation constantDefaultAnimations#triggerOnlyController for creating a controller specifically for arbitrary triggered animationsAnimation.StageRawAnimationRawAnimation#getStageCountAnimationController#getStateHandlerDefaultAnimations#genericWalkFlyIdleControllernew GeoEntityRenderer(ModEntities.MY_ENTITY);18.09.2025 · 434 downloads
v4.8
StatelessGeoBlockEntityStatelessGeoEntityStatelessGeoObjectStatelessGeoReplacedEntityStatelessGeoSingletonAnimatableStatelessAnimationControllerattack.punch DefaultAnimation constantmisc.idle.flying DefaultAnimation constantmove.dive DefaultAnimation constantDefaultAnimations#triggerOnlyController for creating a controller specifically for arbitrary triggered animationsAnimation.StageRawAnimationRawAnimation#getStageCountAnimationController#getStateHandlerDefaultAnimations#genericWalkFlyIdleControllernew GeoEntityRenderer(ModEntities.MY_ENTITY);18.09.2025 · 8 381 downloads
v4.8
StatelessGeoBlockEntityStatelessGeoEntityStatelessGeoObjectStatelessGeoReplacedEntityStatelessGeoSingletonAnimatableStatelessAnimationControllerattack.punch DefaultAnimation constantmisc.idle.flying DefaultAnimation constantmove.dive DefaultAnimation constantDefaultAnimations#triggerOnlyController for creating a controller specifically for arbitrary triggered animationsAnimation.StageRawAnimationRawAnimation#getStageCountAnimationController#getStateHandlerDefaultAnimations#genericWalkFlyIdleControllernew GeoEntityRenderer(ModEntities.MY_ENTITY);24.08.2025 · 644 280 downloads
v4.7.4
24.08.2025 · 717 730 downloads
v4.7.4
24.08.2025 · 113 435 downloads
v4.7.7
24.08.2025 · 4 391 downloads
v4.7.7
24.08.2025 · 909 679 downloads
v4.7.7
01.08.2025 · 18 233 downloads
01.08.2025 · 12 193 downloads
01.08.2025 · 257 729 downloads
20.07.2025 · 1 977 313 downloads
v4.7.3
20.07.2025 · 222 976 downloads
v4.7.3
03.07.2025 · 5 665 downloads
03.07.2025 · 3 841 downloads
03.07.2025 · 62 732 downloads
01.07.2025 · 468 downloads
01.07.2025 · 380 downloads
01.07.2025 · 1 359 downloads
20.06.2025 · 3 297 downloads
ItemRenderContext available during AnimationTest stage (#735)20.06.2025 · 2 913 downloads
ItemRenderContext available during AnimationTest stage (#735)20.06.2025 · 53 605 downloads
ItemRenderContext available during AnimationTest stage (#735)19.06.2025 · 328 downloads
AutoGlowingGeoLayer#shouldAddZOffset - A toggle to add better compatibility for specific render types or special circumstancesAutoGlowingGeoLayer#getBrightness - A configurable value to adjust the brightness of the emissive layerAutoGlowingGeoLayer#shouldRespectWorldLighting17.06.2025 · 684 downloads
AutoGlowingGeoLayer#shouldAddZOffset - A toggle to add better compatibility for specific render types or special circumstancesAutoGlowingGeoLayer#getBrightness - A configurable value to adjust the brightness of the emissive layerAutoGlowingGeoLayer#shouldRespectWorldLighting17.06.2025 · 2 011 downloads
AutoGlowingGeoLayer#shouldAddZOffset - A toggle to add better compatibility for specific render types or special circumstancesAutoGlowingGeoLayer#getBrightness - A configurable value to adjust the brightness of the emissive layerAutoGlowingGeoLayer#shouldRespectWorldLighting16.06.2025 · 477 944 downloads
v4.7.6
16.06.2025 · 14 425 downloads
v4.7.6
16.06.2025 · 794 915 downloads
v4.7.6
16.06.2025 · 502 204 downloads
v4.7.2
16.06.2025 · 409 986 downloads
v4.7.2
16.06.2025 · 26 603 downloads
AutoGlowingGeoLayer#shouldAddZOffset - A toggle to add better compatibility for specific render types or special circumstancesAutoGlowingGeoLayer#getBrightness - A configurable value to adjust the brightness of the emissive layerAutoGlowingGeoLayer#shouldRespectWorldLighting16.06.2025 · 4 283 downloads
AutoGlowingGeoLayer#shouldAddZOffset - A toggle to add better compatibility for specific render types or special circumstancesAutoGlowingGeoLayer#getBrightness - A configurable value to adjust the brightness of the emissive layerAutoGlowingGeoLayer#shouldRespectWorldLighting16.06.2025 · 67 121 downloads
AutoGlowingGeoLayer#shouldAddZOffset - A toggle to add better compatibility for specific render types or special circumstancesAutoGlowingGeoLayer#getBrightness - A configurable value to adjust the brightness of the emissive layerAutoGlowingGeoLayer#shouldRespectWorldLighting06.06.2025 · 1 847 downloads
v4.7.3
06.06.2025 · 1 350 downloads
v4.7.3
06.06.2025 · 10 858 downloads
v4.8.5
06.06.2025 · 7 338 downloads
v4.8.5
06.06.2025 · 96 753 downloads
v4.8.5
06.06.2025 · 1 030 downloads
06.06.2025 · 929 downloads
06.06.2025 · 7 087 downloads
06.06.2025 · 739 611 downloads
v4.7.1.3
Fabric:
- Update MixinItemRenderer to improve third-party mod compatibility
06.06.2025 · 85 509 downloads
v4.7.1.3
Fabric:
- Update MixinItemRenderer to improve third-party mod compatibility
19.05.2025 · 3 190 downloads
19.05.2025 · 2 133 downloads
19.05.2025 · 12 413 downloads
21.04.2025 · 4 648 downloads
ItemInHandGeoLayerPerBoneRenderDataTickets#IS_LEFT_HANDEDDataTickets#IS_CROUCHINGGeoRender#adjustPositionForRenderDirectionalProjectileRendererTextureLayerGeoLayerCustomBoneTextureGeoLayerDefaultedGeoModel using the old formatscaleModelForRender for GeoEntityRenderer, and moved sleeping pose translation to better account for scalingscaleModelForRender out of preRender and into its own callRenderUtil#getTextureDimensions and allowed it to account for post-loading modificationsBakedGeoModel#getBoneGeoRenderer#applyRenderLayersForBone. Per-bone renders are now added in #preApplyRenderLayersGeoRenderLayer#addPerBoneRenderItemArmorGeoLayer works to be more efficient, and support Elytras (although they're not 100% correct yet)BlockAndItemGeoLayer works to be more efficient and cleanerItemArmorGeoLayer#prepModelPartForRender to prepHumanoidModelForRenderGeckoLibClient#getArmorModelForItem to return a HumanoidModel instead of a base Model, since non-humanoid models never get usedpackedLight, packedOverlay, and renderColor to GeoRenderer#renderFinalfinal from GeoEntityRenderer#calculateYRotBoneFilterGeoLayer and FastBoneFilterGeoLayerGeckoLibAnimatedTexture crashing when failing to load a textureGeoItemRenderer and GeoObjectRenderer positioning incorrectly when scaledGeoReplacedEntityRenderer not propagating PoseStack manipulationsItemArmorGeoLayer colliding with other layers that use the same DataTicket21.04.2025 · 3 219 downloads
ItemInHandGeoLayerPerBoneRenderDataTickets#IS_LEFT_HANDEDDataTickets#IS_CROUCHINGGeoRender#adjustPositionForRenderDirectionalProjectileRendererTextureLayerGeoLayerCustomBoneTextureGeoLayerDefaultedGeoModel using the old formatscaleModelForRender for GeoEntityRenderer, and moved sleeping pose translation to better account for scalingscaleModelForRender out of preRender and into its own callRenderUtil#getTextureDimensions and allowed it to account for post-loading modificationsBakedGeoModel#getBoneGeoRenderer#applyRenderLayersForBone. Per-bone renders are now added in #preApplyRenderLayersGeoRenderLayer#addPerBoneRenderItemArmorGeoLayer works to be more efficient, and support Elytras (although they're not 100% correct yet)BlockAndItemGeoLayer works to be more efficient and cleanerItemArmorGeoLayer#prepModelPartForRender to prepHumanoidModelForRenderGeckoLibClient#getArmorModelForItem to return a HumanoidModel instead of a base Model, since non-humanoid models never get usedpackedLight, packedOverlay, and renderColor to GeoRenderer#renderFinalfinal from GeoEntityRenderer#calculateYRotBoneFilterGeoLayer and FastBoneFilterGeoLayerGeckoLibAnimatedTexture crashing when failing to load a textureGeoItemRenderer and GeoObjectRenderer positioning incorrectly when scaledGeoReplacedEntityRenderer not propagating PoseStack manipulationsItemArmorGeoLayer colliding with other layers that use the same DataTicket21.04.2025 · 106 898 downloads
ItemInHandGeoLayerPerBoneRenderDataTickets#IS_LEFT_HANDEDDataTickets#IS_CROUCHINGGeoRender#adjustPositionForRenderDirectionalProjectileRendererTextureLayerGeoLayerCustomBoneTextureGeoLayerDefaultedGeoModel using the old formatscaleModelForRender for GeoEntityRenderer, and moved sleeping pose translation to better account for scalingscaleModelForRender out of preRender and into its own callRenderUtil#getTextureDimensions and allowed it to account for post-loading modificationsBakedGeoModel#getBoneGeoRenderer#applyRenderLayersForBone. Per-bone renders are now added in #preApplyRenderLayersGeoRenderLayer#addPerBoneRenderItemArmorGeoLayer works to be more efficient, and support Elytras (although they're not 100% correct yet)BlockAndItemGeoLayer works to be more efficient and cleanerItemArmorGeoLayer#prepModelPartForRender to prepHumanoidModelForRenderGeckoLibClient#getArmorModelForItem to return a HumanoidModel instead of a base Model, since non-humanoid models never get usedpackedLight, packedOverlay, and renderColor to GeoRenderer#renderFinalfinal from GeoEntityRenderer#calculateYRotBoneFilterGeoLayer and FastBoneFilterGeoLayerGeckoLibAnimatedTexture crashing when failing to load a textureGeoItemRenderer and GeoObjectRenderer positioning incorrectly when scaledGeoReplacedEntityRenderer not propagating PoseStack manipulationsItemArmorGeoLayer colliding with other layers that use the same DataTicket13.04.2025 · 1 184 downloads
AutoGlowingGeoLayerRenderUtil#getEmissiveResource helper methodshouldRespectWorldLighting method, allowing you to choose between absolute emissivity, and emissivity that shades in conjunction with world lighting13.04.2025 · 898 downloads
AutoGlowingGeoLayerRenderUtil#getEmissiveResource helper methodshouldRespectWorldLighting method, allowing you to choose between absolute emissivity, and emissivity that shades in conjunction with world lighting13.04.2025 · 8 002 downloads
AutoGlowingGeoLayerRenderUtil#getEmissiveResource helper methodshouldRespectWorldLighting method, allowing you to choose between absolute emissivity, and emissivity that shades in conjunction with world lighting08.04.2025 · 967 downloads
alpha1 glowmasks and animated textures are not functional. This will be resolved soon :)GeoObjectRendererGeoEntityRenderer re-applying other PoseStack manipulations when reRenderingAnimationProcessorAnimationController#process to AnimationController#startTickDefaultAnimations#genericFlyController not stopping if not movingAnimationController's animation speed potentially being re-computed multiple times per render pass, resulting in inconsistent animation handlingKeyframes to KeyframeMarkersAnimatableManager and any derivatives to a different packageAnimationController, AnimationProcessor, AnimationState to a different packageAutoPlayingSoundKeyframeHandler to a different packageAnimationPointQueueDyeableGeoArmorRenderer works to be a bit more accurate/assets/<modid>/geckolib/animations//assets/<modid>/geckolib/models/GeoRenderer#getAnimatableGeoRenderState by defaultGeoEntityRenderer#isShakingAnimationState is now an internal class used for carrying the animation state through processing. Users should now use AnimationTest. It works functionally the samegeo/ or .geo.json in your returned model resources)DataTickets now require creation through a factory method to ensure identity-paritySerializableDataTickets no longer require registration, but must still be created during mod constructGeoRenderer has had the PoseStack and RenderState (previously Animatable) swap places in the argsAnimationState for the render passAnimationControllers no longer need the animatable passed to itAutoGlowingGeoLayer so that mods can override the texture as neededDefaultAnimations helpers now default to 0-tick transition time for consistency and clarityAnimationState#getData as nullable to avoid confusionEasingType as nullable to avoid confusionGeoReplacedEntityRenderer now explicitly crashes upon trying to insert an entity as the animatable to prevent memory leaksGeoReplacedEntityRenderer much more in line with GeoEntityRenderer to ensure accuracyCustomInstructionKeyframeEvent, SoundKeyframeEvent, and ParticleKeyframeEvent have all been consolidated into KeyFrameEventCustomInstructionKeyframeHandler, SoundKeyframeHandler, and ParticleKeyframeHandler have all been consolidated into KeyframeEventHandlerKeyFrameEvent to a recordCalculation to a recordMolangQueries is once again side-agnosticprepLivingEntityRenderState into GeoEntityRenderer so it can be overridden if neededEntityModelDataDeferredGeoRenderProviderInternalUtilFileLoaderColor. Has been fully superceded by net.minecraft.util.ARGBGeoRenderer parameter from the various GeoModel getters as it is no longer neededGeoArmorRenderer to prevent collisions with HumanoidArmorModel's field namesGeckoLibCache to GeckoLibResourcesAnimatableManager#setData to AnimatableManager#setAnimatableData (and its associated getter)AutoGlowingTexture#getEmissiveResource to #getOrCreateEmissiveTexture for clarityGeoEntityRenderState to GeoRenderStateGeckoLibUtil have been moved to the new SyncedSingletonAnimatableCache, with associated methods having their hierarchical scope reduced for clarity and safetyGeoRenderLayer#renderForBone to #createPerBoneRender, which now requires that you return your operation as a runnable to be run laterDynamicGeoBlockRenderer, DynamicGeoEntityRenderer, and DynamicGeoItemRenderer. Use render layers instead for bone-specific handling. I will be looking at creating a helper class or alternate option for thisGeoRenderEvents to be more usefulstopTriggeredAnimation to SingletonGeoAnimatabletriggerArmorAnim for triggering armor animations (#433)query.controller_speed Molang queryquery.limb_swing Molang queryquery.limb_swing_amount Molang queryGeoRenderer #setBonesVisible for ease of useAnimationController#isTriggeredAnimation to check for the currently triggered animationAnimationController#setAnimationState to directly set the state of the controller, if necessaryCompileRenderState event hooks for each renderer type08.04.2025 · 664 downloads
alpha1 glowmasks and animated textures are not functional. This will be resolved soon :)GeoObjectRendererGeoEntityRenderer re-applying other PoseStack manipulations when reRenderingAnimationProcessorAnimationController#process to AnimationController#startTickDefaultAnimations#genericFlyController not stopping if not movingAnimationController's animation speed potentially being re-computed multiple times per render pass, resulting in inconsistent animation handlingKeyframes to KeyframeMarkersAnimatableManager and any derivatives to a different packageAnimationController, AnimationProcessor, AnimationState to a different packageAutoPlayingSoundKeyframeHandler to a different packageAnimationPointQueueDyeableGeoArmorRenderer works to be a bit more accurate/assets/<modid>/geckolib/animations//assets/<modid>/geckolib/models/GeoRenderer#getAnimatableGeoRenderState by defaultGeoEntityRenderer#isShakingAnimationState is now an internal class used for carrying the animation state through processing. Users should now use AnimationTest. It works functionally the samegeo/ or .geo.json in your returned model resources)DataTickets now require creation through a factory method to ensure identity-paritySerializableDataTickets no longer require registration, but must still be created during mod constructGeoRenderer has had the PoseStack and RenderState (previously Animatable) swap places in the argsAnimationState for the render passAnimationControllers no longer need the animatable passed to itAutoGlowingGeoLayer so that mods can override the texture as neededDefaultAnimations helpers now default to 0-tick transition time for consistency and clarityAnimationState#getData as nullable to avoid confusionEasingType as nullable to avoid confusionGeoReplacedEntityRenderer now explicitly crashes upon trying to insert an entity as the animatable to prevent memory leaksGeoReplacedEntityRenderer much more in line with GeoEntityRenderer to ensure accuracyCustomInstructionKeyframeEvent, SoundKeyframeEvent, and ParticleKeyframeEvent have all been consolidated into KeyFrameEventCustomInstructionKeyframeHandler, SoundKeyframeHandler, and ParticleKeyframeHandler have all been consolidated into KeyframeEventHandlerKeyFrameEvent to a recordCalculation to a recordMolangQueries is once again side-agnosticprepLivingEntityRenderState into GeoEntityRenderer so it can be overridden if neededEntityModelDataDeferredGeoRenderProviderInternalUtilFileLoaderColor. Has been fully superceded by net.minecraft.util.ARGBGeoRenderer parameter from the various GeoModel getters as it is no longer neededGeoArmorRenderer to prevent collisions with HumanoidArmorModel's field namesGeckoLibCache to GeckoLibResourcesAnimatableManager#setData to AnimatableManager#setAnimatableData (and its associated getter)AutoGlowingTexture#getEmissiveResource to #getOrCreateEmissiveTexture for clarityGeoEntityRenderState to GeoRenderStateGeckoLibUtil have been moved to the new SyncedSingletonAnimatableCache, with associated methods having their hierarchical scope reduced for clarity and safetyGeoRenderLayer#renderForBone to #createPerBoneRender, which now requires that you return your operation as a runnable to be run laterDynamicGeoBlockRenderer, DynamicGeoEntityRenderer, and DynamicGeoItemRenderer. Use render layers instead for bone-specific handling. I will be looking at creating a helper class or alternate option for thisGeoRenderEvents to be more usefulstopTriggeredAnimation to SingletonGeoAnimatabletriggerArmorAnim for triggering armor animations (#433)query.controller_speed Molang queryquery.limb_swing Molang queryquery.limb_swing_amount Molang queryGeoRenderer #setBonesVisible for ease of useAnimationController#isTriggeredAnimation to check for the currently triggered animationAnimationController#setAnimationState to directly set the state of the controller, if necessaryCompileRenderState event hooks for each renderer type08.04.2025 · 2 523 downloads
alpha1 glowmasks and animated textures are not functional. This will be resolved soon :)GeoObjectRendererGeoEntityRenderer re-applying other PoseStack manipulations when reRenderingAnimationProcessorAnimationController#process to AnimationController#startTickDefaultAnimations#genericFlyController not stopping if not movingAnimationController's animation speed potentially being re-computed multiple times per render pass, resulting in inconsistent animation handlingKeyframes to KeyframeMarkersAnimatableManager and any derivatives to a different packageAnimationController, AnimationProcessor, AnimationState to a different packageAutoPlayingSoundKeyframeHandler to a different packageAnimationPointQueueDyeableGeoArmorRenderer works to be a bit more accurate/assets/<modid>/geckolib/animations//assets/<modid>/geckolib/models/GeoRenderer#getAnimatableGeoRenderState by defaultGeoEntityRenderer#isShakingAnimationState is now an internal class used for carrying the animation state through processing. Users should now use AnimationTest. It works functionally the samegeo/ or .geo.json in your returned model resources)DataTickets now require creation through a factory method to ensure identity-paritySerializableDataTickets no longer require registration, but must still be created during mod constructGeoRenderer has had the PoseStack and RenderState (previously Animatable) swap places in the argsAnimationState for the render passAnimationControllers no longer need the animatable passed to itAutoGlowingGeoLayer so that mods can override the texture as neededDefaultAnimations helpers now default to 0-tick transition time for consistency and clarityAnimationState#getData as nullable to avoid confusionEasingType as nullable to avoid confusionGeoReplacedEntityRenderer now explicitly crashes upon trying to insert an entity as the animatable to prevent memory leaksGeoReplacedEntityRenderer much more in line with GeoEntityRenderer to ensure accuracyCustomInstructionKeyframeEvent, SoundKeyframeEvent, and ParticleKeyframeEvent have all been consolidated into KeyFrameEventCustomInstructionKeyframeHandler, SoundKeyframeHandler, and ParticleKeyframeHandler have all been consolidated into KeyframeEventHandlerKeyFrameEvent to a recordCalculation to a recordMolangQueries is once again side-agnosticprepLivingEntityRenderState into GeoEntityRenderer so it can be overridden if neededEntityModelDataDeferredGeoRenderProviderInternalUtilFileLoaderColor. Has been fully superceded by net.minecraft.util.ARGBGeoRenderer parameter from the various GeoModel getters as it is no longer neededGeoArmorRenderer to prevent collisions with HumanoidArmorModel's field namesGeckoLibCache to GeckoLibResourcesAnimatableManager#setData to AnimatableManager#setAnimatableData (and its associated getter)AutoGlowingTexture#getEmissiveResource to #getOrCreateEmissiveTexture for clarityGeoEntityRenderState to GeoRenderStateGeckoLibUtil have been moved to the new SyncedSingletonAnimatableCache, with associated methods having their hierarchical scope reduced for clarity and safetyGeoRenderLayer#renderForBone to #createPerBoneRender, which now requires that you return your operation as a runnable to be run laterDynamicGeoBlockRenderer, DynamicGeoEntityRenderer, and DynamicGeoItemRenderer. Use render layers instead for bone-specific handling. I will be looking at creating a helper class or alternate option for thisGeoRenderEvents to be more usefulstopTriggeredAnimation to SingletonGeoAnimatabletriggerArmorAnim for triggering armor animations (#433)query.controller_speed Molang queryquery.limb_swing Molang queryquery.limb_swing_amount Molang queryGeoRenderer #setBonesVisible for ease of useAnimationController#isTriggeredAnimation to check for the currently triggered animationAnimationController#setAnimationState to directly set the state of the controller, if necessaryCompileRenderState event hooks for each renderer type22.03.2025 · 984 675 downloads
v4.7.1.2
Fabric:
- Move Redirect mixins to WrapOperations to prevent collisions with other mods
Forge:
- Rollback the stackability change to itemstacks from 4.7.1 as Forge does not have MixinExtras, and adding it causes
occasional conflict resolution issues
22.03.2025 · 743 562 downloads
v4.7.1.2
Fabric:
- Move Redirect mixins to WrapOperations to prevent collisions with other mods
Forge:
- Rollback the stackability change to itemstacks from 4.7.1 as Forge does not have MixinExtras, and adding it causes
occasional conflict resolution issues
16.03.2025 · 66 920 downloads
v4.7.1.1
16.03.2025 · 31 055 downloads
v4.7.1.1
15.03.2025 · 14 889 downloads
v4.7.1
stopTriggeredAnimation to SingletonGeoAnimatablequery.controller_speed Molang query15.03.2025 · 6 266 downloads
v4.7.1
stopTriggeredAnimation to SingletonGeoAnimatablequery.controller_speed Molang query14.03.2025 · 628 265 downloads
v4.7.5.1
14.03.2025 · 17 006 downloads
v4.7.5.1
14.03.2025 · 896 498 downloads
v4.7.5.1
13.03.2025 · 4 386 downloads
v4.7.5
query.controller_speed Molang Query.getTextureResource and getModelResource13.03.2025 · 448 downloads
v4.7.5
query.controller_speed Molang Query.getTextureResource and getModelResource13.03.2025 · 4 576 downloads
v4.7.5
query.controller_speed Molang Query.getTextureResource and getModelResource12.03.2025 · 3 433 downloads
v4.7.4.1
12.03.2025 · 330 downloads
v4.7.4.1
12.03.2025 · 3 380 downloads
v4.7.4.1
11.03.2025 · 1 090 downloads
v4.7.4
triggerArmorAnim for triggering armor animations (#433)11.03.2025 · 243 downloads
v4.7.4
triggerArmorAnim for triggering armor animations (#433)11.03.2025 · 1 739 downloads
v4.7.4
triggerArmorAnim for triggering armor animations (#433)08.02.2025 · 7 757 downloads
v4.8.4
08.02.2025 · 7 458 downloads
v4.8.4
08.02.2025 · 62 646 downloads
v4.8.4
03.02.2025 · 583 downloads
v4.8.3
03.02.2025 · 521 downloads
v4.8.3
03.02.2025 · 3 376 downloads
v4.8.3
23.01.2025 · 919 downloads
v4.8.2
23.01.2025 · 1 121 downloads
v4.8.2
23.01.2025 · 36 578 downloads
v4.8.2
27.12.2024 · 116 457 downloads
v4.7.3
getTextureResource and getModelResource now receive the renderer for context-sensitive variants27.12.2024 · 5 326 downloads
v4.7.3
getTextureResource and getModelResource now receive the renderer for context-sensitive variants27.12.2024 · 492 790 downloads
v4.7.3
getTextureResource and getModelResource now receive the renderer for context-sensitive variants27.12.2024 · 1 006 376 downloads
v4.7
getTriggeredAnimation to AnimationController27.12.2024 · 660 333 downloads
v4.7
getTriggeredAnimation to AnimationController27.12.2024 · 462 downloads
v4.7.2
27.12.2024 · 215 downloads
v4.7.2
27.12.2024 · 1 044 downloads
v4.7.2
26.12.2024 · 811 downloads
v4.7.1
26.12.2024 · 253 downloads
v4.7.1
26.12.2024 · 82 525 downloads
v4.7.1
15.12.2024 · 1 612 downloads
v4.8
assets/modid/item json file to define its rendering as being special.15.12.2024 · 1 938 downloads
v4.8
assets/modid/item json file to define its rendering as being special.15.12.2024 · 33 757 downloads
v4.8
assets/modid/item json file to define its rendering as being special.05.11.2024 · 2 339 downloads
v4.7.1
05.11.2024 · 2 311 downloads
v4.7.1
05.11.2024 · 14 389 downloads
v4.7.1
04.11.2024 · 35 161 downloads
v4.7
04.11.2024 · 2 757 downloads
v4.7
04.11.2024 · 48 195 downloads
v4.7
03.11.2024 · 161 downloads
v4.7
Summary of changes for 4.7:
- Update to 1.21.3
- EntityRenderState is wrapped and ignored - you do not need to worry about this when using GeckoLib (for now)
- Removed the query.is_powered molang query as it is no longer practically feasible
- Change crashes to warnings for unsupported model format versions for geo models
- Fix incorrect version range for NeoForge mods
- Added support for UV Face Rotation
- Added a deferred GeoRenderProvider for split-sources support
- Added a stop triggered animation function, to allow for stopping of triggered animations in the same way you triggered them in the first place
- Added a fallback hook for animations - you can now declare multiple animation files in a single GeoModel to look for animations (for polymorphic/modular animatables)
- GeoModels now receive the renderer in #getTextureResource and #getModelResource, to allow for render-context dependent models and textures
- Keyframe events now have the AnimationState passed to them for additional context
- Moved the AnimationState creation in GeoRenderer to its own method for easy overriding
- Pass the render colour from the renderer to the render layers
- Fixed Color#ofARGB actually being RGBA
- Removed previously deprecated methods
- Fixed some issues with Entity and ReplacedEntity geo renderers
- Fixed entity velocity being determined mostly from x-coordinate velocity
- Fixed the controller-agnostic triggered anim function not working
- Introduced additional safeties to prevent unexpected crashes for some networking functions
- Moved animated texture ticking to an internal handler, preventing GeoRenderer implementations from needing to handle it
03.11.2024 · 171 downloads
v4.7
Summary of changes for 4.7:
- Update to 1.21.3
- EntityRenderState is wrapped and ignored - you do not need to worry about this when using GeckoLib (for now)
- Removed the query.is_powered molang query as it is no longer practically feasible
- Change crashes to warnings for unsupported model format versions for geo models
- Fix incorrect version range for NeoForge mods
- Added support for UV Face Rotation
- Added a deferred GeoRenderProvider for split-sources support
- Added a stop triggered animation function, to allow for stopping of triggered animations in the same way you triggered them in the first place
- Added a fallback hook for animations - you can now declare multiple animation files in a single GeoModel to look for animations (for polymorphic/modular animatables)
- GeoModels now receive the renderer in #getTextureResource and #getModelResource, to allow for render-context dependent models and textures
- Keyframe events now have the AnimationState passed to them for additional context
- Moved the AnimationState creation in GeoRenderer to its own method for easy overriding
- Pass the render colour from the renderer to the render layers
- Fixed Color#ofARGB actually being RGBA
- Removed previously deprecated methods
- Fixed some issues with Entity and ReplacedEntity geo renderers
- Fixed entity velocity being determined mostly from x-coordinate velocity
- Fixed the controller-agnostic triggered anim function not working
- Introduced additional safeties to prevent unexpected crashes for some networking functions
- Moved animated texture ticking to an internal handler, preventing GeoRenderer implementations from needing to handle it
03.11.2024 · 925 downloads
v4.7
Summary of changes for 4.7:
- Update to 1.21.3
- EntityRenderState is wrapped and ignored - you do not need to worry about this when using GeckoLib (for now)
- Removed the query.is_powered molang query as it is no longer practically feasible
- Change crashes to warnings for unsupported model format versions for geo models
- Fix incorrect version range for NeoForge mods
- Added support for UV Face Rotation
- Added a deferred GeoRenderProvider for split-sources support
- Added a stop triggered animation function, to allow for stopping of triggered animations in the same way you triggered them in the first place
- Added a fallback hook for animations - you can now declare multiple animation files in a single GeoModel to look for animations (for polymorphic/modular animatables)
- GeoModels now receive the renderer in #getTextureResource and #getModelResource, to allow for render-context dependent models and textures
- Keyframe events now have the AnimationState passed to them for additional context
- Moved the AnimationState creation in GeoRenderer to its own method for easy overriding
- Pass the render colour from the renderer to the render layers
- Fixed Color#ofARGB actually being RGBA
- Removed previously deprecated methods
- Fixed some issues with Entity and ReplacedEntity geo renderers
- Fixed entity velocity being determined mostly from x-coordinate velocity
- Fixed the controller-agnostic triggered anim function not working
- Introduced additional safeties to prevent unexpected crashes for some networking functions
- Moved animated texture ticking to an internal handler, preventing GeoRenderer implementations from needing to handle it
01.11.2024 · 175 downloads
v4.7-beta-2
01.11.2024 · 150 downloads
v4.7-beta-2
01.11.2024 · 415 downloads
v4.7-beta-2
29.10.2024 · 228 downloads
v4.7-beta-1
query.is_powered molang query as it is no longer practically feasible29.10.2024 · 223 downloads
v4.7-beta-1
query.is_powered molang query as it is no longer practically feasible29.10.2024 · 623 downloads
v4.7-beta-1
query.is_powered molang query as it is no longer practically feasible28.09.2024 · 26 529 downloads
v4.6.6
28.09.2024 · 3 487 downloads
v4.6.6
28.09.2024 · 38 776 downloads
v4.6.6
15.09.2024 · 9 372 downloads
v4.6.5
15.09.2024 · 3 322 downloads
v4.6.5
15.09.2024 · 9 108 downloads
v4.6.5
15.09.2024 · 826 downloads
v4.6.4
15.09.2024 · 264 downloads
v4.6.4
15.09.2024 · 1 924 downloads
v4.6.4
31.08.2024 · 3 237 downloads
v4.6.3
31.08.2024 · 1 470 downloads
v4.6.3
31.08.2024 · 19 441 downloads
v4.6.3
29.08.2024 · 223 270 downloads
v4.4.9
29.08.2024 · 3 507 424 downloads
v4.4.9
29.08.2024 · 3 153 718 downloads
v4.4.9
29.08.2024 · 1 093 downloads
v4.4.8
DefaultedEntityGeoModel.turnsHead for subclass usagequery.is_in_water_or_rain not representing the correct valuequery.yaw_speed not representing the correct valuequery.is_on_fire not applying to non-living entities29.08.2024 · 5 456 downloads
v4.4.8
DefaultedEntityGeoModel.turnsHead for subclass usagequery.is_in_water_or_rain not representing the correct valuequery.yaw_speed not representing the correct valuequery.is_on_fire not applying to non-living entities29.08.2024 · 7 511 downloads
v4.4.8
DefaultedEntityGeoModel.turnsHead for subclass usagequery.is_in_water_or_rain not representing the correct valuequery.yaw_speed not representing the correct valuequery.is_on_fire not applying to non-living entities26.08.2024 · 902 downloads
v4.6.2
26.08.2024 · 487 downloads
v4.6.2
26.08.2024 · 2 616 downloads
v4.6.2
25.08.2024 · 281 downloads
v4.6.1
25.08.2024 · 164 downloads
v4.6.1
25.08.2024 · 619 downloads
v4.6.1
25.08.2024 · 720 downloads
v4.6
query.actor_count not representing the correct valuequery.is_in_water_or_rain not representing the correct valuequery.is_on_fire not applying to non-living entitiesquery.yaw_speed not applying to non-living entitiesquery.yaw_speed not representing the correct valuequery.block_state molang queryquery.blocking molang queryquery.body_x_rotation molang queryquery.body_y_rotation molang queryquery.can_climb molang queryquery.can_fly molang queryquery.can_swim molang queryquery.can_walk molang queryquery.cardinal_facing_2d molang queryquery.cardinal_facing molang queryquery.cardinal_player_facing molang queryquery.day molang queryquery.death_ticks molang queryquery.equipment_count molang queryquery.frame_alpha molang queryquery.get_actor_info_id molang queryquery.has_cape molang queryquery.has_collision molang queryquery.has_gravity molang queryquery.has_head_gear molang queryquery.has_owner molang queryquery.has_player_rider molang queryquery.has_rider molang queryquery.head_x_rotation molang queryquery.head_y_rotation molang queryquery.hurt_time molang queryquery.invulnerable_ticks molang queryquery.is_alive molang queryquery.is_angry molang queryquery.is_baby molang queryquery.is_breathing molang queryquery.is_enchanted molang queryquery.is_fire_immune molang queryquery.is_first_person molang queryquery.is_in_contact_with_water molang queryquery.is_in_lava molang queryquery.is_invisible molang queryquery.is_leashed molang queryquery.is_moving molang queryquery.is_powered molang queryquery.is_riding molang queryquery.is_saddled molang queryquery.is_silent molang queryquery.is_sleeping molang queryquery.is_sneaking molang queryquery.is_sprinting molang queryquery.is_stackable molang queryquery.is_swimming molang queryquery.is_using_item molang queryquery.is_wall_climbing molang queryquery.item_max_use_duration molang queryquery.main_hand_item_max_duration molang queryquery.main_hand_item_use_duration molang queryquery.max_durability molang queryquery.moon_brightness molang queryquery.movement_direction molang queryquery.player_level molang queryquery.remaining_durability molang queryquery.rider_body_x_rotation molang queryquery.rider_body_x_rotation molang queryquery.rider_head_x_rotation molang queryquery.rider_head_y_rotation molang queryquery.scale molang queryquery.sleep_rotation molang queryquery.time_stamp molang queryquery.vertical_speed molang query25.08.2024 · 567 downloads
v4.6
query.actor_count not representing the correct valuequery.is_in_water_or_rain not representing the correct valuequery.is_on_fire not applying to non-living entitiesquery.yaw_speed not applying to non-living entitiesquery.yaw_speed not representing the correct valuequery.block_state molang queryquery.blocking molang queryquery.body_x_rotation molang queryquery.body_y_rotation molang queryquery.can_climb molang queryquery.can_fly molang queryquery.can_swim molang queryquery.can_walk molang queryquery.cardinal_facing_2d molang queryquery.cardinal_facing molang queryquery.cardinal_player_facing molang queryquery.day molang queryquery.death_ticks molang queryquery.equipment_count molang queryquery.frame_alpha molang queryquery.get_actor_info_id molang queryquery.has_cape molang queryquery.has_collision molang queryquery.has_gravity molang queryquery.has_head_gear molang queryquery.has_owner molang queryquery.has_player_rider molang queryquery.has_rider molang queryquery.head_x_rotation molang queryquery.head_y_rotation molang queryquery.hurt_time molang queryquery.invulnerable_ticks molang queryquery.is_alive molang queryquery.is_angry molang queryquery.is_baby molang queryquery.is_breathing molang queryquery.is_enchanted molang queryquery.is_fire_immune molang queryquery.is_first_person molang queryquery.is_in_contact_with_water molang queryquery.is_in_lava molang queryquery.is_invisible molang queryquery.is_leashed molang queryquery.is_moving molang queryquery.is_powered molang queryquery.is_riding molang queryquery.is_saddled molang queryquery.is_silent molang queryquery.is_sleeping molang queryquery.is_sneaking molang queryquery.is_sprinting molang queryquery.is_stackable molang queryquery.is_swimming molang queryquery.is_using_item molang queryquery.is_wall_climbing molang queryquery.item_max_use_duration molang queryquery.main_hand_item_max_duration molang queryquery.main_hand_item_use_duration molang queryquery.max_durability molang queryquery.moon_brightness molang queryquery.movement_direction molang queryquery.player_level molang queryquery.remaining_durability molang queryquery.rider_body_x_rotation molang queryquery.rider_body_x_rotation molang queryquery.rider_head_x_rotation molang queryquery.rider_head_y_rotation molang queryquery.scale molang queryquery.sleep_rotation molang queryquery.time_stamp molang queryquery.vertical_speed molang query25.08.2024 · 3 101 downloads
v4.6
query.actor_count not representing the correct valuequery.is_in_water_or_rain not representing the correct valuequery.is_on_fire not applying to non-living entitiesquery.yaw_speed not applying to non-living entitiesquery.yaw_speed not representing the correct valuequery.block_state molang queryquery.blocking molang queryquery.body_x_rotation molang queryquery.body_y_rotation molang queryquery.can_climb molang queryquery.can_fly molang queryquery.can_swim molang queryquery.can_walk molang queryquery.cardinal_facing_2d molang queryquery.cardinal_facing molang queryquery.cardinal_player_facing molang queryquery.day molang queryquery.death_ticks molang queryquery.equipment_count molang queryquery.frame_alpha molang queryquery.get_actor_info_id molang queryquery.has_cape molang queryquery.has_collision molang queryquery.has_gravity molang queryquery.has_head_gear molang queryquery.has_owner molang queryquery.has_player_rider molang queryquery.has_rider molang queryquery.head_x_rotation molang queryquery.head_y_rotation molang queryquery.hurt_time molang queryquery.invulnerable_ticks molang queryquery.is_alive molang queryquery.is_angry molang queryquery.is_baby molang queryquery.is_breathing molang queryquery.is_enchanted molang queryquery.is_fire_immune molang queryquery.is_first_person molang queryquery.is_in_contact_with_water molang queryquery.is_in_lava molang queryquery.is_invisible molang queryquery.is_leashed molang queryquery.is_moving molang queryquery.is_powered molang queryquery.is_riding molang queryquery.is_saddled molang queryquery.is_silent molang queryquery.is_sleeping molang queryquery.is_sneaking molang queryquery.is_sprinting molang queryquery.is_stackable molang queryquery.is_swimming molang queryquery.is_using_item molang queryquery.is_wall_climbing molang queryquery.item_max_use_duration molang queryquery.main_hand_item_max_duration molang queryquery.main_hand_item_use_duration molang queryquery.max_durability molang queryquery.moon_brightness molang queryquery.movement_direction molang queryquery.player_level molang queryquery.remaining_durability molang queryquery.rider_body_x_rotation molang queryquery.rider_body_x_rotation molang queryquery.rider_head_x_rotation molang queryquery.rider_head_y_rotation molang queryquery.scale molang queryquery.sleep_rotation molang queryquery.time_stamp molang queryquery.vertical_speed molang query07.08.2024 · 40 878 downloads
v4.5.8
07.08.2024 · 26 030 downloads
v4.5.8
07.08.2024 · 354 660 downloads
v4.5.8
18.07.2024 · 5 197 downloads
v4.5.7
18.07.2024 · 2 787 downloads
v4.5.7
18.07.2024 · 62 982 downloads
v4.5.7
22.06.2024 · 39 863 downloads
v4.4.7
22.06.2024 · 391 796 downloads
v4.4.7
22.06.2024 · 867 851 downloads
v4.4.7
22.06.2024 · 3 709 downloads
v4.5.6
22.06.2024 · 2 840 downloads
v4.5.6
22.06.2024 · 71 156 downloads
v4.5.6
14.06.2024 · 1 414 downloads
v4.5.4.1
14.06.2024 · 1 992 downloads
v4.5.4.1
14.06.2024 · 7 329 downloads
v4.5.4.1
14.06.2024 · 14 298 downloads
v4.5.4.1
12.06.2024 · 659 downloads
v4.5.4
11.06.2024 · 6 050 downloads
v4.5.4
11.06.2024 · 22 186 downloads
v4.5.4
10.06.2024 · 5 938 downloads
v4.4.6
10.06.2024 · 110 260 downloads
v4.4.6
10.06.2024 · 306 087 downloads
v4.4.6
31.05.2024 · 5 265 downloads
v4.4.5
31.05.2024 · 57 999 downloads
v4.4.5
31.05.2024 · 69 540 downloads
v4.4.5
31.05.2024 · 921 downloads
v4.5.3
final from GeoModel#handleAnimations in exchange for an APIStatus.Internal annotation to allow for overriding. Users should continue to avoid overriding this unless explicitly necessary31.05.2024 · 3 700 downloads
v4.5.3
final from GeoModel#handleAnimations in exchange for an APIStatus.Internal annotation to allow for overriding. Users should continue to avoid overriding this unless explicitly necessary22.05.2024 · 730 downloads
v4.5.2
- Fix crash with some animation file parsing #582
- Fixed incorrect precedence handling in the math parser for molang expressions #579
- Failing to parse a loaded animation will no longer crash the game
- GeckoLib's logging entries will use the correct name instead of "GeckolibLogger"
22.05.2024 · 2 167 downloads
v4.5.2
- Fix crash with some animation file parsing #582
- Fixed incorrect precedence handling in the math parser for molang expressions #579
- Failing to parse a loaded animation will no longer crash the game
- GeckoLib's logging entries will use the correct name instead of "GeckolibLogger"
29.04.2024 · 1 286 downloads
v4.5
- 1.20.5 :)
29.04.2024 · 3 905 downloads
v4.5
- 1.20.5 :)
25.04.2024 · 1 488 downloads
v4.5
- 1.20.5 :)
25.04.2024 · 4 592 downloads
v4.5
- 1.20.5 :)
17.03.2024 · 44 311 downloads
v4.4.4
17.03.2024 · 399 517 downloads
v4.4.4
17.03.2024 · 762 384 downloads
v4.4.4
17.03.2024 · 33 635 downloads
v4.4.4
17.03.2024 · 22 980 downloads
v4.4.4
17.03.2024 · 257 154 downloads
v4.4.4
16.03.2024 · 452 downloads
v4.4.3
16.03.2024 · 2 677 downloads
v4.4.3
16.03.2024 · 2 498 downloads
v4.4.3
16.03.2024 · 201 downloads
v4.4.3
16.03.2024 · 324 downloads
v4.4.3
16.03.2024 · 809 downloads
v4.4.3
26.01.2024 · 22 737 downloads
v4.4.2
26.01.2024 · 844 downloads
v4.4.2
26.01.2024 · 523 182 downloads
v4.4.2
26.01.2024 · 121 931 downloads
v4.4.2
26.01.2024 · 3 899 downloads
v4.4.2
26.01.2024 · 2 475 downloads
v4.4.2
26.01.2024 · 31 913 downloads
v4.4.2
10.01.2024 · 949 downloads
v4.4.1
10.01.2024 · 685 downloads
v4.4.1
10.01.2024 · 5 296 downloads
v4.4
isShaking to GeoEntity rendering, in-line with vanilla's LivingEntityRenderer#isShaking10.01.2024 · 4 703 downloads
v4.4
isShaking to GeoEntity rendering, in-line with vanilla's LivingEntityRenderer#isShaking10.01.2024 · 87 491 downloads
v4.4
isShaking to GeoEntity rendering, in-line with vanilla's LivingEntityRenderer#isShaking10.01.2024 · 316 944 downloads
v4.4
isShaking to GeoEntity rendering, in-line with vanilla's LivingEntityRenderer#isShaking10.01.2024 · 171 downloads
v4.4
isShaking to GeoEntity rendering, in-line with vanilla's LivingEntityRenderer#isShaking10.01.2024 · 236 downloads
v4.4
isShaking to GeoEntity rendering, in-line with vanilla's LivingEntityRenderer#isShaking10.01.2024 · 643 downloads
v4.4
isShaking to GeoEntity rendering, in-line with vanilla's LivingEntityRenderer#isShaking02.01.2024 · 406 downloads
v4.3.1
23.12.2023 · 393 downloads
v4.3.1
08.12.2023 · 548 downloads
v4.3.1
08.12.2023 · 707 downloads
v4.3.1
08.12.2023 · 29 195 downloads
v4.3.1
07.12.2023 · 1 149 downloads
v4.3.1
07.12.2023 · 3 845 downloads
v4.3.1
07.12.2023 · 221 downloads
v4.3.1
07.12.2023 · 2 333 downloads
v4.3.1
06.12.2023 · 4 533 downloads
v4.3.1
06.12.2023 · 159 353 downloads
v4.3.1
06.12.2023 · 207 388 downloads
v4.3.1
06.12.2023 · 9 826 downloads
v4.3.1
06.12.2023 · 54 070 downloads
v4.3.1
04.12.2023 · 485 downloads
v4.3
04.12.2023 · 3 345 downloads
v4.3
04.12.2023 · 11 723 downloads
v4.3
04.12.2023 · 256 downloads
v4.3
04.12.2023 · 842 downloads
v4.3
28.10.2023 · 2 148 downloads
v4.2.4
28.10.2023 · 6 447 downloads
v4.2.4
28.10.2023 · 6 850 downloads
v4.2.4
28.10.2023 · 96 647 downloads
v4.2.4
28.10.2023 · 438 597 downloads
v4.2.4
27.09.2023 · 2 476 downloads
v4.2.3
27.09.2023 · 4 865 downloads
v4.2.3
17.09.2023 · 34 123 downloads
v4.2.3
17.09.2023 · 133 104 downloads
v4.2.3
19.08.2023 · 92 010 downloads
19.08.2023 · 88 081 downloads
06.07.2023 · 75 497 downloads
Fix legacy translation of blockentities
Fix conflicting animations between multiple non-living geoentities
Fix GeoReplacedEntityRenderer not correctly saving the worldspace matrix translations
Hopefully fix crash rarely caused by setting the animation in a controller at an odd time
Add alternate lighting scheme option for geoitemrendering in gui
06.07.2023 · 118 897 downloads
Fix legacy translation of blockentities
Fix conflicting animations between multiple non-living geoentities
Fix GeoReplacedEntityRenderer not correctly saving the worldspace matrix translations
Hopefully fix crash rarely caused by setting the animation in a controller at an odd time
Add alternate lighting scheme option for geoitemrendering in gui
08.06.2023 · 11 377 downloads
1.20 Release
07.06.2023 · 18 783 downloads
1.20 Release
05.06.2023 · 121 616 downloads
v4.2
05.06.2023 · 53 827 downloads
v4.2
06.04.2023 · 4 427 downloads
v4.1.3
06.04.2023 · 4 621 downloads
v4.1.3
06.04.2023 · 2 741 downloads
v4.1.3
22.03.2023 · 2 949 downloads
v4.1.2
22.03.2023 · 218 downloads
v4.1.2
22.03.2023 · 859 downloads
v4.1.2
22.03.2023 · 12 521 downloads
v4.0.6
22.03.2023 · 1 735 downloads
v4.0.6
22.03.2023 · 87 438 downloads
v4.0.6
20.03.2023 · 711 downloads
v4.1.1
Complete Rewrite of the library. Please see https://github.com/bernie-g/geckolib/wiki/Geckolib-4-Changes for all changes
20.03.2023 · 159 downloads
v4.1.1
Complete Rewrite of the library. Please see https://github.com/bernie-g/geckolib/wiki/Geckolib-4-Changes for all changes
20.03.2023 · 336 downloads
v4.1.1
Complete Rewrite of the library. Please see https://github.com/bernie-g/geckolib/wiki/Geckolib-4-Changes for all changes
20.03.2023 · 180 downloads
v4.0.5
20.03.2023 · 571 downloads
v4.0.5
20.03.2023 · 482 downloads
v4.0.5
16.03.2023 · 2 166 downloads
v4.1.0
Complete Rewrite of the library. Please see https://github.com/bernie-g/geckolib/wiki/Geckolib-4-Changes for all changes
16.03.2023 · 197 downloads
v4.1.0
Complete Rewrite of the library. Please see https://github.com/bernie-g/geckolib/wiki/Geckolib-4-Changes for all changes
16.03.2023 · 583 downloads
v4.1.0
Complete Rewrite of the library. Please see https://github.com/bernie-g/geckolib/wiki/Geckolib-4-Changes for all changes
22.02.2023 · 3 381 711 downloads
v3.1.40
v3.1.39
v3.1.38
v3.1.37
v3.1.36
v3.1.35
v3.1.34
v3.1.33
22.02.2023 · 926 309 downloads
v3.1.40
v3.1.39
v3.1.38
v3.1.37
v3.1.36
v3.1.35
v3.1.34
v3.1.33
v3.1.32
v3.1.31
22.02.2023 · 68 495 downloads
v3.1.41
v3.1.40
v3.1.39
v3.1.38
v3.1.37
v3.1.36
v3.1.35
v3.1.34
v3.1.33
v3.1.32
v3.1.31
22.02.2023 · 1 612 downloads
v4.0.4
Complete Rewrite of the library. Please see https://github.com/bernie-g/geckolib/wiki/Geckolib-4-Changes for all changes
22.02.2023 · 10 719 downloads
v4.0.4
Complete Rewrite of the library. Please see https://github.com/bernie-g/geckolib/wiki/Geckolib-4-Changes for all changes
22.02.2023 · 396 downloads
v4.0.4
Complete Rewrite of the library. Please see https://github.com/bernie-g/geckolib/wiki/Geckolib-4-Changes for all changes
14.02.2023 · 10 206 downloads
v3.1.39
v3.1.38
v3.1.37
v3.1.36
v3.1.35
v3.1.34
v3.1.33
v3.1.32
v3.1.31
30.12.2022 · 1 358 downloads
v4.0.3
Complete Rewrite of the library. Please see https://github.com/bernie-g/geckolib/wiki/Geckolib-4-Changes for all changes
30.12.2022 · 468 downloads
v4.0.3
Complete Rewrite of the library. Please see https://github.com/bernie-g/geckolib/wiki/Geckolib-4-Changes for all changes
30.12.2022 · 2 110 downloads
v4.0.3
Complete Rewrite of the library. Please see https://github.com/bernie-g/geckolib/wiki/Geckolib-4-Changes for all changes
19.12.2022 · 19 246 downloads
v3.1.40
v3.1.39
v3.1.38
v3.1.37
v3.1.36
v3.1.35
v3.1.34
v3.1.33
v3.1.32
v3.1.31
19.12.2022 · 23 927 downloads
v3.0.46
v3.0.45
v3.0.44
v3.0.43
v3.0.42
v3.0.41
v3.0.40
v3.0.39
v3.0.38
v3.0.37
16.12.2022 · 34 709 downloads
v3.0.107
16.12.2022 · 493 596 downloads
v3.0.106
16.12.2022 · 1 036 downloads
v3.0.106
16.12.2022 · 1 127 downloads
v3.0.105
16.12.2022 · 253 downloads
v4.0.2
Complete Rewrite of the library. Please see https://github.com/bernie-g/geckolib/wiki/Geckolib-4-Changes for all changes
16.12.2022 · 315 downloads
v4.0.2
Complete Rewrite of the library. Please see https://github.com/bernie-g/geckolib/wiki/Geckolib-4-Changes for all changes
16.12.2022 · 455 downloads
v4.0.2
Complete Rewrite of the library. Please see https://github.com/bernie-g/geckolib/wiki/Geckolib-4-Changes for all changes
16.12.2022 · 13 104 downloads
v3.1.39
v3.1.38
v3.1.37
v3.1.36
v3.1.35
v3.1.34
v3.1.33
16.12.2022 · 2 292 downloads
v3.1.39
v3.1.38
v3.1.37
v3.1.36
v3.1.35
v3.1.34
v3.1.33
v3.1.32
v3.1.31
16.12.2022 · 26 575 downloads
v3.1.38
v3.1.37
v3.1.36
v3.1.35
v3.1.34
v3.1.33
v3.1.32
v3.1.31
16.12.2022 · 70 168 downloads
v3.0.80
v3.0.79
v3.0.78
v3.0.77
v3.0.76
v3.0.75
v3.0.74
v3.0.73
16.12.2022 · 975 582 downloads
v3.0.57
v3.0.56
v3.0.55
v3.0.54
v3.0.53
v3.0.52
v3.0.51
16.12.2022 · 236 downloads
v3.0.45
v3.0.44
v3.0.43
v3.0.42
v3.0.41
v3.0.40
v3.0.39
v3.0.38
v3.0.37
09.12.2022 · 158 downloads
v4.0.1
Add some additional reRender support, fix some stuff that probably shouldn't be reRendering. - Tslat
Homogenise reRender conditional AnimationState support across the various renderers. - Tslat
Adds faceRotation helper in RenderUtils, most commonly needed for projectiles.
Complete Rewrite of the library. Please see https://github.com/bernie-g/geckolib/wiki/Geckolib-4-Changes for all changes
09.12.2022 · 570 downloads
v4.0.1
Add some additional reRender support, fix some stuff that probably shouldn't be reRendering. - Tslat
Homogenise reRender conditional AnimationState support across the various renderers. - Tslat
Adds faceRotation helper in RenderUtils, most commonly needed for projectiles.
Complete Rewrite of the library. Please see https://github.com/bernie-g/geckolib/wiki/Geckolib-4-Changes for all changes
09.12.2022 · 307 downloads
v4.0.1
Add some additional reRender support, fix some stuff that probably shouldn't be reRendering. - Tslat
Homogenise reRender conditional AnimationState support across the various renderers. - Tslat
Adds faceRotation helper in RenderUtils, most commonly needed for projectiles.
Complete Rewrite of the library. Please see https://github.com/bernie-g/geckolib/wiki/Geckolib-4-Changes for all changes
07.12.2022 · 1 180 downloads
v4.0.0
Complete Rewrite of the library. Please see https://github.com/bernie-g/geckolib/wiki/Geckolib-4-Changes for all changes
07.12.2022 · 870 downloads
v4.0.0
Complete Rewrite of the library. Please see https://github.com/bernie-g/geckolib/wiki/Geckolib-4-Changes for all changes
05.12.2022 · 309 downloads
v4.0.0
Complete Rewrite of the library. Please see https://github.com/bernie-g/geckolib/wiki/Geckolib-4-Changes for all changes
02.12.2022 · 131 downloads
v4.0.0
30.11.2022 · 138 downloads
v4.0.0
28.11.2022 · 1 303 downloads
v3.1.38
v3.1.37
v3.1.36
v3.1.35
v3.1.34
v3.1.33
v3.1.32
v3.1.31
28.11.2022 · 236 downloads
v3.0.44
v3.0.43
v3.0.42
v3.0.41
v3.0.40
v3.0.39
v3.0.38
v3.0.37
23.11.2022 · 546 downloads
v4.0.0
19.11.2022 · 5 055 downloads
v3.1.37
v3.1.36
v3.1.35
v3.1.34
v3.1.33
v3.1.32
v3.1.31
19.11.2022 · 378 downloads
v3.1.37
v3.1.36
v3.1.35
v3.1.34
v3.1.33
v3.1.32
v3.1.31
19.11.2022 · 4 243 downloads
v3.1.38
v3.1.37
v3.1.36
v3.1.35
v3.1.34
v3.1.33
19.11.2022 · 10 012 downloads
v3.0.56
v3.0.55
v3.0.54
v3.0.53
v3.0.52
v3.0.51
19.11.2022 · 175 downloads
v3.0.43
v3.0.42
v3.0.41
v3.0.40
v3.0.39
v3.0.38
v3.0.37
19.11.2022 · 4 188 downloads
v3.0.79
v3.0.78
v3.0.77
v3.0.76
v3.0.75
v3.0.74
v3.0.73
14.11.2022 · 4 286 downloads
v3.1.37
v3.1.36
v3.1.35
v3.1.34
v3.1.33
v3.1.32
14.11.2022 · 2 090 downloads
v3.1.37
v3.1.36
v3.1.35
v3.1.34
v3.1.33
14.11.2022 · 2 174 downloads
v3.1.36
v3.1.35
v3.1.34
v3.1.33
v3.1.32
v3.1.31
14.11.2022 · 431 downloads
v3.1.36
v3.1.35
v3.1.34
v3.1.33
v3.1.32
v3.1.31
14.11.2022 · 289 downloads
v3.0.42
v3.0.41
v3.0.40
v3.0.39
v3.0.38
v3.0.37
14.11.2022 · 1 437 downloads
v3.0.55
v3.0.54
v3.0.53
v3.0.52
v3.0.51
14.11.2022 · 371 downloads
v3.0.78
v3.0.77
v3.0.76
v3.0.75
v3.0.74
v3.0.73
14.11.2022 · 24 753 downloads
v3.0.104
14.11.2022 · 231 downloads
v3.0.105
13.11.2022 · 156 downloads
v3.1.36
v3.1.35
v3.1.34
v3.1.33
v3.1.32
02.11.2022 · 1 194 downloads
v3.1.36
v3.1.35
v3.1.34
v3.1.33
02.11.2022 · 459 downloads
v3.1.35
v3.1.34
v3.1.33
v3.1.32
v3.1.31
02.11.2022 · 1 305 downloads
v3.1.35
v3.1.34
v3.1.33
v3.1.32
v3.1.31
02.11.2022 · 10 873 downloads
v3.0.54
v3.0.53
v3.0.52
v3.0.51
02.11.2022 · 130 downloads
v3.0.41
v3.0.40
v3.0.39
v3.0.38
v3.0.37
02.11.2022 · 625 downloads
v3.0.77
v3.0.76
v3.0.75
v3.0.74
v3.0.73
02.11.2022 · 109 downloads
v3.0.76
v3.0.75
v3.0.74
v3.0.73
01.11.2022 · 99 downloads
v3.1.35
v3.1.34
v3.1.33
v3.1.32
01.11.2022 · 2 954 downloads
v3.1.35
v3.1.34
v3.1.33
01.11.2022 · 146 downloads
v3.1.34
v3.1.33
v3.1.32
v3.1.31
01.11.2022 · 418 downloads
v3.1.34
v3.1.33
v3.1.32
v3.1.31
01.11.2022 · 137 downloads
v3.0.75
v3.0.74
v3.0.73
01.11.2022 · 620 downloads
v3.0.40
v3.0.39
v3.0.38
v3.0.37
01.11.2022 · 707 downloads
v3.0.53
v3.0.52
v3.0.51
01.11.2022 · 854 downloads
v3.0.104
01.11.2022 · 1 346 downloads
v3.0.103
01.11.2022 · 108 downloads
v3.1.34
v3.1.33
v3.1.32
01.11.2022 · 723 downloads
v3.1.34
v3.1.33
01.11.2022 · 104 downloads
v3.1.33
v3.1.32
v3.1.31
01.11.2022 · 189 downloads
v3.1.33
v3.1.32
v3.1.31
01.11.2022 · 103 downloads
v3.0.39
v3.0.38
v3.0.37
01.11.2022 · 337 downloads
v3.0.52
v3.0.51
01.11.2022 · 114 downloads
v3.0.74
v3.0.73
31.10.2022 · 87 downloads
v3.1.33
v3.1.32
31.10.2022 · 87 downloads
v3.0.38
v3.0.37
31.10.2022 · 106 downloads
v3.1.32
v3.1.31
31.10.2022 · 126 downloads
v3.1.32
v3.1.31
31.10.2022 · 89 downloads
v3.1.32
31.10.2022 · 89 downloads
v3.1.31
31.10.2022 · 254 downloads
v3.1.33
31.10.2022 · 155 downloads
v3.1.31
31.10.2022 · 229 downloads
v3.0.51
31.10.2022 · 76 downloads
v3.0.37
31.10.2022 · 88 downloads
v3.0.73
31.10.2022 · 221 downloads
v3.0.103
31.10.2022 · 601 downloads
v3.0.102
30.10.2022 · 116 downloads
v3.0.102
30.10.2022 · 252 downloads
v3.0.101
30.10.2022 · 80 downloads
v3.1.31
30.10.2022 · 128 downloads
v3.1.30
30.10.2022 · 316 downloads
v3.1.32
30.10.2022 · 191 downloads
v3.1.30
30.10.2022 · 238 downloads
v3.0.50
30.10.2022 · 91 downloads
v3.0.36
30.10.2022 · 104 downloads
v3.0.72
27.10.2022 · 93 downloads
v3.1.30
26.10.2022 · 65 downloads
v3.1.30
26.10.2022 · 589 downloads
v3.1.31
26.10.2022 · 155 downloads
3.1.29
26.10.2022 · 854 downloads
v3.1.29
26.10.2022 · 222 downloads
v3.0.49
26.10.2022 · 101 downloads
v3.0.35
26.10.2022 · 595 downloads
v3.0.71
26.10.2022 · 128 downloads
v3.0.101
26.10.2022 · 585 downloads
v3.0.100
25.10.2022 · 71 downloads
v3.1.29
25.10.2022 · 99 downloads
3.1.28
25.10.2022 · 6 033 downloads
v3.1.30
25.10.2022 · 224 downloads
v3.1.28
25.10.2022 · 317 downloads
v3.0.48
25.10.2022 · 176 downloads
v3.0.34
25.10.2022 · 108 downloads
v3.0.70
25.10.2022 · 518 downloads
v3.0.99
25.10.2022 · 138 downloads
v3.0.100
25.10.2022 · 133 downloads
v3.1.27
25.10.2022 · 111 downloads
v3.1.28
25.10.2022 · 239 downloads
v3.0.47
25.10.2022 · 264 downloads
v3.1.29
25.10.2022 · 84 downloads
3.1.27
25.10.2022 · 97 downloads
v3.0.33
25.10.2022 · 161 downloads
v3.0.69
25.10.2022 · 315 downloads
v3.0.99
25.10.2022 · 4 908 downloads
v3.0.98
20.10.2022 · 433 downloads
v3.1.28
20.10.2022 · 162 downloads
3.1.26
20.10.2022 · 548 downloads
v3.1.26
20.10.2022 · 15 801 downloads
v3.0.46
20.10.2022 · 580 downloads
v3.0.32
20.10.2022 · 281 downloads
v3.0.68
20.10.2022 · 95 069 downloads
v3.0.97
20.10.2022 · 970 downloads
v3.0.98
16.10.2022 · 242 downloads
v3.0.45
16.10.2022 · 136 downloads
3.1.25
16.10.2022 · 354 downloads
v3.1.27
16.10.2022 · 731 downloads
v3.1.25
16.10.2022 · 133 downloads
v3.0.31
16.10.2022 · 243 downloads
v3.0.67
16.10.2022 · 427 downloads
v3.0.97
16.10.2022 · 50 864 downloads
v3.0.96
06.10.2022 · 243 736 downloads
v3.0.31
06.10.2022 · 443 downloads
v3.1.23
06.10.2022 · 176 downloads
3.1.22
06.10.2022 · 297 downloads
v3.1.22
06.10.2022 · 1 543 downloads
v3.0.41
06.10.2022 · 151 downloads
v3.0.28
06.10.2022 · 1 871 downloads
v3.0.64
06.10.2022 · 270 downloads
v3.0.94
06.10.2022 · 6 822 downloads
v3.0.94
03.10.2022 · 287 downloads
v3.1.22
03.10.2022 · 117 downloads
3.1.21
03.10.2022 · 171 downloads
3.1.21
03.10.2022 · 183 downloads
v3.0.27
03.10.2022 · 5 070 downloads
v3.0.40
03.10.2022 · 165 downloads
3.0.63
03.10.2022 · 966 downloads
v3.0.93
03.10.2022 · 146 downloads
v3.0.93
14.09.2022 · 546 downloads
v3.1.21
14.09.2022 · 272 downloads
3.1.20
14.09.2022 · 851 downloads
3.1.20
14.09.2022 · 128 downloads
v3.0.26
14.09.2022 · 477 downloads
v3.0.39
14.09.2022 · 1 000 downloads
3.0.62
14.09.2022 · 1 270 downloads
v3.0.92
14.09.2022 · 173 downloads
v3.0.92
13.09.2022 · 337 downloads
v3.1.20
13.09.2022 · 138 downloads
3.1.19
13.09.2022 · 192 downloads
3.1.19
13.09.2022 · 186 downloads
v3.0.38
13.09.2022 · 96 downloads
v3.0.25
13.09.2022 · 101 downloads
3.0.61
13.09.2022 · 223 downloads
v3.0.91
13.09.2022 · 91 downloads
v3.0.91
05.09.2022 · 441 downloads
v3.1.19
05.09.2022 · 127 downloads
3.1.18
05.09.2022 · 387 downloads
3.1.18
05.09.2022 · 99 downloads
v3.0.24
05.09.2022 · 412 downloads
v3.0.37
05.09.2022 · 1 828 downloads
3.0.60
05.09.2022 · 548 downloads
v3.0.90
05.09.2022 · 213 downloads
v3.0.90
24.08.2022 · 484 downloads
v3.1.18
24.08.2022 · 313 downloads
3.1.17
24.08.2022 · 109 downloads
3.1.17
24.08.2022 · 143 downloads
v3.0.23
24.08.2022 · 583 downloads
v3.0.36
24.08.2022 · 472 downloads
3.0.59
24.08.2022 · 390 downloads
v3.0.89
24.08.2022 · 138 downloads
v3.0.89
21.08.2022 · 643 downloads
v3.1.17
21.08.2022 · 229 downloads
3.1.16
21.08.2022 · 220 downloads
3.1.16
21.08.2022 · 162 downloads
v3.0.22
21.08.2022 · 606 downloads
v3.0.35
21.08.2022 · 582 downloads
3.0.58
21.08.2022 · 125 downloads
v3.0.88
21.08.2022 · 572 downloads
v3.0.88
17.08.2022 · 210 downloads
3.1.15
17.08.2022 · 117 downloads
3.0.57
17.08.2022 · 160 downloads
v3.0.21
17.08.2022 · 251 downloads
3.1.15
14.08.2022 · 384 downloads
v3.0.87
14.08.2022 · 1 096 downloads
v3.1.14
11.08.2022 · 7 279 downloads
v3.1.14
11.08.2022 · 6 820 downloads
v3.1.16
11.08.2022 · 357 downloads
v3.0.20
11.08.2022 · 1 260 downloads
v3.0.34
11.08.2022 · 1 161 downloads
3.0.56
11.08.2022 · 1 832 downloads
v3.0.87
08.08.2022 · 5 009 downloads
3.0.32
08.08.2022 · 2 752 downloads
v3.0.15
08.08.2022 · 2 494 downloads
v3.0.46
08.08.2022 · 16 016 downloads
v3.0.30