All versions
0.6
Release
travelerslib-neoforge-1.21.1-0.6.jarlast month 574
Compatibility
Minecraft: Java Edition
1.21.1
Platform
NeoForge
Supported environments
Client and server
Changes
Pathfinding
- Completely rewritten A* pathfinder and navigation system replacing vanilla navigation for all SmartAnimal mobs - custom node evaluators, binary heap open-set, and pathfinding context
- Pathfinding runs asynchronously on a dedicated thread pool; path results are applied back on the main thread so mob tick cost is near zero during computation
- Added dedicated navigation and node evaluator modes: ground, flying, swimming, and amphibious
- Walk node evaluator now accounts for entity width and height when checking clearance, step-ups, fall distances, and diagonal movement
- Diagonal moves are gated: both cardinal arms must be clear before the diagonal is attempted, preventing mobs cutting corners through walls
- Entity-width-aware danger detection: fire, lava, water, and damage zones are scanned across the full footprint of the mob, not just its center block - wider mobs keep a proportionally wider berth
DAMAGE_CAUTIOUShazard zones use a larger detection radius than other dangers- Added
NEAR_BLOCKEDpath type: nodes adjacent to walls or custom fence collision are penalized rather than refused, so mobs prefer open routes but can still escape tight spaces - Added
NEAR_ELECTRIFIEDpath type: nodes adjacent to powered custom fence/cable collision are penalized with a higher cost than ordinary wall proximity - Added
BLOCKED_ELECTRIFIEDpath type: standing directly inside powered custom fence/cable collision is treated as impassable and distinguishable from ordinary blocked terrain - Wall detection for
NEAR_BLOCKED/NEAR_ELECTRIFIEDchecks torso level (Y+1) rather than foot level, so step-ups and slopes are not penalized - only actual obstructing walls are - Fixed pathfinding start node always returning BLOCKED when the entity is wedged in a corner - start node now bypasses entity-collision override since the mob is physically already there
- Start node search now scans downward up to the entity's full height so airborne or mid-jump mobs find the floor correctly instead of snapping to an arbitrary Y
- Fixed animals getting stuck on cliffs and not jumping properly
Collision System
- Added
TravelersCollisionHandler: a spatial index for dynamic AABB-based collision shapes registered by entities, used by fences, cables, and other structural entities - Custom collision shapes are chunk-indexed for fast queries and automatically removed when the owning entity is removed
- Added
IPowerProviderinterface: collision owners that returnisPowered() = trueclassify nearby path nodes asBLOCKED_ELECTRIFIED/NEAR_ELECTRIFIEDinstead of plainBLOCKED/NEAR_BLOCKED
Entity System
- Added
SmartAnimalBase- base class for all Travelers mobs, wiring together the custom navigation, task controller, animation module, and body rotation - Added multi-hitbox part entities (
AnimalEntityPart,IPartHaver): a mob can register sub-entities with independent hitboxes that forward damage back to the parent - Added
TravelersMoveAnalysis: smoothed horizontal speed tracking averaged over a configurable tick window with hysteresis gating to avoid jitter - used to drive animation speed suppliers without per-frame side effects - Added
TravelersBodyRotationControl: custom body rotation with configurable turn speed and smooth head-return-to-front after the mob stops moving - Added
TravelerTaskController: custom AI goal/task system replacing vanilla goal selectors - tasks declare occupations, run priorities, and per-tick vs. on-demand update modes; separate combat and general-purpose controllers per mob
Animation
- Reworked animation transitions into true cross-fades: both animations keep playing during the blend instead of freezing on a snapshot and sliding onto the first frame of the next animation
- Reversing to an outgoing animation during a transition now reverses the blend in-place, so rapidly alternating requests settle into a stable pose instead of jittering
- Animations resume from the correct cycle position after a transition completes; keyframe sounds and particles fire in sync during blends
- Animation controllers now compose additively: every controller's contribution stacks onto the shared pose as a delta from rest, so sway, walk, and damage controllers all combine correctly - bones only one controller animates are unaffected
- Added additive animation overlays: a controller can layer a separate animation on top of itself with strength driven by a per-frame condition (e.g. an injured limp). Configure with
TravelersAnimationControllers.register("root", 10).withAdditiveLayer("injured", entity -> ...) - Added
controller.stop(entity)/rootController.stop(entity)/animationDefinition.stopForEntity(entity): cancels playback and eases bones back to rest so looped animations can actually be stopped - Fixed stop-in-place transitions only holding the freeze at the start of a sequence - the freeze now covers the entire start → loop → out sequence
- Added CatmullRom and Hermite interpolation for smoother animation curves
- Fixed block entity animation dispatch packet
Procedural Motion
- Added IK leg solver (
TravelersIKHelper,TravelersLegSolver) with biped and quadruped variants: legs plant on terrain surface and solve thigh/calf angles via two-bone IK; body offsets and rolls based on left/right height difference - Added
TravelersChainBuffer: physics-based chain/tail swing simulation driven by the mob's delta yaw and pitch, with configurable max angle, buffer time, and falloff - output drives bone rotation in the animation pipeline
Camera Shake
- Added server-triggered camera shake (
TravelersShakeCamerapacket): shake instances carry strength, duration, and a source position; client applies quadratic distance falloff so nearby shakes are stronger; multiple simultaneous shakes stack - Shake respects a global config toggle and a per-player intensity multiplier
Fog
- Added
FogHandler/BiomeFogData: mods can register custom fog density and color per biome key; the handler interpolates smoothly as the player moves between biomes
Network
- Added
TravelersGetBonePos/TravelersRecordEntityBoneSyncpackets: server can request the world-space position of a named bone from a client animator and broadcast the result - used for attaching hit effects, particles, or child entities to animated bones
World
- Added
TravelersBiomeModifications/TravelersBiomeModificator: mods can register mob spawns (weight, group size, biome tag or key) and placed features into biomes without a datapack - applied during NeoForge biome modification events - Added
TravelersSpawnModification: data record for declarative spawn entries used by the biome modification system
Flying
- Fixed fly node evaluator not respecting entity clearance height
- Fixed flying move control overshooting targets at low speed
AzureLib
- AzureLib 3.1.9 source has been merged directly into Travelers-Lib - it is no longer a separate dependency; everything ships in one jar with no version mismatch risk
Blockbench Plugin
- Added Travelers Tools Blockbench plugin with support for authoring Travelers animation definitions, IK chains, procedural motion, and easing curves directly in Blockbench
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:3qvUCqn7:Oqqjy0vX"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:3qvUCqn7:Oqqjy0vX"
}

