Hello,
Apologies for the late reply, I've only now gotten back to this.
I still cant seem to stop the ropes from spazzing out. What value should I give the delta, grav, and fric to do it? I've done a repeat(x)verletSystem.Simulate(1) with x being 3000 and even then they arent still when the game eventually loads.
Also something I noticed: when the game starts, the ropes will be fully vertical on the first frame, and then the other end will snap to the position assigned to it. This causes the spazzing to be way worse than it should be. I fixed this by adding a function that puts the rope segments linearly between the start point and the end point, here's the code if you wanna add it to the implementation:
/// @function SetRopePointsPosition();
/// @description Sets the points to be between the first and last point, instead of being straight down. Reduces initial spazzing.
SetRopePointsPosition = function() {
var first = GetPointByKeyword(VI_POINT_INDEX.FIRST).position.current;
var last = GetPointByKeyword(VI_POINT_INDEX.LAST).position.current;
var dir = point_direction(first.x, first.y, last.x, last.y);
var segment = self.length / (pointAmount - 1);
var len_x = lengthdir_x(segment, dir);
var len_y = lengthdir_y(segment, dir);
for (var i = 0; i < pointAmount; i++) {
pointList[| i].position.current.x = first.x + len_x * i;
pointList[| i].position.current.y = first.y + len_y * i;
pointList[| i].position.previous.x = pointList[| i].position.current.x;
pointList[| i].position.previous.y = pointList[| i].position.current.y;
}
}