"Ribbon" that the player can wrap around the game world

Hello everyone!

For the past month I’ve been working on a system by which a player can wrap the game world in a ribbon, rope, string, whatever you want to call it :rolleyes:

This project is somewhat similar to various “grappling hook” projects I’ve seen around, but is unique in that it has almost no limits on how the player can wrap around objects in the game world.
The below youtube link is a small, 5-minute demonstration video I recorded to show the main features of the ribbon.

In synopsis:

-The ribbon system creates RibbonPoint actors at the edges of objects using ray-casting and some FMath functions.
-All of the C++ code, minus a level blueprint that spawns the initial points, is contained in the RibbonPoint class.
-The system is designed so that each RibbonPoint handles calculations regarding the segment of ribbon connected it to the previous point.
-Each actor knows the RibbonPoints directly before and after it in the ribbon, like a LinkedList!
-Each actor knows how to check whether or not it should detach from an object and move to be in line with its neighbor points.
-This allows for the ribbon to be pulled, pushed, and twisted in any direction by game objects.

I still have a lot of work to do in polishing this, but the system has finally reached a quality where I’d love to see what you guys think!

If you have any questions on how it works, I’ll gladly answer them :smiley:

O man, brilliant work. I can see this turning into an excellent puzzle game.

Really cool! I think it would be cool to add some elastic property to the ribbon.