Run it
Copy the script and paste it into your executor.
Player = :().LocalPlayer
Mouse = Player:()
SelectionBox = .(, :())
SelectionBox.Color3 = .(, , )
arcHandles = .(, :())
moveHandles = .(, :())
arcHandles.Visible, moveHandles.Visible = ,
currentJoint =
mode =
(enabled)
module = Player.PlayerScripts:()
module
controls = (module):()
enabled controls:() controls:()
(name)
Player.Character
_, v (Player.Character:())
v:() (v.Part1 v.Part1.Name:():(name:()))
v
sg = .(, :())
main = .(, sg)
main.Size = .(, , , )
main.Position = .(, , , )
main.BackgroundColor3 = .(, , )
main.Active, main.Draggable = ,
(name, size, pos, color)
btn = .(, main)
btn.Size = size; btn.Position = pos; btn.BackgroundColor3 = color; btn.Text =
btn.BorderSizePixel =
btn.MouseButton1Click:(()
joint = (name)
joint
currentJoint = joint
SelectionBox.Adornee = joint.Part1
arcHandles.Adornee = joint.Part1
moveHandles.Adornee = joint.Part1
arcHandles.Visible = (mode == )
moveHandles.Visible = (mode == )
)
(, .(, , , ), .(, , , ), .(, , ))
(, .(, , , ), .(, , , ), .(, , ))
(, .(, , , ), .(, , , ), .(, , ))
(, .(, , , ), .(, , , ), .(, , ))
(, .(, , , ), .(, , , ), .(, , ))
(, .(, , , ), .(, , , ), .(, , ))
moveHandles.MouseButton1Down:(() () )
moveHandles.MouseButton1Up:(() () )
arcHandles.MouseButton1Down:(() () )
arcHandles.MouseButton1Up:(() () )
moveHandles.MouseDrag:((face, distance)
currentJoint
normal = .(face)
swappedNormal = .(normal.Z, normal.Y, normal.X)
currentJoint.C0 *= .(swappedNormal * (distance / ))
)
arcHandles.MouseDrag:((axis, angle)
currentJoint
axisVec = .(axis)
swappedAxis = .(axisVec.Z, axisVec.Y, axisVec.X)
currentJoint.C0 *= .(swappedAxis, angle)
)
modeBtn = .(, main)
modeBtn.Size = .(, , , ); modeBtn.Position = .(, , , )
modeBtn.Text =
modeBtn.MouseButton1Click:(()
mode = (mode == )
modeBtn.Text = .. mode:()
currentJoint
arcHandles.Visible = (mode == )
moveHandles.Visible = (mode == )
)
Rotate and Move your limbs

Universal