local function a(b, c) local d = getfenv(c) local e = setmetatable( {}, {__index = function(self, f) if f == "script" then return b else return d[f] end end} ) setfenv(c, e) return c end local g = {} local h = Instance.new("Model", game:GetService("Lighting")) local i = Instance.new("Tool") local j = Instance.new("Part") local k = Instance.new("Script") local l = Instance.new("LocalScript") local m = sethiddenproperty or set_hidden_property i.Name = "Telekinesis" i.Parent = h i.Grip = CFrame.new(0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0) i.GripForward = Vector3.new(-0, -1, -0) i.GripRight = Vector3.new(0, 0, 1) i.GripUp = Vector3.new(1, 0, 0) j.Name = "Handle" j.Parent = i j.CFrame = CFrame.new(-17.2635937, 15.4915619, 46, 0, 1, 0, 1, 0, 0, 0, 0, -1) j.Orientation = Vector3.new(0, 180, 90) j.Position = Vector3.new(-17.2635937, 15.4915619, 46) j.Rotation = Vector3.new(-180, 0, -90) j.Color = Color3.new(0.0666667, 0.0666667, 0.0666667) j.Transparency = 1 j.Size = Vector3.new(1, 1.20000005, 1) j.BottomSurface = Enum.SurfaceType.Weld j.BrickColor = BrickColor.new("Really black") j.Material = Enum.Material.Metal j.TopSurface = Enum.SurfaceType.Smooth j.brickColor = BrickColor.new("Really black") k.Name = "LineConnect" k.Parent = i table.insert( g, a( k, function() wait() local n = script.Part2 local o = script.Part1.Value local p = script.Part2.Value local q = script.Par.Value local color = script.Color local r = Instance.new("Part") r.TopSurface = 0 r.BottomSurface = 0 r.Reflectance = .5 r.Name = "Laser" r.Locked = true r.CanCollide = false r.Anchored = true r.formFactor = 0 r.Size = Vector3.new(1, 1, 1) local s = Instance.new("BlockMesh") s.Parent = r while true do if n.Value == nil then break end if o == nil or p == nil or q == nil then break end if o.Parent == nil or p.Parent == nil then break end if q.Parent == nil then break end local t = CFrame.new(o.Position, p.Position) local dist = (o.Position - p.Position).magnitude r.Parent = q r.BrickColor = color.Value.BrickColor r.Reflectance = color.Value.Reflectance r.Transparency = color.Value.Transparency r.CFrame = CFrame.new(o.Position + t.lookVector * dist / 2) r.CFrame = CFrame.new(r.Position, p.Position) s.Scale = Vector3.new(.25, .25, dist) wait() end r:remove() script:remove() end ) ) k.Disabled = true l.Name = "MainScript" l.Parent = i table.insert( g, a( l, function() wait() tool = script.Parent lineconnect = tool.LineConnect object = nil mousedown = false found = false BP = Instance.new("BodyPosition") BP.maxForce = Vector3.new(math.huge * math.huge, math.huge * math.huge, math.huge * math.huge) BP.P = BP.P * 1.1 dist = nil point = Instance.new("Part") point.Locked = true point.Anchored = true point.formFactor = 0 point.Shape = 0 point.BrickColor = BrickColor.Black() point.Size = Vector3.new(1, 1, 1) point.CanCollide = false local s = Instance.new("SpecialMesh") s.MeshType = "Sphere" s.Scale = Vector3.new(.7, .7, .7) s.Parent = point handle = tool.Handle front = tool.Handle color = tool.Handle objval = nil local u = false local v = BP:clone() v.maxForce = Vector3.new(30000, 30000, 30000) function LineConnect(o, p, q) local w = Instance.new("ObjectValue") w.Value = o w.Name = "Part1" local x = Instance.new("ObjectValue") x.Value = p x.Name = "Part2" local y = Instance.new("ObjectValue") y.Value = q y.Name = "Par" local z = Instance.new("ObjectValue") z.Value = color z.Name = "Color" local A = lineconnect:clone() A.Disabled = false w.Parent = A x.Parent = A y.Parent = A z.Parent = A A.Parent = workspace if p == object then objval = x end end function onButton1Down(B) if mousedown == true then return end mousedown = true coroutine.resume( coroutine.create( function() local C = point:clone() C.Parent = tool LineConnect(front, C, workspace) while mousedown == true do C.Parent = tool if object == nil then if B.Target == nil then local t = CFrame.new(front.Position, B.Hit.p) C.CFrame = CFrame.new(front.Position + t.lookVector * 1000) else C.CFrame = CFrame.new(B.Hit.p) end else LineConnect(front, object, workspace) break end wait() end C:remove() end ) ) while mousedown == true do if B.Target ~= nil then local D = B.Target if D.Anchored == false then object = D dist = (object.Position - front.Position).magnitude break end end wait() end while mousedown == true do if object.Parent == nil then break end local t = CFrame.new(front.Position, B.Hit.p) BP.Parent = object BP.position = front.Position + t.lookVector * dist wait() end BP:remove() object = nil objval.Value = nil end function onKeyDown(E, B) local E = E:lower() local F = false if E == "q" then if dist >= 5 then dist = dist - 10 end end if E == "r" then if object == nil then return end for G, H in pairs(object:children()) do if H.className == "BodyGyro" then return nil end end BG = Instance.new("BodyGyro") BG.maxTorque = Vector3.new(math.huge, math.huge, math.huge) BG.cframe = CFrame.new(object.CFrame.p) BG.Parent = object repeat wait() until object.CFrame == CFrame.new(object.CFrame.p) BG.Parent = nil if object == nil then return end for G, H in pairs(object:children()) do if H.className == "BodyGyro" then H.Parent = nil end end object.Velocity = Vector3.new(0, 0, 0) object.RotVelocity = Vector3.new(0, 0, 0) object.Orientation = Vector3.new(0, 0, 0) end if E == "e" then dist = dist + 10 end if E == "t" then if dist ~= 10 then dist = 10 end end if E == "y" then if dist ~= 200 then dist = 200 end end if E == "=" then BP.P = BP.P * 1.5 end if E == "-" then BP.P = BP.P * 0.5 end end function onEquipped(B) keymouse = B local I = tool.Parent human = I.Humanoid human.Changed:connect( function() if human.Health == 0 then mousedown = false BP:remove() point:remove() tool:remove() end end ) B.Button1Down:connect( function() onButton1Down(B) end ) B.Button1Up:connect( function() mousedown = false end ) B.KeyDown:connect( function(E) onKeyDown(E, B) end ) B.Icon = "rbxasset://textures\\GunCursor.png" end tool.Equipped:connect(onEquipped) end ) ) for J, H in pairs(h:GetChildren()) do H.Parent = game:GetService("Players").LocalPlayer.Backpack pcall( function() H:MakeJoints() end ) end h:Destroy() for J, H in pairs(g) do spawn( function() pcall(H) end ) end