Mods / Jaunt: Entity Movement System

Tags:
Creatures Library Utility
Authors:
Roscati, sekelsta, Freakyuser396, safwyl, Shintharo12, dinolord919
Side:
Both
Created:
Jun 8th 2025 at 4:11 AM
Last modified:
Mar 27th at 7:14 PM
Downloads:
145473
Follow Unfollow 1181
Latest release (for Vintage Story 1.21.2 - 1.21.6, potentially outdated):
jaunt_2.2.0.zip  1-click install
For testers (for Vintage Story 1.22.0-rc.1 - 1.22.0-rc.5):
jaunt_3.0.0-rc.3.zip  1-click install

This mod does nothing useful on its own. Install if another mod requires it.

Jaunt is a library mod to extend entities with rideable behaviors. It provides an extended gait (movement pacing) system allowing for multiple forward gaits plus idle and backwards movement; as well as a stamina behavior for entities.

 

Release List
2.1.0: 1.21 Compatability + Saddle Breaks
2.0.0: Flying Mount Support + Jaunt Flute

 

Checkout Draconis for an example of what can be done!

 

Mods using Jaunt:

 

If you are experiencing issues with your mount stopping and running in place and/or your camera snapping forward while riding this is due to the full attribute tree resync in the base game. It is more likely to happen the more mods you have installed but as a workaround you can try MountCameraFix mod which changes the max number of dirty paths before a full resync.

 

While Jaunt itself is a code mod it is designed to be fully implemented and configured through entity json files and does not require content mods to be converted to code mods to utilize it. Just add Jaunt to your mod's dependencies and follow the guide below on "Entity Json Implementation"

Gait System

Gaits and rideable are independent behaviors but using jaunt:rideable requires jaunt:gait also be configured or it will fail to initialize.


When an entity uses both behaviors it allows the rider to cycle through available gaits according to the order specified in the rideableGaitOrder array in jaunt:rideable's behaviorConfig.

For more information on configuring available gaits see the Entity Json Implementation section below.

 

Below is an example setup utilized by Equus: Wild Horses that implements four forward gaits.

  • Walkback (Backward)
  • Idle (Stationary)
  • Walk (Forward Speed 1 - Slowest)
  • Trot (Forward Speed 2)
  • Canter (Forward Speed 3)
  • Gallop (Forward Speed 4 - Fastest)

 

They are progressive in that you must move through each gait to get to the next, cycling gait up is done via the Sprint Key (see controls section for more details). Cycling down can be done with the S key or by releasing the forward key when using the snaffle bit.

 

The gaits are indicated on the HUD with icons which can be supplied by the mod (see Entity Json Implementation for more details). Jaunt also provides the default icons used in Equus: Wild Horses which can be referenced by your mod.

 

Stamina System

When an entity uses the jaunt:stamina behavior it will be given an additional stat - "stamina" (go figure). This stat behaves much like you'd probably expect with certain actions causing stamina drain (fatigue) and when these actions are not being performed it will naturally regenerate.

  • Drain/Regen rates are fully configurable in entity json behaviorConfigs, as well as values for maximum stamina, penalties for wounded or mounted animals, as well an exhaustion threshold and the option to cancel fleeingEntity behaviors when below the exhaustion threshold (allowing players to run down animals they might not otherwise be able to).

 

  • Stamina draining activites include swimming and fleeing, and can be added to any gait in the gait config. Stamina is regenerated when not in any of those situations, regen penalties (if configured) are applied if the horse is mounted or injured (below 70% health).

 

  • When a entity's stamina is below 50% there is a gait shift down chance that is quadratically proportional (chance increases more dramatically as the stamina decreases) to the stamina percentage below 50%. (i.e. At 50% stamina, 0% chance; at 0% stamina, 100% chance; moving along a quadratic curve)

 

  • If the gait shift down chance is triggered the entity will reduce to a their moderateStamina state if remaining stamina is greater than 10%, or to their lowStaminaState if below 10%. These states are configured in the rideable behaviorConfigs section.

 

  • If stamina fully drains while swimming, nothing will occur (don't worry about the entity drowning) but it signficantly reduces their ability to move quickly upon exiting the water.

 

HUD Items

With the addition of the Gait System and Stamina Behavior for entities you'll find that when mounted there are two additional HUD items visible.

 

Gait Indicator: This icon is a dynamic image that changes with your mount's gait to help give a visual indicator of the current gait. Custom icons are can be supplied through the entity json.

Stamina Bar: The stamina bar shows your horse's current stamina level, if the stamina level drops below 30% the bar will flash


The placement for the gait indicator and stamina bar are fully configurable from the mod config file but apply to all mods using the jaunt library.

StaminaBarLocation can be any of the following:

  • "AboveHealth"
  • "AboveHunger"
  • "AboveTemporal"

 

StaminaBarOffsets are then applied as x/y values from that location.

Please be aware other mods may share this location and offsets may need to be applied when working with mods such as Hydrate or Diedrate or Rustbound Magic.

 

Default Locations:

HUD Items

 

Controls

Snaffle Bit:

W: Hold to move forward, release to stop

A/D: Left/Right

S: Press without releasing W to decrease gait -OR- from idle walk back

Sprint Key (Default Ctrl): Increase gait, when galloping this key will also swap back and forth between canter and gallop

 

Curb Bit:

W: Press to move forward

A/D: Left/Right

S: Decrease gait -OR- from idle walk back

Sprint Key (Default Ctrl): Increase gait, when galloping this key will also swap back and forth between canter and gallop

 

Config Options and Default Values

Jaunt includes a mod config with options for hud placement (typically to be exercised by players for compatibility with other mods' hud items) as well as default values for most configurable options. Keep in mind any changes here apply to all mods utilizing Jaunt so modifying the entity json is the preferred method for implementing stamina and gait values.

 

GlobalDebugMode enables a lot of logging statements around gait changes, for performance reasons keep this disabled during normal play.

Default Config

{
  "ConfigVersion": "2.0.0",
  "GlobalMaxStaminaMultiplier": 1.0,
  "GlobalStaminaRegenMultiplier": 1.0,
  "GlobalSwimStaminaCostMultiplier": 1.0,
  "GlobalSprintStaminaCostMultiplier": 1.0,
  "EnableStamina": true,
  "HideStaminaOnFull": false,
  "StaminaBarLocation": "AboveHealth",
  "StaminaBarWidthMultiplier": 1.0,
  "StaminaBarXOffset": 0.0,
  "StaminaBarYOffset": 0.0,
  "ShowGaitIcon": true,
  "IconOffsetX": -385.0,
  "IconOffsetY": -105.0,
  "IconSize": 75.0,
  "DefaultMaxStamina": 100.0,
  "DefaultSprintFatigue": 0.2,
  "DefaultSwimFatigue": 0.2,
  "DefaultBaseFatigueRate": 1.0,
  "DefaultStaminaRegenRate": 1.0,
  "DefaultRegenPenaltyWounded": 0.5,
  "DefaultRegenPenaltyMounted": 0.3,
  "DefaultExhaustionThreshold": 0.1,
  "DefaultDontFleeWhenExhausted": false,
  "GlobalDebugMode": false
}

 

Entity Json Implementation

All configuration is done similarly to vanilla behaviors, by adding them to the entity json file. To implement these behaviors you will need to add them to the client and server behavior lists and the appropriate configuration options in the behaviorConfigs dict. For reference below is the wildhorse.json entity file from Equus which implements both behaviors.

 

behaviorConfigs > jaunt:gait

idleGait - The default idle gait for this entity

idleFlyingGait - The default gait for this entity while flying

idleSwimmingGait - The default gait for this entity while swimming (not currently utilized)

groundGaitDrag - Drag factor for all ground based gaits (applies when not trying to move)

flyingGaitDrag - Drag factor for all flying based gaits (applies when not trying to move)

swimmingGaitDrag - Drag factor for all swimming based gaits (applies at rest, not during movement) (not currently utilized)

gaits - List of all available gaits for this entity, order is not important

    code unique code for this gait

    environment - the environment or habitat this gait should be used in (ground riding would be land, flying would be air, etc.; must be a member of EnumHabitat in game code)

    moveSpeed - movement speed for this gait

    backwards boolean for if this gait should move backwards

    yawMultipliermultiplicative factor for turning left/right for this gait

    staminaCost stamina cost for this gait

    fallbackGaitCode - fallback gait code for this gait, utilized by stamina system for slowing down when tired

    sound sound that should play while this gait is active

    iconTexture icon svg file to display in the HUD for this gait

 

jaunt:gait": {
	"idleGait": "idle",
	"idleFlyingGait": "hover",
	"idleSwimmingGait": "swim",
	"flyingGaitDrag": 0.25,
	"swimmingGaitDrag": 0.05,
	"groundGaitDrag": 0,
	"gaits": [
		{
			"code": "walkback",
			"environment": "land",
			"yawMultiplier": 1,
			"backwards": true,
			"staminaCost": 0.0,
			"iconTexture": "hud/walkback.svg",
			"movespeedByType": { "*-autumnus": 0.017 }
		},
		{
			"code": "idle",
			"environment": "land",
			"yawMultiplier": 1.25,
			"iconTexture": "hud/idle.svg"
		},
		{
			"code": "walk",
			"environment": "land",
			"yawMultiplier": 1,
			"staminaCost": 0.0,
			"iconTexture": "hud/walk.svg",
			"movespeedByType": { "*-autumnus": 0.017 }
		},
		{
			"code": "sprint",
			"environment": "land",
			"yawMultiplier": 0.5,
			"staminaCost": 0.2,
			"fallbackGaitCode": "walk",
			"sound": "draconis:sounds/stomp",
			"movespeedByType": { "*-autumnus": 0.16 }
		},

		{
			"code": "flyback",
			"environment": "air",
			"yawMultiplier": 1,
			"backwards": true,
			"staminaCost": 0.0,
			"movespeedByType": { "*-autumnus": 0.015 },
			"sound": "draconis:sounds/flying"
		},
		{
			"code": "hover",
			"environment": "air",
			"yawMultiplier": 1.25,
			"staminaCost": 0.0,
			"sound": "draconis:sounds/flying"
		},
		{
			"code": "glide",
			"environment": "air",
			"yawMultiplier": 0.75,
			"ascendSpeed": 1,
			"descendSpeed": 6,
			"staminaCost": 0.0,
			"movespeedByType": { "*-autumnus": 0.04 },
			"sound": "draconis:sounds/glide"
		},
		{
			"code": "glideflap",
			"environment": "air",
			"yawMultiplier": 0.5,
			"ascendSpeed": 2,
			"descendSpeed": 5,
			"staminaCost": 0.1,
			"fallbackGaitCode": "glide",
			"movespeedByType": { "*-autumnus": 0.065 },
			"sound": "draconis:sounds/glide"
		},
		{
			"code": "fly",
			"environment": "air",
			"yawMultiplier": 0.25,
			"ascendSpeed": 4,
			"descendSpeed": 5,
			"staminaCost": 0.2,
			"fallbackGaitCode": "glideflap",
			"movespeedByType": { "*-autumnus": 0.08 },
			"sound": "draconis:sounds/flying"
		},
		{
			"code": "dive",
			"environment": "air",
			"descendSpeed": 10,
			"staminaCost": 0.0,
			"fallbackGaitCode": "hover",
			"movespeedByType": { "*-autmnus": 0.025 },
			"sound": "draconis:sounds/glide"
		},

		{
			"code": "jump",
			"environment": "land",
			"yawMultiplier": 1,
			"staminaCost": 0.0,
			"movespeedByType": { "*-autumnus": 0.16 }
		},

		{
			"code": "swimback",
			"environment": "sea",
			"yawMultiplier": 1,
			"backwards": true,
			"movespeedByType": { "*-autumnus": 0.012 }
		},
		{
			"code": "swim",
			"environment": "sea",
			"yawMultiplier": 1,
			"movespeedByType": { "*-autumnus": 0.012 }
		}
	]
}

 

behaviorConfigs > jaunt:stamina

maxStamina - The entity's maximum stamina value

sprintFatigue - Fatigue rate applied when the animal is sprinting (separate from the gait fatigue rates specified in each gait). Currently applies when fleeEntityTaskAi is active.

swimFatigue - Fatigue rate applied when the animal is swimming

baseFatigueRate - A multiplier for all fatiguing actions

staminaRegenRate - A multiplier for stamina regen

dontFleeWhenExhausted - Prevents the fleeEntityTaskAi from starting when the entity is below the exhaustionThreshold

regenPenaltyWounded - Penalty reduction from the staminaRegenRate for entities with health below 70%

regenPenaltyMounted - Penalty reduction from the staminaRegenRate for entities while mounted.

exhaustionThreshold - The stamina threshold percentage (0.1 = 10%) at which exhaustion is toggled. Currently used for fleeEntityTask overrides.

 

"jaunt:stamina": {
	"maxStamina": 100,
	"sprintFatigue": 0.2,
	"swimFatigue": 0.2,
	"baseFatigueRate": 1,
	"staminaRegenRate": 1,
	"dontFleeWhenExhausted": true,
	"regenPenaltyWounded": 0.5,
	"regenPenaltyMounted": 0.3,
	"exhaustionThreshold": 0.1
},

 

behaviorConfigs > jaunt:rideable

behaviorConfigs > jaunt:rideable

The rideable config options are very similar to the vanilla setup, with a few added items. 

rideableGaitOrder - Ordered array of gaits to be used for riding, should always be ordered from most negative (backwards) to most positive movement speed.

 

controls - The rideable controls dict supports adding any of the available gaits as an additional control, with some extra configuration items for how to pass that information into the gate and stamina systems.

    moveSpeedMultiplier - float value that applies a multiplier to the gait's movespeed

    moveSpeed - override option for raw movespeed, overrides the gait's movespeed. Setting this will ignore movespeeds specified per gait and movespeedmultipliers set here

 

jaunt:rideable": {
	"interactMountAnySeat": false,
	"seats": [
		{ "apName": "Rider", "selectionBox": "MidAP", "bodyYawLimit": 0.2, "controllable": true,
			"mountOffsetByType": { "*-female-autumnus": { "x":-0.1, "y":-0.4, "z":0}, "*-male-autumnus": { "x":-0.17, "y":-0.57, "z":0},
				"*": { "x":0, "y":-0.4, "z":0} } }
	],
	"rideableGaitOrder": ["walkback", "idle", "walk", "sprint"],
	"flyableGaitOrder": [ "flyback", "hover", "glide", "glideflap", "fly" ],
	"controls": {
		"walkback": {
			"movespeedmultiplier": 1,
			"animation": "WalkBack",
			"weight": 10,
			"animationSpeedByType": {
				"*-autumnus": 1.2
			},
			"easeInSpeed": 1,
			"easeOutSpeed": 3,
			"blendMode": "Average",
			"riderAnim": {
				"animation": "ridewyvern-rideground",
				"animationSpeed": 1,
				"weight": 1,
				"withFpVariant": true,
				"blendMode": "Average",
				"elementWeight": {
					"LowerTorso": 80,
					"UpperTorso": 80,
					"UpperFootR": 80,
					"UpperFootL": 80,
					"LowerFootR": 80,
					"LowerFootL": 80
				},
				"elementBlendMode": {
					"LowerTorso": "Average",
					"UpperTorso": "Average",
					"UpperFootR": "Average",
					"UpperFootL": "Average",
					"LowerFootR": "Average",
					"LowerFootL": "Average"
				}
			}
		},
		"idle": {
			"weight": 1,
			"riderAnim": {
				"animation": "ridewyvern-rideground",
				"animationSpeed": 1,
				"weight": 1,
				"withFpVariant": true,
				"blendMode": "Average",
				"elementWeight": {
					"LowerTorso": 80,
					"UpperTorso": 80,
					"UpperFootR": 80,
					"UpperFootL": 80,
					"LowerFootR": 80,
					"LowerFootL": 80
				},
				"elementBlendMode": {
					"LowerTorso": "Average",
					"UpperTorso": "Average",
					"UpperFootR": "Average",
					"UpperFootL": "Average",
					"LowerFootR": "Average",
					"LowerFootL": "Average"
				}
			}
		},
		"walk": {
			"movespeedmultiplier": 1,
			"animation": "Walk",
			"weight": 10,
			"animationSpeedByType": {
				"*-autumnus": 1.125
			},
			"blendMode": "Average",
			"riderAnim": {
				"animation": "ridewyvern-rideground",
				"animationSpeed": 1,
				"weight": 1,
				"withFpVariant": true,
				"blendMode": "Average",
				"elementWeight": {
					"LowerTorso": 80,
					"UpperTorso": 80,
					"UpperFootR": 80,
					"UpperFootL": 80,
					"LowerFootR": 80,
					"LowerFootL": 80
				},
				"elementBlendMode": {
					"LowerTorso": "Average",
					"UpperTorso": "Average",
					"UpperFootR": "Average",
					"UpperFootL": "Average",
					"LowerFootR": "Average",
					"LowerFootL": "Average"
				}
			}
		},
		"sprint": {
			"movespeedmultiplier": 0.75,
			"animation": "Run",
			"easeOutSpeed": 4,
			"weight": 10,
			"animationSpeedByType": {
				"*-autumnus": 3
			},
			"blendMode": "Average",
			"riderAnim": {
				"animation": "ridewyvern-rideground",
				"animationSpeed": 2,
				"weight": 1,
				"withFpVariant": true,
				"blendMode": "Average",
				"elementWeight": {
					"LowerTorso": 80,
					"UpperTorso": 80,
					"UpperFootR": 80,
					"UpperFootL": 80,
					"LowerFootR": 80,
					"LowerFootL": 80
				},
				"elementBlendMode": {
					"LowerTorso": "Average",
					"UpperTorso": "Average",
					"UpperFootR": "Average",
					"UpperFootL": "Average",
					"LowerFootR": "Average",
					"LowerFootL": "Average"
				}
			}
		},

		"flyback": {
			"movespeedmultiplier": 1,
			"animation": "Hoverback",
			"weight": 10,
			"animationSpeedByType": {
				"*-autumnus": 1.2
			},
			"easeInSpeed": 1,
			"easeOutSpeed": 3,
			"blendMode": "Average",
			"riderAnim": {
				"animation": "ridewyvern-hover",
				"animationSpeed": 1,
				"weight": 1,
				"withFpVariant": true,
				"blendMode": "Average",
				"elementWeight": {
					"LowerTorso": 80,
					"UpperTorso": 80,
					"UpperFootR": 80,
					"UpperFootL": 80,
					"LowerFootR": 80,
					"LowerFootL": 80
				},
				"elementBlendMode": {
					"LowerTorso": "Average",
					"UpperTorso": "Average",
					"UpperFootR": "Average",
					"UpperFootL": "Average",
					"LowerFootR": "Average",
					"LowerFootL": "Average"
				}
			}
		},
		"hover": {
			"weight": 1,
			"animation": "Hover",
			"riderAnim": {
				"animation": "ridewyvern-hover",
				"animationSpeed": 1,
				"weight": 1,
				"withFpVariant": true,
				"blendMode": "Average",
				"elementWeight": {
					"LowerTorso": 80,
					"UpperTorso": 80,
					"UpperFootR": 80,
					"UpperFootL": 80,
					"LowerFootR": 80,
					"LowerFootL": 80
				},
				"elementBlendMode": {
					"LowerTorso": "Average",
					"UpperTorso": "Average",
					"UpperFootR": "Average",
					"UpperFootL": "Average",
					"LowerFootR": "Average",
					"LowerFootL": "Average"
				}
			}
		},
		"glide": {
			"movespeedmultiplier": 0.9,
			"animation": "Glide",
			"easeOutSpeed": 4,
			"weight": 10,
			"animationSpeedByType": {
				"*-autumnus": 2
			},
			"blendMode": "Average",
			"riderAnim": {
				"animation": "ridewyvern-ride",
				"animationSpeed": 2,
				"weight": 1,
				"withFpVariant": true,
				"blendMode": "Average",
				"elementWeight": {
					"LowerTorso": 80,
					"UpperTorso": 80,
					"UpperFootR": 80,
					"UpperFootL": 80,
					"LowerFootR": 80,
					"LowerFootL": 80
				},
				"elementBlendMode": {
					"LowerTorso": "Average",
					"UpperTorso": "Average",
					"UpperFootR": "Average",
					"UpperFootL": "Average",
					"LowerFootR": "Average",
					"LowerFootL": "Average"
				}
			}
		},
		"glideflap": {
			"movespeedmultiplier": 0.85,
			"animation": "GlideFlap",
			"easeOutSpeed": 4,
			"weight": 10,
			"animationSpeedByType": {
				"*-autumnus": 2
			},
			"blendMode": "Average",
			"riderAnim": {
				"animation": "ridewyvern-ride",
				"animationSpeed": 2,
				"weight": 1,
				"withFpVariant": true,
				"blendMode": "Average",
				"elementWeight": {
					"LowerTorso": 80,
					"UpperTorso": 80,
					"UpperFootR": 80,
					"UpperFootL": 80,
					"LowerFootR": 80,
					"LowerFootL": 80
				},
				"elementBlendMode": {
					"LowerTorso": "Average",
					"UpperTorso": "Average",
					"UpperFootR": "Average",
					"UpperFootL": "Average",
					"LowerFootR": "Average",
					"LowerFootL": "Average"
				}
			}
		},
		"fly": {
			"movespeedmultiplier": 0.75,
			"animation": "Fly",
			"weight": 10,
			"animationSpeedByType": {
				"*-autumnus": 1.125
			},
			"blendMode": "Average",
			"riderAnim": {
				"animation": "ridewyvern-ride",
				"animationSpeed": 1,
				"weight": 1,
				"withFpVariant": true,
				"blendMode": "Average",
				"elementWeight": {
					"LowerTorso": 80,
					"UpperTorso": 80,
					"UpperFootR": 80,
					"UpperFootL": 80,
					"LowerFootR": 80,
					"LowerFootL": 80
				},
				"elementBlendMode": {
					"LowerTorso": "Average",
					"UpperTorso": "Average",
					"UpperFootR": "Average",
					"UpperFootL": "Average",
					"LowerFootR": "Average",
					"LowerFootL": "Average"
				}
			}
		},

		"jump": {
			"movespeedmultiplier": 0.75,
			"animation": "Hover",
			"weight": 100,
			"blendMode": "Average",
			"animationSpeed": 1.4,
			"easeOutSpeed": 40,
			"easeInSpeed": 40,
			"riderAnim": {
				"animation": "ridewyvern-ride",
				"animationSpeed": 1,
				"weight": 10,
				"withFpVariant": true,
				"blendMode": "Average",
				"elementWeight": {
					"LowerTorso": 160,
					"UpperTorso": 160,
					"UpperFootR": 160,
					"UpperFootL": 160,
					"LowerFootR": 160,
					"LowerFootL": 160
				},
				"elementBlendMode": {
					"LowerTorso": "Average",
					"UpperTorso": "Average",
					"UpperFootR": "Average",
					"UpperFootL": "Average",
					"LowerFootR": "Average",
					"LowerFootL": "Average"
				}
			}
		},

		"swim": {
			"movespeedmultiplier": 1,
			"animation": "Swim",
			"animationSpeed": 1,
			"weight": 10,
			"blendMode": "Average",
			"riderAnim": {
				"animation": "ridewyvern-ride",
				"animationSpeed": 1,
				"weight": 1,
				"withFpVariant": true,
				"blendMode": "Average",
				"elementWeight": {
					"LowerTorso": 80,
					"UpperTorso": 80,
					"UpperFootR": 80,
					"UpperFootL": 80,
					"LowerFootR": 80,
					"LowerFootL": 80
				},
				"elementBlendMode": {
					"LowerTorso": "Average",
					"UpperTorso": "Average",
					"UpperFootR": "Average",
					"UpperFootL": "Average",
					"LowerFootR": "Average",
					"LowerFootL": "Average"
				}
			}
		},
		"swimback": {
			"movespeedmultiplier": 1,
			"animation": "Swim",
			"animationSpeed": 1,
			"weight": 10,
			"blendMode": "Average",
			"riderAnim": {
				"animation": "ridewyvern-ride",
				"animationSpeed": 1,
				"weight": 1,
				"withFpVariant": true,
				"blendMode": "Average",
				"elementWeight": {
					"LowerTorso": 80,
					"UpperTorso": 80,
					"UpperFootR": 80,
					"UpperFootL": 80,
					"LowerFootR": 80,
					"LowerFootL": 80
				},
				"elementBlendMode": {
					"LowerTorso": "Average",
					"UpperTorso": "Average",
					"UpperFootR": "Average",
					"UpperFootL": "Average",
					"LowerFootR": "Average",
					"LowerFootL": "Average"
				}
			}
		}
	}
}

Mod Version Mod IdentifierFor Game version Downloads Released Changelog Download 1-click mod install*
3.0.0-rc.3 jaunt
1.22.0-rc.1 - 1.22.0-rc.5
1078 Mar 27th at 7:14 PM jaunt_3.0.0-rc.3.zip 1-click install
  • removed the dive and attack keybinds for now as they weren't functional
  • removed path prefix for mount sounds being added by jaunt as vanilla already does the same thing and it would cause the game to look for sounds in "sounds/sounds/" instead of just "sounds/"
3.0.0-rc.2 jaunt
1.22.0-rc.1 - 1.22.0-rc.2
383 Mar 10th at 6:52 PM jaunt_3.0.0-rc.2.zip 1-click install

Update for 1.22.0 for real this time

3.0.0-rc.1 jaunt
1.22.0-rc.1 - 1.22.0-rc.2
Mar 10th at 5:29 PM 1-click install

Updated for 1.22

2.2.0 jaunt
1.21.2 - 1.21.6
23512 Feb 7th at 8:14 PM jaunt_2.2.0.zip 1-click install

Most strange behaviors while swimming should be fixed.

The flute should no longer break instantly.

Various improvements to changing gaits.

Fixed the crashes for ascending/descending.

Added a Ukrainian translation, thanks to

2.2.0-rc.2 jaunt
1.21.2 - 1.21.6
3981 Jan 12th at 10:29 PM jaunt_2.2.0-rc.2.zip 1-click install

Fixes for water movement, flute durability, and crashes while descending.

KNOWN CRASH: If using a Jaunt entity from a mod that hasn't been updated for this version, do not enter water while mounted. This will crash the game, and you will be unable to rejoin the server until the mod is updated for this version unless the entity is moved out of water.

2.1.2 jaunt
1.21.2 - 1.21.6
24030 Dec 22nd 2025 at 3:57 PM jaunt_2.1.2.zip 1-click install

Fixed so saddle breaking doesn't reset when the game is restarted - scornonthecob

Added Russian translation - qua8ion

2.1.1 jaunt
1.21.2 - 1.21.4
32742 Oct 7th 2025 at 1:01 PM jaunt_2.1.1.zip 1-click install

Recompile against 1.21.2, since the gait code changed

2.1.0 jaunt 7897 Sep 29th 2025 at 11:47 PM jaunt_2.1.0.zip 1-click install

Update for 1.21.2-rc.2. Expected to still work on 1.21.1, probably.

2.1.0-rc.1 jaunt
1.21.0-rc.6 - 1.21.0
23731 Aug 29th 2025 at 9:25 PM jaunt_2.1.0-rc.1.zip 1-click install
  • Add saddle break functionality
    • Very similar to vanilla saddle breaks
    • Does not block wander task on entities with RemainingSaddleBreaks > 0
    • If "Buck" animation is defined it does a coin toss between jumping or bucking during the saddle break action
  • Jaunt flute now has durability, default 500. Durability cost scales with distance to entity you are summoning (Durability Cost = Math.Max(Distance / 20, 1))
  • Jaunt flute binding messages no longer requires custom lang strings, instead references entity group name
  • Additional failure messages for jaunt flute behaviors
2.0.0 jaunt 11437 Aug 2nd 2025 at 9:31 PM jaunt_2.0.0.zip 1-click install
  • Add custom bone flute that allows binding to any ownable creature group
  • Custom bone flute has two tool modes
    • Play - plays the flute, if bound calls the bound entity
    • Bind - right clicking an entity will bind the flute to that entity group
2.0.0-rc.8 jaunt 712 Aug 1st 2025 at 1:15 AM jaunt_2.0.0-rc.8.zip 1-click install
  • Properly migrate old icon placements
2.0.0-rc.7 jaunt 52 Aug 1st 2025 at 12:53 AM jaunt_2.0.0-rc.7.zip 1-click install
  • Update icon placement for better compatibility
2.0.0-rc.6 jaunt 2743 Jul 30th 2025 at 5:04 PM jaunt_2.0.0-rc.6.zip 1-click install
  • Adds flying gait support
  • Heavy overhaul of gait system for further extensibility
  • Flying controls are now available (Jump to ascend, Sneak to descend)
  • New entity class for flying mounts (EntityFlyingAgent)
  • YawMultiplier replaces TurnRadius, and actually impacts mount movement
  • Hotkeys added for future additional controls
1.1.7 jaunt
1.20.11 - 1.20.12
4812 Jul 12th 2025 at 2:37 AM jaunt_1.1.7.zip 1-click install
  • Add config versioning system
  • Disable DebugMode for existing users
1.1.6 jaunt
1.20.11 - 1.20.12
3475 Jul 5th 2025 at 5:30 AM jaunt_1.1.6.zip 1-click install
  • Dispose of gait sounds on gait change (should fix OpenAL buffer limit crash)
  • Default debug to false
  • Properly apply global swim/sprint multipliers
1.1.5 jaunt
1.20.11 - 1.20.12
3487 Jun 21st 2025 at 2:33 AM jaunt_1.1.5.zip 1-click install
  • Fix black box hud icon on world reload
1.1.4 jaunt
1.20.11 - 1.20.12
564 Jun 19th 2025 at 9:11 PM jaunt_1.1.4.zip 1-click install
  • Fix swimback to walkback transition
  • Update sample entity json
1.1.2 jaunt
1.20.11 - 1.20.12
55 Jun 19th 2025 at 8:19 PM jaunt_1.1.2.zip 1-click install
  • Better transitions between swimming and walking
  • Fix hud icon texture rendering issue
  • Various bugfixes and code cleanup
1.1.0 jaunt
1.20.11 - 1.20.12
307 Jun 15th 2025 at 5:31 PM jaunt_1.1.0.zip 1-click install
  • Split gait and rideable behaviors
  • Gaits are no longer restricted to four forward gaits
  • Any number of gaits can be defined
  • Rideable can override movespeed or apply a movespeedmultiplier to the gait's movespeed
  • Fallback gait transitions are now configurable for a given gait
1.0.0-pre.7 jaunt
1.20.11 - 1.20.12
325 Jun 8th 2025 at 6:18 PM jaunt_1.0.0-pre.7.zip 1-click install
  • Update default icons (easier to read for non-horse folk)
  • Fix overlapping render composer name with Equus versions pre-jaunt
1.0.0-pre.6 jaunt 147 Jun 8th 2025 at 4:24 AM jaunt_1.0.0-pre.6.zip 1-click install
  • Initial release

77 Comments (oldest first | newest first) (threaded | flat)

Queerwolf, Mar 29th at 4:58 AM

Tels There is a mod linked in the description here - Elk Jaunt Integration adds this functionality to VS elk.

Tels, Mar 28th at 9:20 AM

Having more than 2 gaits sounds super useful for elks, too. But from the description of this mod it seems it only works with other mods like horses? Is there a way to get these gaits for the VS elks, too?

ELean16, Mar 23rd at 8:13 PM

Is there a way to let entities make sounds even when standing still (velocity <= 0) or is there a possible workaround like locking a sound to a specific animation?

The dragons from Draconis stop making any sounds while hovering or moving backwards and I can't find a fix :((

Kyara_Bot, Feb 25th at 9:42 AM

Would it be possible to make it so that wild animals all use the stamina system as well? It'd be interesting to set up a system to where endurance hunting would actually be feasible, forcing animals to flee until they are exhausted and can be easily killed.

SparrowOfRealms, Feb 17th at 11:56 PM

Thank you, I'll report the issue to PetAI as well if it can be helped then

dinolord919, Feb 17th at 8:17 PM

DeterminedBun What do you mean by stuck? Refusing to move at all, even when nudged around, or just when you're mounted?

SparrowOfRealms Interesting. It looks like it might actually be a PetAI problem, but I'll check to make sure it isn't on Jaunt's end.

Amarillo Update from the test version to the release version to fix that.

Amarillo, Feb 17th at 4:06 PM

Game crashing when tring to mount while the horse is swiming

Crash Report

Running on 64 bit Windows 10.0.26100.0 with 32676 MB RAM
Game Version: v1.21.6 (Stable)
17/02/2026 17:04:44: Critical error occurred in the following mod: jaunt@2.2.0-rc.2
Loaded Mods: balancedfotsaloot@1.1.0, chiseltoolslite@1.15.1, darcesdriftersredone@1.2.7, fieldsandplateaus@1.0.10, fadynasties@1.2.5, fagothic@1.3.1, fagreenwich@1.4.2, fahussar@1.1.3, falandsknecht@1.2.2, fatemplar@1.4.3, favarangian@1.0.6, faviking@1.1.2, bovinae@0.3.5, caninae@1.1.2, casuariidae@1.1.9, elephantidae@1.0.17, felinae@0.2.13, iniidae@0.1.6, pantherinae@1.2.10, rhinocerotidae@1.0.23, sirenia@1.0.26, spheniscidae@1.0.16, hopereignited@1.0.0, jonasboat@1.0.3, overhaullib@1.20.2, primitivesurvival@4.0.3, specificclutter@1.0.0, spyglass@0.6.0, terratag@0.3.1, unchisel@1.1.6, usefultraders@2.3.4, game@1.21.6, vsimgui@1.1.16, aculinaryartillery@2.0.0-dev.11, allclasses@2.0.9, ancienttools@1.6.1, attributerenderinglibrary@2.8.1, betterruins@0.5.7, billposting@1.1.0, blacksmithname@1.2.7, bulwarknr@1.0.9, canmarket@0.4.26, carryon@1.12.2, cartwrightscaravan@1.8.0, combatoverhaul@0.15.3, commonlib@2.8.0, configlib@1.10.14, cratelockfix@1.0.0, farseer@1.3.3, foodshelves@2.3.3, fromgoldencombs@1.9.4, genelib@2.1.6, hardcorewater@1.3.5, hidenametagsmod@1.21.5, hydrateordiedrate@2.3.7, immersivewoodchopping@0.8.2, immersivewoodsawing@0.2.8, jaunt@2.2.0-rc.2, justanarrowheadmold@1.1.0, maltiezcrossbows@1.8.0, medievalexpansionpatch@1.3.4, mountcamerafix@0.2.0, mountDestroyLeaves@1.1.3, nbcartographer@2.2.1, oneroof@1.11.0, playerlistrevived@2.3.7, plumbandcube@1.1.1, thatsmyarrow@1.0.0, purposefulstorage@1.5.1, raitheshackles@1.0.3, raithesnitches@1.0.4, realsmoke@1.1.10, repairmepatch@1.1.1, rifteye@0.5.2, rpvoicechat@2.4.2, searchable@1.1.0, somethinginthewater@1.2.7, terraprety@7.8.0, unconscious@2.0.1, creative@1.21.6, vsinstrumentsbase@2.0.7, survival@1.21.6, waterfall@1.0.0, woodenfortifications@2.0.10, workbenchexpansionpatch@1.1.0, xlib@0.9.0-pre.2, armory@1.10.2, elkjaunt@1.3.0, equus@1.2.0-rc.8, expandedfoods@2.0.0-dev.7, em@3.4.2, heraldry@1.0.2, playercorpse@1.12.0, quiversandsheaths@0.8.4, stonequarry@3.5.1, tabletopgames@3.0.5, thebasics@5.2.3, vanillavariantsridingequipment@2.2.0, vsinstruments_quackpack@1.0.2, bricklayers@3.1.6, heraldrybanners@1.0.1, capes@1.0.0
System.Collections.Generic.KeyNotFoundException: The key tread was not found
at Vintagestory.API.Datastructures.FastSmallDictionary`2.get_Item(TKey key) in VintagestoryApi\Datastructures\Dictionary\FastSmallDictionary.cs:line 78
at Jaunt.Behaviors.EntityBehaviorJauntRideable.UpdateRidingState() in C:\Users\ryker\source\repos\jaunt\Jaunt\Behaviors\EntityBehaviorJauntRideable.cs:line 718
at Jaunt.Behaviors.EntityBehaviorJauntRideable.OnGameTick(Single dt) in C:\Users\ryker\source\repos\jaunt\Jaunt\Behaviors\EntityBehaviorJauntRideable.cs:line 1168
at Vintagestory.API.Common.Entities.Entity.OnGameTick(Single dt) in VintagestoryApi\Common\Entity\Entity.cs:line 1022
at Vintagestory.API.Common.EntityAgent.OnGameTick(Single dt) in VintagestoryApi\Common\Entity\EntityAgent.cs:line 669
at Vintagestory.Client.NoObf.ClientSystemEntities.OnGameTick(Single dt) in VintagestoryLib\Client\Systems\Entities.cs:line 87
at Vintagestory.Common.GameTickListener.OnTriggered(Int64 ellapsedMilliseconds) in VintagestoryLib\Common\Model\GameTickListener.cs:line 25
at Vintagestory.Common.EventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world) in VintagestoryLib\Common\EventManager.cs:line 102
at Vintagestory.Client.NoObf.ClientMain.MainRenderLoop(Single dt) in VintagestoryLib\Client\ClientMain.cs:line 836
at Vintagestory.Client.GuiScreenRunningGame.RenderToPrimary(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 172
at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 719
at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 663
at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 112
at OpenTK.Windowing.Desktop.GameWindow.Run()
at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 347
at Vintagestory.Client.ClientProgram.<>c__DisplayClass10_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 131
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 95

Event Log entries for Vintagestory.exe, the latest 3

SparrowOfRealms, Feb 16th at 7:44 AM

Reposting this here as the feverstone folks are having trouble replicating the cause, the only thing I ever did was turn off jaunt's stamina in it's config but everything else works fine, however whenever I tame a donkey from their mod I get a clientside crash with this log and the donkey in question's deleted from existence

Crash Report
14.2.2026 11:29:15 [Error] Exception: Object reference not set to an instance of an object.
at Vintagestory.GameContent.EntityBehaviorRideable.AfterInitialized(Boolean onFirstSpawn) in VSSurvivalMod\Entity\Behavior\BehaviorRideable.cs:line 217
at Jaunt.Behaviors.EntityBehaviorJauntRideable.AfterInitialized(Boolean onFirstSpawn) in /home/tiffany/dev/vintage/jaunt/Jaunt/Behaviors/EntityBehaviorJauntRideable.cs:line 146
at Vintagestory.API.Common.Entities.Entity.AfterInitialized(Boolean onFirstSpawn) in VintagestoryApi\Common\Entity\Entity.cs:line 673
at Vintagestory.Server.ServerMain.SpawnEntity_internal(EntityProperties type, Entity entity) in VintagestoryLib\Server\ServerMain.cs:line 2470
at Vintagestory.Server.ServerMain.SpawnEntity(Entity entity, EntityProperties type) in VintagestoryLib\Server\ServerMain.cs:line 2443
at Vintagestory.Server.ServerMain.SpawnEntity(Entity entity) in VintagestoryLib\Server\ServerMain.cs:line 2427
at PetAI.EntityBehaviorTameable.spawnTameVariant(Single dt) in E:\Workspace\vintage_story_mods\petai\src\Entity\Behavior\BehaviorTameable.cs:line 306
at PetAI.EntityBehaviorTameable.OnInteract(EntityAgent byEntity, ItemSlot itemslot, Vec3d hitPosition, EnumInteractMode mode, EnumHandling& handled) in E:\Workspace\vintage_story_mods\petai\src\Entity\Behavior\BehaviorTameable.cs:line 257
at PetAI.BehaviorConsiderHumanFoodForPetsToo.OnHeldInteractStart(ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel, Boolean firstEvent, EnumHandHandling& handHandling, EnumHandling& handling) in E:\Workspace\vintage_story_mods\petai\src\Item\BehaviorConsiderHumanFoodForPetsToo.cs:line 14
at Vintagestory.API.Common.CollectibleObject.OnHeldInteractStart(ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel, Boolean firstEvent, EnumHandHandling& handling) in VintagestoryApi\Common\Collectible\Collectible.cs:line 1366
at Vintagestory.Server.ServerSystemInventory.HandleHandInteraction(Packet_Client packet, ConnectedClient client) in VintagestoryLib\Server\Systems\Inventory.cs:line 258
at Vintagestory.Server.ServerMain.HandleClientPacket_mainthread(ReceivedClientPacket cpk) in VintagestoryLib\Server\ServerMainNetworking.cs:line 280
at Vintagestory.Server.ServerMain.ProcessMain() in VintagestoryLib\Server\ServerMain.cs:line 934
DeterminedBun, Feb 14th at 2:28 AM

When i leave the horse tethered to a block too long i notice it gets stuck and i have to restart my game, is it a problem with Jaunt or Equus Horses?

dinolord919, Jan 25th at 11:09 PM

As a reminder, version 2.2.0-rc.2 of Jaunt has a known problem where you will crash if you ride a mob from a mod that hasn't been updated for it into water. It will be fixed on the next stable release, but the current swimming mechanics are still being revised so that underwater mounts can be supported. I don't believe anyone's released versions that have these fixes on the db, but I have made the fixes for a number of mods during testing, so I suppose I'll figure out a place to upload those if I don't finish the next stable release soon.

Fixes for the bugged flute durability are present in version 2.2.0-rc.2 of Jaunt. They will be present in the next stable release as well.

Hyomoto, Jan 25th at 2:28 PM

It should probably be more prominent, but the changelog for the latest version literally says it will crash when entering water.  It's intended behavior even if it seems like it wouldn't be: the author made breaking changes to the mod but the people using it as a dependency didn't update their mods.  So the only options are to use an earlier version of jaunt, or to not use any mods that rely on one.

Sozzky, Jan 24th at 2:06 PM

Second the request for flute configuration, just let us summon the mount from wherever we want without the flute breaking.

Dimmestvariable, Jan 23rd at 9:18 AM

Also dealing with crashes as soon as a horse touches water.

Codyman765, Jan 21st at 7:20 AM

Is there anyway to change the range of the flute? Id love to just be able to summon my mount from any distance

 

KonaCoffeeDrgn, Jan 21st at 4:03 AM

Hey was trying to modify the values for jaunt.json however only some seem to be modifyable anymore. trying to add more stamina to horses do not seem to do anything: 

Here is an example with some extreme values you should feel:

"DefaultMaxStamina": 10000000.0,
"DefaultSprintFatigue": 0.005,
"DefaultSwimFatigue": 0.005,
"DefaultBaseFatigueRate": 0.005,
"DefaultStaminaRegenRate": 10000.0,

 

Origin_Alpha_43, Jan 21st at 2:51 AM

having a massive issue that locks me out of the game

this is happening while using Draconis and landed in water

Crash Report
System.Collections.Generic.KeyNotFoundException: The key tread was not found
at Vintagestory.API.Datastructures.FastSmallDictionary'2.get_Item(TKey key) in VintagestoryApi\Datastructures\Dictionary\FastSmallDictionary.cs:line 78
at Jaunt.Behaviors.EntityBehaviorJauntRideable.UpdateRidingState() in C:\Users\ryker\source\repos\jaunt\Jaunt\Behaviors\EntityBehaviorJauntRideable.cs:line 718
at Jaunt.Behaviors.EntityBehaviorJauntRideable.OnGameTick(Single dt) in C:\Users\ryker\source\repos\jaunt\Jaunt\Behaviors\EntityBehaviorJauntRideable.cs:line 1168
at Vintagestory.API.Common.Entities.Entity.OnGameTick(Single dt) in VintagestoryApi\Common\Entity\Entity.cs:line 1052
at Vintagestory.API.Common.EntityAgent.OnGameTick(Single dt) in VintagestoryApi\Common\Entity\EntityAgent.cs:line 669
at Vintagestory.Client.NoObf.ClientSystemEntities.OnGameTick(Single dt) in VintagestoryLib\Client\Systems\Entities.cs:line 105
at Vintagestory.Common.GameTickListener.OnTriggered(Int64 ellapsedMilliseconds) in VintagestoryLib\Common\Model\GameTickListener.cs:line 25
at Vintagestory.Common.EventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world) in VintagestoryLib\Common\EventManager.cs:line 102
at Vintagestory.Client.NoObf.ClientMain.MainRenderLoop(Single dt) in VintagestoryLib\Client\ClientMain.cs:line 859
at Vintagestory.Client.NoObf.ClientMain.MainGameLoop(Single deltaTime) in VintagestoryLib\Client\ClientMain.cs:line 751
at Vintagestory.Client.GuiScreenRunningGame.RenderToPrimary(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 172
at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 719
at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 663
at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 112
at OpenTK.Windowing.Desktop.GameWindow.Run()
at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 347
at Vintagestory.Client.ClientProgram .< >c_DisplayClass 10_0 .<. ctor>b_10 in VintagestoryLib\Client\ClientProgram.cs:line 131
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 95
VarianVarnum, Jan 19th at 5:15 PM

I'm having an identical error to Spectre53

Spectre53, Jan 17th at 11:02 PM (modified Jan 17th at 11:07 PM)

Latest update looks to have broken horses going into water. I've lost two horses now to a bug that crashes the client. Its trying to find 'tread' and can't.

Crash Report

at Vintagestory.API.Datastructures.FastSmallDictionary`2.get_Item(TKey key)
in VintagestoryApi\Datastructures\Dictionary\FastSmallDictionary.cs:line 78

at Jaunt.Behaviors.EntityBehaviorJauntRideable.UpdateRidingState()
in C:\Users\ryker\source\repos\jaunt\Jaunt\Behaviors\EntityBehaviorJauntRideable.cs:line 718

at Jaunt.Behaviors.EntityBehaviorJauntRideable.OnGameTick(Single dt)
in C:\Users\ryker\source\repos\jaunt\Jaunt\Behaviors\EntityBehaviorJauntRideable.cs:line 1168

Hyomoto, Jan 15th at 10:10 PM

I think it's fair to take the author's word for it that the mod is completely broken in the latest release.  None of the mods that use this have updated, so it seems like it would be unwise to do so.

Kalmorph, Jan 13th at 6:45 PM

The changelog of the latest version gave me the exact same impression that JustaKobold said:

If both Equus: Wild Horses and Elk Jaunt Integration haven't been updated yet, should I wait them to update before updating here?

JustaKobold, Jan 13th at 12:15 AM

im guessing that since this one is newly updated and i dont see any of its child mods updated i probably shouldnt update yet

Kena, Jan 12th at 9:43 PM

Added this as it was a dependency for another mod, and this mods description states it doesn't do anything useful on it's onw, but now all my flutes break after one use? Is this gonna be fixed? A lot of other comments are mentioning it too

FatherSarge, Jan 4th at 9:05 PM

Compat for the jaunt flute to go into the flute pouch added by quivers and shelths?

Valskalle, Dec 23rd 2025 at 6:55 AM

Thanks for the saddle break fix!

zackadiax24, Dec 11th 2025 at 9:59 PM

Any chance you could add a config to make the jaunt flute unbreakable?

SiiMeR, Nov 30th 2025 at 3:32 PM (modified Nov 30th 2025 at 3:46 PM)

Can the saddle break functionality be turned off?

EDIT: Sorry I misunderstood what that means, nvm

CounterFail, Nov 18th 2025 at 8:56 PM

Ive had a look and not seen anyone else mention this, does anyone else find that mounts turn way to quickly? i have to slightly tap A and D to not turn too fast, it isnt gamebreaking but it feels off, is this a bug or just how the mod is?

Ket, Nov 4th 2025 at 7:47 PM

Can you make the flute changes configurable?

blazer232, Nov 3rd 2025 at 2:32 PM

Looks like for whatever reason the flute has durability when using this mod. I didn't see it in the description, so I just figured it was a bug, would love for it to be fixed soon!

Marshy, Nov 2nd 2025 at 3:19 PM (modified Nov 2nd 2025 at 3:24 PM)

Just here to say I'd also like it if we could disable / configure the one-and-done bone flutes.

Ouk, Oct 16th 2025 at 9:17 AM (modified Oct 16th 2025 at 1:29 PM)

@diarko This is probably vanilla bug starts with version 1.21.2

After testing vanilla versions 1.21.0-1.21.5 I found out the problem starts with version 1.21.2:
When I press forward key and immediately sprint button, elk with snaffle wont run BUT by pressing forward, wait for about 1 sec and then press the sprint key it works
For me, this problem is more apparent when the toggle sprint setting is ON. Curb briddle is ok. 

VS version 1.21.1 with Jaunt works as intended, all later versions don't.

Edit:

https://github.com/anegostudios/VintageStory

-Issues/issues/7336

Ahrondus, Oct 14th 2025 at 12:26 AM

👀

Dropping some eyes here..

Peepin'..

 

Creepin'..

Zxynix, Oct 13th 2025 at 5:14 PM

Couldnt figure out why my flute breaks, so googling lead me here... Why is it breaking with this mod? Why is this a thing? How do I turn it off?

Diarko, Oct 9th 2025 at 5:26 AM

Yeah my other friends are having same issue where moving up and down on the gaits is very inconsistent and skips by two.

JujuBinks, Oct 8th 2025 at 10:53 AM

Hey, great mod!

I've got a weird bug. The hay bed doesn't show up on the tamed elk when stored on the back. I thought it was the Elk Jaunt Integration mod but even after uninstalling that mod it persisted.

Removing this mod fixes the issue completely. Anyone else seeing this as well?

Diarko, Oct 8th 2025 at 3:26 AM

Im having an issue where the gaits are moving up and down twice, which is most of the time but not all.

eerino, Oct 7th 2025 at 12:43 AM (modified Oct 7th 2025 at 12:44 AM)

MollyMaverick same here also unable to use bone flute. Just downloaded this today and was very dissapointed. I'm glad it isnt intentional!!

Chumber, Oct 1st 2025 at 12:59 AM

Having the same issue as Codemonkey. Only the global max stamina modifier seems to actually do anything, nothing else works to change the stamina usage, and setting it to false doesn't disable it. Also, please add an option to disable breaking of the bone flute. It's a jarring change that I couldn't figure out the origin of, and the jaunt flute doesn't seem to work.

MollyMaverick, Sep 27th 2025 at 8:52 PM

The jaunt flute does not seem to work at all for me. It never changes to the animal's name when trying to bind. Just says "flute bound to mountable group: Mountableanimal". It doesn't summon them anywhere. 

R0D96, Sep 26th 2025 at 4:44 AM

does the bone flute allow the horses to be summoned from very far away?

Codemonkey03, Sep 24th 2025 at 1:01 AM

I've attempted to edit the stamina values and failing to see any change doing so I set stamina to false but no matter what none of these changes seem to be taking.

Kara, Sep 23rd 2025 at 8:08 PM

Not sure if this is your mod doing this, for vanilla, but i was not seeing this error, until i added your mod into my server. FIgured i should at least say something.

Spoiler!
23.9.2025 15:06:52 [Server Warning] Entity attachable shape game:item/wearable/hooved/strawbed defined in Block game:bed-hay-h
ead-north not found or errored, was supposed to be at game:shapes/item/wearable/hooved/strawbed.json. Shape will be invisible.
Kara, Sep 22nd 2025 at 8:12 PM (modified Sep 22nd 2025 at 8:12 PM)

may we get a config to disable the flute's breaking after use? the player base is not happy about their flutes being suddenly breaking >.<

MedicalPouch, Aug 31st 2025 at 11:24 PM

@safwyl thanks boss! and thanks for the heads up!

animatiV, Aug 30th 2025 at 6:06 PM

Thank you :) And thank you also for working on the mod.

safwyl, Aug 30th 2025 at 6:00 PM (modified Aug 30th 2025 at 6:00 PM)

animatiV I do! But we just released a new version with a few more lang strings if you want to revise it before I add edit: Just saw your edit, will add this in my next release

MedicalPouch you should be able to set the jaunt flute to bind mode (tool modes with F) then right click the cart entity. But a word of caution, Freaky (Cartwright author) is going to be disallowing binding on the carts in a future update, he actualy asked me to add a disallowed bindings config for the flute lol

MedicalPouch, Aug 30th 2025 at 7:38 AM (modified Aug 30th 2025 at 8:03 AM)

Hey Boss ive seen folks talking about how the jaunt flute works with the carts mod for the time being. any clarification on how to bind it so it works with the cart?

 

animatiV, Aug 28th 2025 at 4:07 PM (modified Aug 30th 2025 at 5:14 PM)
pl.json

{
"debug-stamina-init": "[Jaunt] Inicjowanie zachowania wytrzymałości dla istoty {0}",
"debug-rideable-init": "[Jaunt] Inicjowanie zachowania umożliwiającego jazdę dla istoty {0}",

"ingame-error-too-wild": "To zwierzę jest zbyt dzikie by na nim jeździć",
"ingame-error-no-entitysel": "Istota nie została wybrana",
"ingame-error-disallowed-entity": "Nie można powiązać {0} z fletem, być może odpowie na inny instrument?",
"ingame-error-unownable-entity": "{0} nie można posiadać, a zatem nie można go powiązać z fletem.",
"discovery-bound-entity": "Powiązanie fletu dla grupy wierzchowców: {0}",

"infotext-stamina-state": "Wytrzymałość: {0:0.##}/{1:0.##}",
"infotext-stamina-sprint-fatigue": "Zużycie wytrzymałości w trakcie biegu: {0}",
"infotext-stamina-swim-fatigue": "Zużycie wytrzymałości w trakcie pływania: {0}",

"instrument-skill-bind": "Powiąż instrument",
"instrument-skill-play": "Zagraj na instrumencie",

"groupcode-unbound": "Nie powiązany",
"groupcode-ferus": "Dzikie konie",
"groupcode-wyvern": "Wiwerny",
"groupcode-mountableanimal": "Wapiti",

"instrument-descprepend-unbound": "Nie jest powiązany z żadną konkretną grupą istot.",
"instrument-descprepend-ferus": "Może zostać użyty by przywołać dzikie konie",
"instrument-descprepend-wyvern": "Może zostać użyty by przywołać wiwerny i smoki",
"instrument-descprepend-mountableanimal": "Może zostać użyty by przywołać wapiti",
"item-instrument-flute": "Flet podróżniczy"
}

(upd. for 2.1.0-rc.1)

I don't know if you accept translations, but I did one into Polish. 

You can add them in the next update :)

 
 

 

 

Sahlokhviir, Aug 27th 2025 at 9:40 PM

the mod will be updated to 1.21 right?

safwyl, Aug 22nd 2025 at 4:45 PM

thenobodysheep this is a vanilla bug, the game resyncs the entire attribute tree for players/entities if the number exceeds a certain quantity (10). this happens quite frequently with mods added, you can try this mod which should fix it: https://mods.vintagestory.at/show/mod/25755

thenobodysheep, Aug 21st 2025 at 9:12 PM

I've been using this mod for a minute and occasionally when I ride my elk.
I stop for no obvious clear reason, I'm trying to figure out why that's the case.

safwyl, Aug 7th 2025 at 7:47 PM

Alhef edit jaunt.json in ModConfig folder and set "EnableStamina": false

ElTioGaara, Aug 7th 2025 at 3:37 AM

I need to disable stamina, how can I disable it?

safwyl, Aug 6th 2025 at 11:05 PM

_Ale1ster try resetting your controls to the default, then set them back to what you want. I've seen this sometimes the control remappings break and the sprint key no longer works as intended. Let me know if that doesn't work

_Ale1ster, Aug 6th 2025 at 2:24 AM (modified Aug 10th 2025 at 5:43 PM)

Sweet mod. I've run into an issue while riding a horse from equus where I can trot when pushing the spring key, but I can't canter or gallop when continuing to push sprint. I had the mod working very well for quite a while and this cropped up seemingly randomly. All I have done to the game recently is downgrade combat overhaul to  work around a ctd issue from using any range weapons but I don't imagine that's it. I'm just curious if there are any ideas of how I could fix it, I have replaced the mods and all dependencies with freshly downloaded copies and deleted the configs for each to no effect.

 

Thanks safwyl. Trying this didn't work, but I spawned a new horse in creative and gave it a saddle and bit. it was able to canter and gallop just fine and then my horse was as well after I had previously tried multiple times to fix my horse before the creative route and basically gave up for a while. Just in case anyone else has this problem.

Flint_N_Steel, Aug 1st 2025 at 12:33 PM

Very cool mod and very well explained, thank you for your contributions to this nice little community we got going!

MagentaLizard, Jul 31st 2025 at 11:56 AM

Its eternity in there

safwyl, Jul 30th 2025 at 9:51 PM

AgentOfChaos more ram wont help unfortunately, the limit is hard coded in the game and has more to do with network latency than system performance

AgentOfChaos, Jul 30th 2025 at 8:50 PM

Thanks. Ill also see if more ram is gonna help.

 

safwyl, Jul 30th 2025 at 4:31 PM

AgentOfChaos this is due to an attribute sync issue with the base game, when enough attributes are changed the game resyncs all of them but this causes some things to break like mounted camera angle, current gait selection, etc. 

My current recommended workaround is this mod: https://mods.vintagestory.at/show/mod/25755

This can have some impact on users with high network latency in multiplayer but it's much better than without it imo, we use it on my server.

AgentOfChaos, Jul 30th 2025 at 7:15 AM

with the current version with both equuus and jaunt elk intergration the elk and horse both get frozen on a random block like every 2-4 seconds. idk why nothing else in the mod list changes anything related to mounts besides health and elk aggression.

 

andreslucero, Jul 17th 2025 at 3:46 AM

@safwyl you're quite right, sorry!

safwyl, Jul 16th 2025 at 9:44 PM

andreslucero make sure you're on the latest version of Equus this was fixed in 1.1.9

andreslucero, Jul 15th 2025 at 7:05 AM

I'm getting a strange error that results in my horse despawning alongside with everything it's carrying! It always happens when I'm riding and go into shallow water.

 

Crash Report
System.Collections.Generic.KeyNotFoundException: The key swimback was not found
at Vintagestory.API.Datastructures.FastSmallDictionary`2.get_Item(TKey key) in VintagestoryApi\Datastructures\Dictionary\FastSmallDictionary.cs:line 71
at Jaunt.Behaviors.EntityBehaviorJauntRideable.UpdateRidingState() in C:\Users\sstep\source\jaunt\Jaunt\Behaviors\EntityBehaviorJauntRideable.cs:line 401
at Jaunt.Behaviors.EntityBehaviorJauntRideable.OnGameTick(Single dt) in C:\Users\sstep\source\jaunt\Jaunt\Behaviors\EntityBehaviorJauntRideable.cs:line 680
at Vintagestory.API.Common.Entities.Entity.OnGameTick(Single dt) in VintagestoryApi\Common\Entity\Entity.cs:line 1106
at Vintagestory.API.Common.EntityAgent.OnGameTick(Single dt) in VintagestoryApi\Common\Entity\EntityAgent.cs:line 602
at Vintagestory.Client.NoObf.ClientSystemEntities.OnGameTick(Single dt) in VintagestoryLib\Client\Systems\Entities.cs:line 107
at Vintagestory.Common.GameTickListener.OnTriggered(Int64 ellapsedMilliseconds) in VintagestoryLib\Common\Model\GameTickListener.cs:line 31
at Vintagestory.Common.EventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world) in VintagestoryLib\Common\EventManager.cs:line 174
at Vintagestory.Client.NoObf.ClientMain.MainRenderLoop(Single dt) in VintagestoryLib\Client\ClientMain.cs:line 825
at Vintagestory.Client.GuiScreenRunningGame.RenderToPrimary(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 161
at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 695
at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 670
at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 88
at OpenTK.Windowing.Desktop.GameWindow.Run()
at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 334
at Vintagestory.Client.ClientProgram.<>c__DisplayClass10_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 130
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93
stormtrooper_34, Jul 5th 2025 at 8:55 AM

safwyl seems to be fine. Can't say I tested it thoroughly, though

safwyl, Jul 5th 2025 at 5:31 AM

stormtrooper_34 should be fixed in 1.1.6, let me know if you still experience issues

safwyl, Jul 5th 2025 at 5:05 AM

stormtrooper_34 thank you for this detailed bug report, working on a fix now. Looks like mount sounds weren't getting properly disposed when changing.

stormtrooper_34, Jul 4th 2025 at 1:57 PM

UPD: NOT THIS MOD'S FAULT, IT WAS CARTWRIGHTS CARAVAN. It messed up elk's sound
UPD2: No, problem persists. Without Cartwright's Caravan sounds of riding are back, but after some time (usually, mounted combat) all sounds are gone and it happends only on horse
After some more testing, it seems that aggressive combat with lots of manuvering and speed switching or getting attacked while riding causes that. I couldn't recreate bug in creative, but fully generated surivival world did the trick


It seems, jaunt crashes OpenAL and makes game completely mute

At first it produces them "properly", but with no actual sound played in game:

Crash Report
4.7.2025 16:23:49 [Notification] [jaunt] Now playing sound: game:sounds/creature/hooved/trot
4.7.2025 16:23:51 [Notification] [jaunt] Now playing sound: game:sounds/creature/hooved/trot
4.7.2025 16:23:52 [Notification] [jaunt] Now playing sound: game:sounds/creature/hooved/trot
4.7.2025 16:23:53 [Notification] [jaunt] Now playing sound: game:sounds/creature/hooved/trot
4.7.2025 16:23:53 [Notification] [jaunt] Now playing sound: game:sounds/creature/hooved/trot
4.7.2025 16:23:54 [Notification] [jaunt] Now playing sound: game:sounds/creature/hooved/trot
4.7.2025 16:23:55 [Notification] [jaunt] Now playing sound: game:sounds/creature/hooved/trot



But after some time OpenAL fails due to overloaded sound schedule and stops producing any sounds at all:

Crash Report
4.7.2025 16:29:04 [Notification] [jaunt] Now playing sound: game:sounds/creature/hooved/trot
4.7.2025 16:29:05 [Notification] [jaunt] Now playing sound: game:sounds/creature/hooved/trot
4.7.2025 16:29:06 [Notification] [jaunt] Now playing sound: game:sounds/creature/hooved/trot
4.7.2025 16:29:09 [Notification] Play sound game:sounds/environment/mediumsplash skipped because max concurrent sounds of 250 reached (1 more skipped)
4.7.2025 16:29:09 [Notification] [jaunt] Side: Server, Meta: walk
4.7.2025 16:29:09 [Notification] [jaunt] Now playing sound: game:sounds/creature/hooved/trot
4.7.2025 16:29:09 [Notification] [jaunt] Side: Client, Meta: walk
4.7.2025 16:29:11 [Notification] [jaunt] Side: Server, Meta: trot
4.7.2025 16:29:11 [Notification] [jaunt] Side: Client, Meta: trot
4.7.2025 16:29:11 [Error] Could not load sound game:sounds/creature/hooved/trot.ogg
4.7.2025 16:29:11 [Error] Exception: Unable to get sourceId
at Vintagestory.Client.LoadedSoundNative.createSoundSource() in VintagestoryLib\Client\ClientPlatform\ClientNative\LoadedSound.cs:line 332
4.7.2025 16:29:11 [Warning] OpenAL Error during construction of sound game:sounds/creature/hooved/trot.ogg: OutOfMemory


It may be some sort of incomatibility with other mods or something, but I have no clue what could cause it

CherryRook, Jun 26th 2025 at 4:34 AM

Is there a way to make gait controls use double press W/S ? I use normal sprint on foot but im kinda used to double pressing W and S from Mount&Blade: Bannerlord. Otherwhise cool mod, thank you a lot for this system ! :)

safwyl, Jun 25th 2025 at 6:24 PM

Jonizhere ah i found the issue, right now you have to check "Mouse click modifiers locked to Sneak/Sprint keys" in order for the remap to work. I'll see if I can fix that for the next release though

Jonizhere, Jun 24th 2025 at 11:59 PM

safwyl That's interesting! I've switched my sprint and sneak keys, but it didn't transfer while riding an elk.

It only worked when I've switched the keys back to their default settings.

safwyl, Jun 24th 2025 at 4:06 PM

Jonizhere at the moment it should respect rebinds for Shift/Ctrl and movement keys. But there's no way to split them from Seraph movement controls. 

What were you wanting to change exactly?

Jonizhere, Jun 24th 2025 at 4:38 AM

Is it possible to change controls? The option doesn't appear to pop up.

safwyl, Jun 23rd 2025 at 6:29 PM

Silverfang same here for now, I'm not currently modifying the vanilla jump behavior

Silverfang, Jun 22nd 2025 at 7:27 PM

How does jumping work with this? I know Feverstone Wilds' horses could not jump over fences due to some vanilla coding.

rhino1998, Jun 20th 2025 at 2:30 PM

Would it be possible to add stamina scaling by generation? So that higher generation animals can have higher max stamina/stamina regen?

WolfWarrior, Jun 8th 2025 at 9:14 AM

amazing! 😲.