Godot Jolt Versions Save

Godot Jolt is a Godot extension that integrates the Jolt physics engine

v0.6.0-stable

9 months ago

This release supports Godot 4.1.

Changelog

These are the notable changes that have been made since 0.5.0-stable was released. You can also find a list of all the commits here.

Any breaking changes are denoted with ⚠️.

Changed

  • Changed the editor gizmo for JoltPinJoint3D.
  • Changed the editor gizmo for JoltHingeJoint3D.
  • Changed the editor gizmo for JoltSliderJoint3D.
  • Changed the editor gizmo for JoltConeTwistJoint3D.
  • Changed the editor gizmo for JoltGeneric6DOFJoint3D.

Added

  • Added support for HeightMapShape3D with non-power-of-two dimensions.
  • Added support for HeightMapShape3D with non-square dimensions.
  • Added support for HeightMapShape3D with no heights.

Fixed

  • Fixed issue where bodies would catch on internal edges of ConcavePolygonShape3D.

v0.6.0-rc1

9 months ago

This is the first release candidate for version 0.6.0, and assuming no major bugs/regressions are found is likely to become 0.6.0-stable.

This release supports Godot 4.1.

Changelog

These are the notable changes that have been made since 0.5.0-stable was released. You can also find a list of all the commits here.

Any breaking changes are denoted with ⚠️.

Changed

  • Changed the editor gizmo for JoltPinJoint3D.
  • Changed the editor gizmo for JoltHingeJoint3D.
  • Changed the editor gizmo for JoltSliderJoint3D.
  • Changed the editor gizmo for JoltConeTwistJoint3D.
  • Changed the editor gizmo for JoltGeneric6DOFJoint3D.

Added

  • Added support for HeightMapShape3D with non-power-of-two dimensions.
  • Added support for HeightMapShape3D with non-square dimensions.
  • Added support for HeightMapShape3D with no heights.

Fixed

  • Fixed issue where bodies would catch on internal edges of ConcavePolygonShape3D.

v0.5.0-stable

9 months ago

This release supports Godot 4.1.

Changelog

These are the notable changes that have been made since 0.4.1-stable was released. You can also find a list of all the commits here.

Any breaking changes are denoted with ⚠️.

Removed

  • ⚠️ Removed the ability to lock all six axes of a RigidBody3D. Consider freezing the body as static instead.

Added

  • Added substitutes for all the joint nodes, to better align with the interface that Jolt offers, which consist of JoltPinJoint3D, JoltHingeJoint3D, JoltSliderJoint3D, JoltConeTwistJoint3D and JoltGeneric6DOFJoint3D. These differ in the following ways:
    • You can enable/disable the limits on all joints.
    • You can enable/disable the joint itself using its enabled property.
    • You can fetch the magnitude of the force/torque that was last applied to keep the joint together, using the get_applied_force and get_applied_torque methods. These coupled with the enabled property allows for creating breakable joints.
    • You can increase the joint's solver iterations, to improve stability, using its solver_velocity_iterations and solver_position_iterations properties.
    • Springs use frequency and damping instead of stiffness and damping.
    • Soft limits are achieved with limit springs.
    • JoltConeTwistJoint3D can be configured with a motor.
    • Angular motor velocities are set in radians per second, but displayed in degrees per second.
    • Any motion parameters like bias, damping and relaxation are omitted.
    • Any angular motion parameters for the slider joint are omitted.

Fixed

  • Fixed issue where linear axis locks could be budged a bit if enough force was applied.
  • Fixed issue where CharacterBody3D and other kinematic bodies wouldn't respect locked axes.
  • Fixed issue where passing null to the result parameter (or omitting it entirely) of the body_test_motion method in PhysicsServer3D would cause a crash.
  • Fixed issue where the body_is_omitting_force_integration method in PhysicsServer3D would always return false.

v0.5.0-rc1

9 months ago

This is the first release candidate for version 0.5.0, and assuming no major bugs/regressions are found is likely to become 0.5.0-stable.

This release supports Godot 4.1.

Changelog

These are the notable changes that have been made since 0.4.1-stable was released. You can also find a list of all the commits here.

Any breaking changes are denoted with ⚠️.

Removed

  • ⚠️ Removed the ability to lock all six axes of a RigidBody3D. Consider freezing the body as static instead.

Added

  • Added substitutes for all the joint nodes, to better align with the interface that Jolt offers, which consist of JoltPinJoint3D, JoltHingeJoint3D, JoltSliderJoint3D, JoltConeTwistJoint3D and JoltGeneric6DOFJoint3D. These differ in the following ways:
    • You can enable/disable the limits on all joints.
    • You can enable/disable the joint itself using its enabled property.
    • You can fetch the magnitude of the force/torque that was last applied to keep the joint together, using the get_applied_force and get_applied_torque methods. These coupled with the enabled property allows for creating breakable joints.
    • You can increase the joint's solver iterations, to improve stability, using its solver_velocity_iterations and solver_position_iterations properties.
    • Springs use frequency and damping instead of stiffness and damping.
    • Soft limits are achieved with limit springs.
    • JoltConeTwistJoint3D can be configured with a motor.
    • Angular motor velocities are set in radians per second, but displayed in degrees per second.
    • Any motion parameters like bias, damping and relaxation are omitted.
    • Any angular motion parameters for the slider joint are omitted.

Fixed

  • Fixed issue where linear axis locks could be budged a bit if enough force was applied.
  • Fixed issue where CharacterBody3D and other kinematic bodies wouldn't respect locked axes.
  • Fixed issue where passing null to the result parameter (or omitting it entirely) of the body_test_motion method in PhysicsServer3D would cause a crash.
  • Fixed issue where the body_is_omitting_force_integration method in PhysicsServer3D would always return false.

v0.4.1-stable

10 months ago

This is a quick patch release to fix an issue with ConcavePolygonShape3D. Be sure to also read the release notes for 0.4.0-stable if you're upgrading from 0.3.0-stable.

This release supports Godot 4.1.

Changelog

These are the notable changes that have been made since 0.4.0-stable was released. You can also find a list of all the commits here.

Any breaking changes are denoted with ⚠️.

Fixed

  • Fixed issue where colliding with certain types of degenerate triangles in ConcavePolygonShape3D would cause the application to hang or emit a vast amount of errors.

v0.4.0-stable

10 months ago

This release supports Godot 4.1.

Changelog

These are the notable changes that have been made since 0.3.0-stable was released. You can also find a list of all the commits here.

Any breaking changes are denoted with ⚠️.

Changed

  • ⚠️ Changed the cast_motion method in PhysicsDirectSpaceState3D to return [1.0, 1.0] instead of [] when no collision was detected, to match Godot Physics.
  • ⚠️ Changed contact positions to be absolute global positions instead of relative global positions, to match the new behavior in Godot Physics.

Added

  • Added support for springs in Generic6DOFJoint3D.

Fixed

  • Fixed issue where angular surface velocities (like constant_angular_velocity on StaticBody3D) wouldn't be applied as expected if the imparted upon body was placed across the imparting body's center of mass.
  • Fixed issue where going from CENTER_OF_MASS_MODE_CUSTOM to CENTER_OF_MASS_MODE_AUTO wouldn't actually reset the body's center-of-mass.
  • Fixed issue where any usage of PhysicsServer3D, PhysicsDirectBodyState3D or PhysicsDirectSpaceState3D in C# scripts would trigger an exception.
  • Fixed issue where the recovery_as_collision parameter in the move_and_collide and test_move methods on bodies would always be true.
  • Fixed issue where the input_ray_pickable property on bodies and areas would always be true.

v0.4.0-rc1

10 months ago

This is the first release candidate for version 0.4.0, and assuming no major bugs/regressions are found is likely to become 0.4.0-stable.

This release supports Godot 4.1.

Changelog

These are the notable changes that have been made since 0.3.0-stable was released. You can also find a list of all the commits here.

Any breaking changes are denoted with ⚠️.

Changed

  • ⚠️ Changed the cast_motion method in PhysicsDirectSpaceState3D to return [1.0, 1.0] instead of [] when no collision was detected, to match Godot Physics.
  • ⚠️ Changed contact positions to be absolute global positions instead of relative global positions, to match the new behavior in Godot Physics.

Added

  • Added support for springs in Generic6DOFJoint3D.

Fixed

  • Fixed issue where angular surface velocities (like constant_angular_velocity on StaticBody3D) wouldn't be applied as expected if the imparted upon body was placed across the imparting body's center of mass.
  • Fixed issue where going from CENTER_OF_MASS_MODE_CUSTOM to CENTER_OF_MASS_MODE_AUTO wouldn't actually reset the body's center-of-mass.
  • Fixed issue where any usage of PhysicsServer3D, PhysicsDirectBodyState3D or PhysicsDirectSpaceState3D in C# scripts would trigger an exception.
  • Fixed issue where the recovery_as_collision parameter in the move_and_collide and test_move methods on bodies would always be true.
  • Fixed issue where the input_ray_pickable property on bodies and areas would always be true.

v0.3.0-stable

10 months ago

This release supports Godot 4.0.3.

Known major issues

  • Extension classes cause exception when used from C# (#270)
  • The move_and_collide parameter recovery_as_collision is always true (#337)

Changelog

These are the notable changes that have been made since 0.2.3-stable was released. You can also find a list of all the commits here.

Any breaking changes are denoted with ⚠️.

Changed

  • ⚠️ Changed collision layers and masks to behave as they do in Godot Physics, allowing for asymmetrical collisions, where the body whose mask does not contain the layer of the other body effectively gets infinite mass and inertia in the context of that collision.

Added

  • Added new project setting, "Use Shape Margins", which when disabled leads to all shape margins being ignored and instead set to 0, at a slight performance cost.
  • Added new project setting, "Areas Detect Static Bodies", to allow Area3D to detect overlaps with static bodies (including RigidBody3D using FREEZE_MODE_STATIC) at a potentially heavy performance/memory cost.

Fixed

  • Fixed issue where a RigidBody3D using FREEZE_MODE_KINEMATIC wouldn't have its _integrate_forces method called when monitoring contacts.
  • Fixed issue where scaling bodies/shapes with negative values would break them in various ways.
  • Fixed issue where CharacterBody3D platform velocities would always be zero.
  • Fixed issue where the velocity of kinematic colliders would always be zero in _physics_process.

v0.3.0-rc1

10 months ago

This is the first release candidate for version 0.3.0, and assuming no major/critical bugs or regressions are found is likely to become 0.3.0-stable.

This release supports Godot 4.0.3.

Known major issues

  • Extension classes cause exception when used from C# (#270)
  • The move_and_collide parameter recovery_as_collision is always true (#337)

Changelog

These are the notable changes that have been made since 0.2.3-stable was released. You can also find a list of all the commits here.

Any breaking changes are denoted with ⚠️.

Changed

  • ⚠️ Changed collision layers and masks to behave as they do in Godot Physics, allowing for asymmetrical collisions, where the body whose mask does not contain the layer of the other body effectively gets infinite mass and inertia in the context of that collision.

Added

  • Added new project setting, "Use Shape Margins", which when disabled leads to all shape margins being ignored and instead set to 0, at a slight performance cost.
  • Added new project setting, "Areas Detect Static Bodies", to allow Area3D to detect overlaps with static bodies (including RigidBody3D using FREEZE_MODE_STATIC) at a potentially heavy performance/memory cost.

Fixed

  • Fixed issue where a RigidBody3D using FREEZE_MODE_KINEMATIC wouldn't have its _integrate_forces method called when monitoring contacts.
  • Fixed issue where scaling bodies/shapes with negative values would break them in various ways.
  • Fixed issue where CharacterBody3D platform velocities would always be zero.
  • Fixed issue where the velocity of kinematic colliders would always be zero in _physics_process.

v0.2.3-stable

11 months ago

This release supports Godot 4.0.3.

Known major issues

  • Extension classes cause exception when used from C# (#270)
  • The move_and_collide parameter recovery_as_collision is always true (#337)

Changelog

These are the notable changes that have been made since 0.2.2-stable was released. You can also find a list of all the commits here.

Any breaking changes are denoted with ⚠️.

Fixed

  • Fixed issue where bodies would transform in unintuitive ways when attached to a rotated joint.
  • Fixed issue where bodies would sometimes transform in unintuitive ways when attached to a Generic6DOFJoint that used both linear and angular limits.
  • Fixed issue where setting the limits of a SliderJoint3D to the same value would make it free instead of fixed.
  • Fixed issue where you could still rotate a RigidBody3D slightly while using lock_rotation.
  • Fixed issue where friction would be applied more on one axis than the other.