Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
player = Players.LocalPlayer
cam = .CurrentCamera
MAX_SIZE =
ADJUST_STEP =
syncedLength =
hoveredPart
selectedPart
ropeStack = {}
linkMode =
firstObject
firstHighlight
()
char = player.Character
char
char:()
gui = .()
gui.Parent = player.PlayerGui
gui.ResetOnSpawn =
toggleBtn = .(, gui)
toggleBtn.Size = .(,)
toggleBtn.Position = .(,)
toggleBtn.Text =
toggleBtn.TextScaled =
toggleBtn.BackgroundColor3 = .(,,)
toggleBtn.TextColor3 = .(,,)
toggleBtn.BorderSizePixel =
frame = .(, gui)
frame.Size = .(,)
frame.Position = .(,)
frame.BackgroundColor3 = .(,,)
frame.BorderSizePixel =
frame.Visible =
dragging, dragStart, startPos
frame.InputBegan:((i)
i.UserInputType == .UserInputType.MouseButton1
dragging =
dragStart = i.Position
startPos = frame.Position
i.Changed:(()
i.UserInputState == .UserInputState.End
dragging =
)
)
frame.InputChanged:((i)
dragging i.UserInputType == .UserInputType.MouseMovement
d = i.Position - dragStart
frame.Position = .(
startPos.X.Scale, startPos.X.Offset + d.X,
startPos.Y.Scale, startPos.Y.Offset + d.Y
)
)
(t,y)
b = .(, frame)
b.Size = .(,)
b.Position = .(,y)
b.Text = t
b.TextScaled =
b.BackgroundColor3 = .(,,)
b.TextColor3 = .(,,)
b
btnSelect = (,)
btnRope = (,)
btnCut = (,)
btnObj = (,)
btnPlus = (,)
btnMinus = (,)
highlight = .(, gui)
highlight.FillColor = .(,,)
highlight.OutlineColor = highlight.FillColor
highlight.FillTransparency =
(p)
p p:()
p:(player.Character)
p.Anchored
p.Size.Magnitude > MAX_SIZE
RunService.RenderStepped:(()
ray = cam:(cam.ViewportSize.X/, cam.ViewportSize.Y/)
params = RaycastParams.()
params.FilterDescendantsInstances = {player.Character}
params.FilterType = .RaycastFilterType.Blacklist
r = :(ray.Origin, ray.Direction*, params)
r (r.Instance)
hoveredPart = r.Instance
highlight.Adornee = hoveredPart
highlight.Enabled =
hoveredPart =
highlight.Enabled =
)
btnSelect.MouseButton1Click:(()
hoveredPart
linkMode ==
selectedPart = hoveredPart
firstObject
firstObject = hoveredPart
firstHighlight = .(, gui)
firstHighlight.Adornee = firstObject
firstHighlight.FillColor = .(,,)
firstHighlight.OutlineColor = firstHighlight.FillColor
a1 = .(, firstObject)
a2 = .(, hoveredPart)
rope = .()
rope.Attachment0 = a1
rope.Attachment1 = a2
rope.Length = syncedLength
rope.Visible =
rope.Parent = firstObject
.(ropeStack,{rope=rope,att1=a1,att2=a2})
firstHighlight:()
firstHighlight =
firstObject =
linkMode =
)
btnRope.MouseButton1Click:(()
hrp = ()
hrp selectedPart
a1 = .(, hrp)
a2 = .(, selectedPart)
rope = .()
rope.Attachment0 = a1
rope.Attachment1 = a2
rope.Length = syncedLength
rope.Visible =
rope.Parent = hrp
.(ropeStack,{rope=rope,att1=a1,att2=a2})
)
btnCut.MouseButton1Click:(()
last = .(ropeStack)
last
last.rope:()
last.att1:()
last.att2:()
)
btnObj.MouseButton1Click:(()
linkMode =
firstObject =
firstHighlight
firstHighlight:()
firstHighlight =
)
()
_,r (ropeStack)
r.rope.Length = syncedLength
btnPlus.MouseButton1Click:(()
syncedLength += ADJUST_STEP
()
)
btnMinus.MouseButton1Click:(()
syncedLength = .(, syncedLength - ADJUST_STEP)
()
)
toggleBtn.MouseButton1Click:(()
frame.Visible = frame.Visible
)This is a script that allows you to attach ropes to yourself or objects (sometimes visual).

Universal