Compatibility
Minecraft: Java Edition
1.21.10
1.21.3–1.21.8
1.21–1.21.1
1.20.x
1.19.1–1.19.4
1.18.2
1.17.1
1.16.5
1.15.2
1.12.2
Platforms
Supported environments
Creators
Details
Licensed MIT
Created 3 years ago
Updated 3 days ago
Changelog
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 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 viaGeoRenderer#buildRenderTask
. Consequently, you no longer need to check forisReRender
in renderer methodspreRender
,scaleModelForRender
, andadjustPositionForRender
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 variousGeoRenderer
s to allow for a functional instantiation GeoObjectRenderer
now uses a generic for itsGeoRenderState
, allowing for generic extensibility- Directly pass the partialTick to
GeoRenderer#addRenderData
,GeoRenderLayer#addRenderData
,GeoModel#prepareForRenderPass
, and the variousCompileRenderState
events/hooks (#762) - Renamed
GeoRenderer#adjustPositionForRender
to#adjustRenderPose
to better reflect its intended usage ItemArmorGeoLayer.RenderData
now usesGeoArmorRenderer.ArmorSegment
s 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.
- See: https://github.com/bernie-g/geckolib/wiki/Stateless-Animatable-Handling-(Geckolib5)
- Added:
StatelessGeoBlockEntity
StatelessGeoEntity
StatelessGeoObject
StatelessGeoReplacedEntity
StatelessGeoSingletonAnimatable
StatelessAnimationController
- 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);
- E.G.
- 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 toGeoArmorRenderer
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
toClientUtil
- Moved
RenderUtil#arrayToVec
toJsonUtil
- Removed some superfluous parameters from
GeoRenderProvider#getGeoArmorRenderer
- Renamed
ItemArmorGeoLayer#prepHumanoidModelForRender
to#positionModelPartFromBone
Files
Metadata
Release channel
AlphaVersion number
5.3-alpha-1Loaders
Game versions
1.21.10Downloads
466Publication date
October 12, 2025 at 1:55 AMPublisher
Tslat
Maintainer