Filter loader...
Filter versions...
Filter channels...

Forge 1.21.10

by Tslat on Oct 30, 2025
Download

Fabric 1.21.10

by Tslat on Oct 30, 2025
Download

GeckoLib v5.3-alpha-3

Alpha 3 Notes:

  • Fixed a crash on world load (#776)
  • More internal changes around armour rendering and ItemArmorGeoLayer
  • Sorry to say, there's more API changes coming in the next version :(

Alpha 2 Notes:

  • Fix Forge crashing on load on newer Forge versions (#773)
  • Fix GeoArmorRenderer crashing when not rendering a full set (#771)
  • BlockAndItemGeoLayer#renderStackForBone and #renderBlockForBone renamed to #submitItemStackRender and #submitBlockRender respectively
  • Moved the OBJECT_RENDER_POSE and MODEL_RENDER_POSE DataTickets to the base GeoRenderer, so that subclasses do not need to handle them in overrides
  • Fixed only handling 1 PerBoneRenderTask per GeoBone
  • Added GeoBone#transformToBone
  • Split PerBoneRender tasks out into GeoRenderer#submitPerBoneRenderTasks
  • Removed the skipPerBoneTasks in several GeoRenderer method calls as it is no longer needed
  • Created PerBoneRenderTasks for neatly handling per-bone render tasks given their added complexity
  • Restricted GeoArmorLayer's generic type to require an AvatarRenderState, as that is the actual type required by the models used
  • Added RenderStateUtil

Changes

  • Port to 1.21.10
    • NOTE: This is an ALPHA build, and may be subject to breaking changes until the alpha tag is removed.
    • The PACKED_LIGHT DataTicket is no longer filled for most GeoRenderers, as the base RenderState classes contain lightCoords now by default
    • Added GeoRenderState#getPackedLight
    • GeoRenderer#defaultRender has been renamed to #submitRenderTasks to better represent its function now that we're not actually rendering at the time of that call
    • GeoRenderer#actuallyRender has been renamed to #buildRenderTask to better represent its function
    • GeoLayer#render has been renamed to #buildRenderTask to better represent its function
    • GeoRenderer#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 methods
    • preRender, scaleModelForRender, and adjustPositionForRender have all been moved to after the preRender event check
    • Added GeoRenderer#createRenderState
    • Removed GeoEntityRenderer#createBaseRenderState - Use #createRenderState instead
    • Removed various DataTickets from the default setup, where they're just a blatant clone of existing vanilla properties, to eliminate multiple sources of truth and improve performance
    • The various Matrix4f variables in GeckoLib renderers has been moved to DataTickets
    • Removed GeoRenderer#doPostRenderCleanup
    • Added the associated HumanoidModel to GeoArmorLayer.RenderData
    • Added RenderModelPositioner
  • Rewrote GeoArmorRenderer - it should now be significantly easier to use and understand
  • Change DefaultedEntityGeoModel to take a customisable bone name instead of a flat boolean
  • Added #withRenderLayer to the various GeoRenderers to allow for a functional instantiation
  • GeoObjectRenderer now uses a generic for its GeoRenderState, allowing for generic extensibility
  • Directly pass the partialTick to GeoRenderer#addRenderData, GeoRenderLayer#addRenderData, GeoModel#prepareForRenderPass, and the various CompileRenderState events/hooks (#762)
  • Renamed GeoRenderer#adjustPositionForRender to #adjustRenderPose to better reflect its intended usage
  • ItemArmorGeoLayer.RenderData now uses GeoArmorRenderer.ArmorSegments instead of manual slots and part getters
  • Made GeoRenderEvent and its various sub-events multiloader compatible
  • All platform-specific GeckoLib events are now split into their own individual classes to make it easier to find and manage them. E.G. CompileBlockRenderLayersEvent

Additions

  • Added "Stateless" animatables. These are an alternate way of handling animations for GeckoLib animatables.
  • Added attack.punch DefaultAnimation constant
  • Added misc.idle.flying DefaultAnimation constant
  • Added move.dive DefaultAnimation constant
  • Added DefaultAnimations#triggerOnlyController for creating a controller specifically for arbitrary triggered animations
  • Added RawAnimation#getStageCount
  • Added AnimationController#getStateHandler
  • Added DefaultAnimations#genericWalkFlyIdleController
  • Added a constructor overload for various GeckoLib renderers that takes the item directly and creates a defaulted instance using the object's registered ID for quick and easy handling
    • E.G. new GeoEntityRenderer(ModEntities.MY_ENTITY);
  • Added GeoRenderEvent#hasData
  • Added RenderUtil#getReplacedEntityRenderer
  • Added RenderUtil#getGeckoLibItemRenderer
  • Added RenderUtil#getGeckoLibEntityRenderer
  • Added RenderUtil#getGeckoLibBlockRenderer
  • Added RenderUtil#getGeckoLibArmorRenderer

Bug Fixes

  • Add double-depth bedrock keyframe parsing because I have no idea why Blockbench is exporting that
  • Fixed triggered animations not visually working on brand-new stacks in multiplayer for other players
  • Fixed some incorrect javadocs in AnimationController
  • Ensure the EntityRenderState is properly extracted before passing to GeoArmorRenderer for extraction

Internal Changes

  • Reorganised GeckoLib's packets into folders
  • Added a StreamCodec implementation for Animation.Stage
  • Added a StreamCodec implementation for RawAnimation
  • Added javadocs to more internal methods and all of the mixins, for clarity
  • Improved the Javadoc on GeoRenderEvent#getRenderData
  • Removed RenderUtil#getCurrentSystemTick
  • Removed RenderUtil#booleanToFloat
  • Removed RenderUtil#getGeoModelForEntityType
  • Removed RenderUtil#getGeoModelForEntity
  • Removed RenderUtil#getGeoModelForItem
  • Removed RenderUtil#getGeoModelForBlock
  • Removed RenderUtil#getGeoModelForArmor
  • Moved RenderUtil#getCurrentTick to ClientUtil
  • Moved RenderUtil#arrayToVec to JsonUtil
  • Removed some superfluous parameters from GeoRenderProvider#getGeoArmorRenderer
  • Renamed ItemArmorGeoLayer#prepHumanoidModelForRender to #positionModelPartFromBone

Forge 1.21.10

by Tslat on Oct 22, 2025
Download

Fabric 1.21.10

by Tslat on Oct 22, 2025
Download

GeckoLib v5.3-alpha-2

Alpha 2 Notes:

  • Fix Forge crashing on load on newer Forge versions (#773)
  • Fix GeoArmorRenderer crashing when not rendering a full set (#771)
  • BlockAndItemGeoLayer#renderStackForBone and #renderBlockForBone renamed to #submitItemStackRender and #submitBlockRender respectively
  • Moved the OBJECT_RENDER_POSE and MODEL_RENDER_POSE DataTickets to the base GeoRenderer, so that subclasses do not need to handle them in overrides
  • Fixed only handling 1 PerBoneRenderTask per GeoBone
  • Added GeoBone#transformToBone
  • Split PerBoneRender tasks out into GeoRenderer#submitPerBoneRenderTasks
  • Removed the skipPerBoneTasks in several GeoRenderer method calls as it is no longer needed
  • Created PerBoneRenderTasks for neatly handling per-bone render tasks given their added complexity
  • Restricted GeoArmorLayer's generic type to require an AvatarRenderState, as that is the actual type required by the models used
  • Added RenderStateUtil

Changes

  • Port to 1.21.10
    • NOTE: This is an ALPHA build, and may be subject to breaking changes until the alpha tag is removed.
    • The PACKED_LIGHT DataTicket is no longer filled for most GeoRenderers, as the base RenderState classes contain lightCoords now by default
    • Added GeoRenderState#getPackedLight
    • GeoRenderer#defaultRender has been renamed to #submitRenderTasks to better represent its function now that we're not actually rendering at the time of that call
    • GeoRenderer#actuallyRender has been renamed to #buildRenderTask to better represent its function
    • GeoLayer#render has been renamed to #buildRenderTask to better represent its function
    • GeoRenderer#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 methods
    • preRender, scaleModelForRender, and adjustPositionForRender have all been moved to after the preRender event check
    • Added GeoRenderer#createRenderState
    • Removed GeoEntityRenderer#createBaseRenderState - Use #createRenderState instead
    • Removed various DataTickets from the default setup, where they're just a blatant clone of existing vanilla properties, to eliminate multiple sources of truth and improve performance
    • The various Matrix4f variables in GeckoLib renderers has been moved to DataTickets
    • Removed GeoRenderer#doPostRenderCleanup
    • Added the associated HumanoidModel to GeoArmorLayer.RenderData
  • Rewrote GeoArmorRenderer - it should now be significantly easier to use and understand
  • Change DefaultedEntityGeoModel to take a customisable bone name instead of a flat boolean
  • Added #withRenderLayer to the various GeoRenderers to allow for a functional instantiation
  • GeoObjectRenderer now uses a generic for its GeoRenderState, allowing for generic extensibility
  • Directly pass the partialTick to GeoRenderer#addRenderData, GeoRenderLayer#addRenderData, GeoModel#prepareForRenderPass, and the various CompileRenderState events/hooks (#762)
  • Renamed GeoRenderer#adjustPositionForRender to #adjustRenderPose to better reflect its intended usage
  • ItemArmorGeoLayer.RenderData now uses GeoArmorRenderer.ArmorSegments instead of manual slots and part getters
  • Made GeoRenderEvent and its various sub-events multiloader compatible
  • All platform-specific GeckoLib events are now split into their own individual classes to make it easier to find and manage them. E.G. CompileBlockRenderLayersEvent

Additions

  • Added "Stateless" animatables. These are an alternate way of handling animations for GeckoLib animatables.
  • Added attack.punch DefaultAnimation constant
  • Added misc.idle.flying DefaultAnimation constant
  • Added move.dive DefaultAnimation constant
  • Added DefaultAnimations#triggerOnlyController for creating a controller specifically for arbitrary triggered animations
  • Added RawAnimation#getStageCount
  • Added AnimationController#getStateHandler
  • Added DefaultAnimations#genericWalkFlyIdleController
  • Added a constructor overload for various GeckoLib renderers that takes the item directly and creates a defaulted instance using the object's registered ID for quick and easy handling
    • E.G. new GeoEntityRenderer(ModEntities.MY_ENTITY);
  • Added GeoRenderEvent#hasData
  • Added RenderUtil#getReplacedEntityRenderer
  • Added RenderUtil#getGeckoLibItemRenderer
  • Added RenderUtil#getGeckoLibEntityRenderer
  • Added RenderUtil#getGeckoLibBlockRenderer
  • Added RenderUtil#getGeckoLibArmorRenderer

Bug Fixes

  • Add double-depth bedrock keyframe parsing because I have no idea why Blockbench is exporting that
  • Fixed triggered animations not visually working on brand-new stacks in multiplayer for other players
  • Fixed some incorrect javadocs in AnimationController
  • Ensure the EntityRenderState is properly extracted before passing to GeoArmorRenderer for extraction

Internal Changes

  • Reorganised GeckoLib's packets into folders
  • Added a StreamCodec implementation for Animation.Stage
  • Added a StreamCodec implementation for RawAnimation
  • Added javadocs to more internal methods and all of the mixins, for clarity
  • Improved the Javadoc on GeoRenderEvent#getRenderData
  • Removed RenderUtil#getCurrentSystemTick
  • Removed RenderUtil#booleanToFloat
  • Removed RenderUtil#getGeoModelForEntityType
  • Removed RenderUtil#getGeoModelForEntity
  • Removed RenderUtil#getGeoModelForItem
  • Removed RenderUtil#getGeoModelForBlock
  • Removed RenderUtil#getGeoModelForArmor
  • Moved RenderUtil#getCurrentTick to ClientUtil
  • Moved RenderUtil#arrayToVec to JsonUtil
  • Removed some superfluous parameters from GeoRenderProvider#getGeoArmorRenderer
  • Renamed ItemArmorGeoLayer#prepHumanoidModelForRender to #positionModelPartFromBone

Forge 1.21.10

by Tslat on Oct 12, 2025
Download

Fabric 1.21.10

by Tslat on Oct 12, 2025
Download

GeckoLib v5.3-alpha-1

Changes

  • Port to 1.21.10
    • NOTE: This is an ALPHA build, and may be subject to breaking changes until the alpha tag is removed.
    • The PACKED_LIGHT DataTicket is no longer filled for most GeoRenderers, as the base RenderState classes contain lightCoords now by default
    • Added GeoRenderState#getPackedLight
    • GeoRenderer#defaultRender has been renamed to #submitRenderTasks to better represent its function now that we're not actually rendering at the time of that call
    • GeoRenderer#actuallyRender has been renamed to #buildRenderTask to better represent its function
    • GeoLayer#render has been renamed to #buildRenderTask to better represent its function
    • GeoRenderer#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 methods
    • preRender, scaleModelForRender, and adjustPositionForRender have all been moved to after the preRender event check
    • Added GeoRenderer#createRenderState
    • Removed GeoEntityRenderer#createBaseRenderState - Use #createRenderState instead
    • Removed various DataTickets from the default setup, where they're just a blatant clone of existing vanilla properties, to eliminate multiple sources of truth and improve performance
    • The various Matrix4f variables in GeckoLib renderers has been moved to DataTickets
    • Removed GeoRenderer#doPostRenderCleanup
    • Added the associated HumanoidModel to GeoArmorLayer.RenderData
  • Rewrote GeoArmorRenderer - it should now be significantly easier to use and understand
  • Change DefaultedEntityGeoModel to take a customisable bone name instead of a flat boolean
  • Added #withRenderLayer to the various GeoRenderers to allow for a functional instantiation
  • GeoObjectRenderer now uses a generic for its GeoRenderState, allowing for generic extensibility
  • Directly pass the partialTick to GeoRenderer#addRenderData, GeoRenderLayer#addRenderData, GeoModel#prepareForRenderPass, and the various CompileRenderState events/hooks (#762)
  • Renamed GeoRenderer#adjustPositionForRender to #adjustRenderPose to better reflect its intended usage
  • ItemArmorGeoLayer.RenderData now uses GeoArmorRenderer.ArmorSegments instead of manual slots and part getters
  • Made GeoRenderEvent and its various sub-events multiloader compatible
  • All platform-specific GeckoLib events are now split into their own individual classes to make it easier to find and manage them. E.G. CompileBlockRenderLayersEvent

Additions

  • Added "Stateless" animatables. These are an alternate way of handling animations for GeckoLib animatables.
  • Added attack.punch DefaultAnimation constant
  • Added misc.idle.flying DefaultAnimation constant
  • Added move.dive DefaultAnimation constant
  • Added DefaultAnimations#triggerOnlyController for creating a controller specifically for arbitrary triggered animations
  • Added RawAnimation#getStageCount
  • Added AnimationController#getStateHandler
  • Added DefaultAnimations#genericWalkFlyIdleController
  • Added a constructor overload for various GeckoLib renderers that takes the item directly and creates a defaulted instance using the object's registered ID for quick and easy handling
    • E.G. new GeoEntityRenderer(ModEntities.MY_ENTITY);
  • Added GeoRenderEvent#hasData
  • Added RenderUtil#getReplacedEntityRenderer
  • Added RenderUtil#getGeckoLibItemRenderer
  • Added RenderUtil#getGeckoLibEntityRenderer
  • Added RenderUtil#getGeckoLibBlockRenderer
  • Added RenderUtil#getGeckoLibArmorRenderer

Bug Fixes

  • Add double-depth bedrock keyframe parsing because I have no idea why Blockbench is exporting that
  • Fixed triggered animations not visually working on brand-new stacks in multiplayer for other players
  • Fixed some incorrect javadocs in AnimationController
  • Ensure the EntityRenderState is properly extracted before passing to GeoArmorRenderer for extraction

Internal Changes

  • Reorganised GeckoLib's packets into folders
  • Added a StreamCodec implementation for Animation.Stage
  • Added a StreamCodec implementation for RawAnimation
  • Added javadocs to more internal methods and all of the mixins, for clarity
  • Improved the Javadoc on GeoRenderEvent#getRenderData
  • Removed RenderUtil#getCurrentSystemTick
  • Removed RenderUtil#booleanToFloat
  • Removed RenderUtil#getGeoModelForEntityType
  • Removed RenderUtil#getGeoModelForEntity
  • Removed RenderUtil#getGeoModelForItem
  • Removed RenderUtil#getGeoModelForBlock
  • Removed RenderUtil#getGeoModelForArmor
  • Moved RenderUtil#getCurrentTick to ClientUtil
  • Moved RenderUtil#arrayToVec to JsonUtil
  • Removed some superfluous parameters from GeoRenderProvider#getGeoArmorRenderer
  • Renamed ItemArmorGeoLayer#prepHumanoidModelForRender to #positionModelPartFromBone

Forge 1.20.1

by Tslat on Sep 23, 2025
Download

Fabric 1.20.1

by Tslat on Sep 23, 2025
Download

v4.8.2

  • Fix triggered animations not applying on Singleton animatables when first used in multiplayer for other players (on Fabric)

NeoForge 1.21.1

by Tslat on Sep 22, 2025
Download

Forge 1.21.1

by Tslat on Sep 22, 2025
Download

Fabric 1.21.1

by Tslat on Sep 22, 2025
Download

v4.8.2

  • Fix a double-space in DynamicGeoBlockRenderer's javadocs
  • Fix an incorrect link in StatelessAnimatable
  • Clean up an ugly javadoc entry in GeoReplacedEntity
  • Clean up some javadocs in GeoModel
  • Clean up some javadocs in GeoAnimatable
  • Clean up some javadocs in ContextAwareAnimatableManager
  • Clean up some javadocs in AnimatableManager
  • Fixed Singleton Geo animatables not showing a triggered anim when newly created for other players in multiplayer

Forge 1.20.1

by Tslat on Sep 22, 2025
Download

v4.8.1

  • Revert Forge parity change - players aren't as up to date on Forge 1.20.1 as I expected

Fabric 1.20.1

by Tslat on Sep 22, 2025
Download

Forge 1.20.1

by Tslat on Sep 21, 2025
Download

Fabric 1.20.1

by Tslat on Sep 21, 2025
Download

v4.8

  • Added "Stateless" animatables. These are an alternate way of handling animations for GeckoLib animatables.
  • Added NetworkUtil, adding some network helpers for writing/reading RawAnimations
  • Added RawAnimation#getStageCount
  • Added AnimationController#getStateHandler
  • Added DefaultAnimations#triggerOnlyController for creating a controller specifically for arbitrary triggered animations
  • Added DefaultAnimations#genericWalkFlyIdleController
  • Added attack.punch DefaultAnimation constant
  • Added misc.idle.flying DefaultAnimation constant
  • Added move.dive DefaultAnimation constant
  • Added a constructor overload for various GeckoLib renderers that takes the item directly and creates a defaulted instance using the object's registered ID for quick and easy handling
    • E.G. new GeoEntityRenderer(ModEntities.MY_ENTITY);
  • Made the Forge network connection optional, allowing for client-only GeckoLib mods to be made if wanted
  • Fixed GeoReplacedEntities not taking partialTick into account (#761)

NeoForge 1.21.1

by Tslat on Sep 20, 2025
Download

Forge 1.21.1

by Tslat on Sep 20, 2025
Download

Project members

Gecko

Owner

DerToaster98

Contributor

KyoSleep

Contributor

mchorse

Contributor

Tslat

Maintainer

ZigyTheBird

Member

Details

Licensed MIT
Created 3 years ago
Updated 2 days ago