Mods / Jaunt: Entity Movement System
Authors: safwyl, sekelsta, Freakyuser396, Shintharo12
Side: Both
Created: Jun 8th at 4:11 AM
Last modified: Oct 7th at 1:01 PM
Downloads: 75260
Follow Unfollow 711
Latest release (for Vintage Story 1.21.2 - 1.21.4, potentially outdated):
jaunt_2.1.1.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.
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"
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.
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.
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:

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
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
}
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.
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
yawMultiplier- multiplicative 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 }
}
]
}
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
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 Identifier | For Game version | Downloads | Released | Changelog | Download | 1-click mod install* |
|---|---|---|---|---|---|---|---|
| 2.1.1 | jaunt | 21589 | Oct 7th 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 | 7312 | Sep 29th 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 | 18838 | Aug 29th at 9:25 PM | jaunt_2.1.0-rc.1.zip | 1-click install | ||
| |||||||
| 2.0.0 | jaunt | 11224 | Aug 2nd at 9:31 PM | jaunt_2.0.0.zip | 1-click install | ||
| |||||||
| 2.0.0-rc.8 | jaunt | 664 | Aug 1st at 1:15 AM | jaunt_2.0.0-rc.8.zip | 1-click install | ||
| |||||||
| 2.0.0-rc.7 | jaunt | 26 | Aug 1st at 12:53 AM | jaunt_2.0.0-rc.7.zip | 1-click install | ||
| |||||||
| 2.0.0-rc.6 | jaunt | 2719 | Jul 30th at 5:04 PM | jaunt_2.0.0-rc.6.zip | 1-click install | ||
| |||||||
| 1.1.7 | jaunt | 4770 | Jul 12th at 2:37 AM | jaunt_1.1.7.zip | 1-click install | ||
| |||||||
| 1.1.6 | jaunt | 3415 | Jul 5th at 5:30 AM | jaunt_1.1.6.zip | 1-click install | ||
| |||||||
| 1.1.5 | jaunt | 3454 | Jun 21st at 2:33 AM | jaunt_1.1.5.zip | 1-click install | ||
| |||||||
| 1.1.4 | jaunt | 537 | Jun 19th at 9:11 PM | jaunt_1.1.4.zip | 1-click install | ||
| |||||||
| 1.1.2 | jaunt | 32 | Jun 19th at 8:19 PM | jaunt_1.1.2.zip | 1-click install | ||
| |||||||
| 1.1.0 | jaunt | 263 | Jun 15th at 5:31 PM | jaunt_1.1.0.zip | 1-click install | ||
| |||||||
| 1.0.0-pre.7 | jaunt | 300 | Jun 8th at 6:18 PM | jaunt_1.0.0-pre.7.zip | 1-click install | ||
| |||||||
| 1.0.0-pre.6 | jaunt | 116 | Jun 8th at 4:24 AM | jaunt_1.0.0-pre.6.zip | 1-click install | ||
| |||||||
Can the saddle break functionality be turned off?
EDIT: Sorry I misunderstood what that means, nvm
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?
Can you make the flute changes configurable?
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!
Just here to say I'd also like it if we could disable / configure the one-and-done bone flutes.
@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
👀
Dropping some eyes here..
Peepin'..
Creepin'..
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?
Yeah my other friends are having same issue where moving up and down on the gaits is very inconsistent and skips by two.
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?
Im having an issue where the gaits are moving up and down twice, which is most of the time but not all.
MollyMaverick same here also unable to use bone flute. Just downloaded this today and was very dissapointed. I'm glad it isnt intentional!!
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.
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.
does the bone flute allow the horses to be summoned from very far away?
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.
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.
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 >.<
@safwyl thanks boss! and thanks for the heads up!
Thank you :) And thank you also for working on the mod.
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
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?
{
"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 :)
the mod will be updated to 1.21 right?
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://news.kalataka.ru/show/mod/25755
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.
Alhef edit jaunt.json in ModConfig folder and set "EnableStamina": false
I need to disable stamina, how can I disable it?
_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
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.
Very cool mod and very well explained, thank you for your contributions to this nice little community we got going!
Its eternity in there
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
Thanks. Ill also see if more ram is gonna help.
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://news.kalataka.ru/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.
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.
@safwyl you're quite right, sorry!
andreslucero make sure you're on the latest version of Equus this was fixed in 1.1.9
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.
System.Collections.Generic.KeyNotFoundException: The key swimback was not foundat 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
safwyl seems to be fine. Can't say I tested it thoroughly, though
stormtrooper_34 should be fixed in 1.1.6, let me know if you still experience issues
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.
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:
4.7.2025 16:23:49 [Notification] [jaunt] Now playing sound: game:sounds/creature/hooved/trot4.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:
4.7.2025 16:29:04 [Notification] [jaunt] Now playing sound: game:sounds/creature/hooved/trot4.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
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 ! :)
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
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.
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?
Is it possible to change controls? The option doesn't appear to pop up.
Silverfang same here for now, I'm not currently modifying the vanilla jump behavior
How does jumping work with this? I know Feverstone Wilds' horses could not jump over fences due to some vanilla coding.
Would it be possible to add stamina scaling by generation? So that higher generation animals can have higher max stamina/stamina regen?
amazing! 😲.