Run it
Copy the script and paste it into your executor.
local Player = game.Players.LocalPlayer
local Mouse = Player:GetMouse()
local Character = Player.Character
local RS = game:GetService("RunService")
local Tool = Instance.new("Tool", Player.Backpack)
Tool.Name="Grab"
local Handle = Instance.new(, Tool)
Handle.Size=.zero
Handle.CanCollide=
Handle.Transparency=
Handle.Name=
Current =
A,B,C,D=,,,
(P0,P1)
A0,A1 = .(,P0), .(,P1)
AL, AO = .(, P0), .(,P0)
AL.Attachment0 = A0
AL.Attachment1 = A1
AL.Responsiveness=.huge
AL.MaxForce=.huge
AL.MaxVelocity=.huge
AO.Attachment0 = A0
AO.Attachment1 = A1
AO.Responsiveness=.huge
AO.MaxTorque=.huge
AO.MaxAngularVelocity=.huge
A,B,C,D = A0, A1, AL, AO
Current = P0
()
Tool.Parent == Character
(A B C D) ~=
A:()
B:()
C:()
D:()
A,B,C,D=,,,
Current=
Target = Mouse.Target
Target.Anchored == Target:()
(Target, Handle)
Target.CanCollide =
()
Tool.Parent == Character
(A B C D Current) ~=
Current.CanCollide=
Current.Velocity = Handle.Velocity
Current.RotVelocity= Handle.RotVelocity
A:()
B:()
C:()
D:()
A,B,C,D=,,,
Current=
IsOwned = .(, .Terrain)
IsOwned.Color3=.(,,)
IsOwned.LineThickness=
RS.Heartbeat:(()
sine = .()
Current ~=
Current.ReceiveAge ==
IsOwned.Adornee = Current
Current.Velocity = .(- + .pi * .(sine*), + .pi * .(sine*), + .pi * .(sine*))
Current.RotVelocity = .( + .pi / * .(sine*), + .pi / * .(sine*), + .pi / * .(sine*))
IsOwned.Adornee =
IsOwned.Adornee =
)
Mouse.Button1Down:(Grab)
Mouse.Button1Up:(Drop)You can grab unanchored parts

Universal