A versatile addon for implementing performant and realistic physics-based ropes in 3D scenes for Godot 4 .NET projects.
Explore Wiki Docs »
Releases
·
Installation
·
FAQ
It is an implementation of Verlet Integration for physics ropes on Godot 4.4 .NET similar to the ones seen in Half-Life 2 or generally in Source engine.
This addon allows creation of dynamic and physics-based ropes, specifically offering following specialized nodes to fit different needs:
VerletRopeSimulated: Customizable and performant node for visual ropes that react to wind, gravity, and collisions with smooth, realistic behavior.VerletRopeRigidBody: Node elevating internal rigid bodies for simulation, useful for cases that need ropes to physically interact with and push other objects in the game world.- And corresponding utility
Jointnodes allowing you to connect ropes to custom locations or physical objects limiting their movement.
Tip
Don't forget to check out GitHub Wiki for additional details about addon, nodes properties, FAQs and guides!
- Generation of flat-plane rope meshes using tessellation with Catmull-Rom splines.
- Two variants of rope simulation: fully verlet-based (optionally affected by other bodies) and built-in physics-based (both affects and is affected by other bodies).
- Integrated joint nodes allowing to connect ropes to other nodes and physical bodies, constraining their movement.
- Many adjustable parameters: particle & segment counts; lengths & widths; custom simulation rates; wind & gravity forces; customizable damping; customizable visuals; and other fine-tuning settings specific to each rope variant.
VisibleOnScreenNotifier3Doptional support (integrated and automatic) for performance improvements when required.- Simulated advanced performance-friendly slide collisions for
VerletRopeSimulatedwith static modeO(n)and dynamic modeO(n*m)raycasts complexity (n- rope particles,m- affected dynamic bodies). - Editor-specific tooling to make ropes configuration easier.
- Different
[Tool]buttons for quick joint creation, rope resets, structure copying and quick configuration presets; - Internal meta-stamping for ropes duplication/copy-paste support;
- Custom editor-collisions for precise rope click-selectors.
- Different
Ensure you have Godot 4.4.1+ .NET and the .NET 8 SDK installed.
- Download the addon using latest link from the
Releasessection. - Extract archive by putting
addons/verlet_rope_4folder into your project'saddons/directory. - Build the binaries by running .NET build in open Godot project.
- Enable the plugin in the project settings.
Note
Checkout full installation guide if you need additional details or demo steps at this wiki page.
The following nodes are being added to the Create Child Node menu, try them out yourself and see their corresponding wiki pages by the following links, you can find specific properties descriptions and recommendations there:
VerletRopeSimulated->Node3D- First of the two rope nodes, provides access to fully verlet-simulated rope with the most settings available.VerletJointSimulated->Node- Corresponding simulated joint utility node.
VerletRopeRigidBody->Node3D- Second rope node, provides access to rigid-bodies-based rope, that allows it to properly interact with physics.VerletJointRigid->Node- Corresponding rigid joint utility node.
DistanceForceJoint->Node- Utility node providing access to internal distance joint, can be used without ropes in case you just need to join two bodies based on distance.VerletRopeMesh->MeshInstance3D- Utility node providing access to custom rope mesh generation, only works when particle positions are provided programmatically.
Note
All ropes and joints require quick reset after settings change, you can find a quick action button on the top of the inspector - Reset Rope/Joint (Apply Changes).
Warning
Unfortunately C# XML documentation is currently not supported by Godot, please refer to the wiki pages until corresponding issue gets resolved.
Code and documentation are released under the MIT License.
Big thanks to the creator of the addon base for Godot 3 - @2nafish117!
That's it, enjoy cool ropes! - Timofey Ivanov / tshmofen



