Run it
Copy the script and paste it into your executor.
().telekinesisUIDestroy
().()
ts = :()
txts = :()
cas = :()
uis = :()
sgui = .()
isMobile = uis.TouchEnabled uis.KeyboardEnabled
font = .Font.IndieFlower
sgui.IgnoreGuiInset =
sgui.Name =
huifunc = gethui get_hidden_gui
huifunc
sgui.Parent = ()
sgui.Parent = .CoreGui
localplr = .Players.LocalPlayer
mouse = localplr:()
dist =
hoverblock =
um =
notouch =
nocollide =
showblockpos =
sbnm =
pbr =
(classname,properties)
element = .(classname)
i,v (properties)
element[i] = v
element
mainframe = (,{
Size = .(,,,),
Position = .(,,,),
AnchorPoint = .(,),
BackgroundColor3 = .(,,),
BorderColor3 = .(,,),
BorderSizePixel = ,
Parent = sgui
})
scrollingmainframe = (,{
Size = .(,,,),
Position = .(,,,),
AnchorPoint = .(,),
BackgroundColor3 = .(,,),
BorderColor3 = .(,,),
BorderSizePixel = ,
ScrollingDirection = .ScrollingDirection.Y,
CanvasSize = .(,,,),
Parent = mainframe
})
(,{
AspectRatio = ,
Parent = mainframe
})
openclosearrow = (,{
Size = .(,,,),
Position = .(,-,,),
AnchorPoint = .(,),
TextScaled = ,
Font = font,
Text = ,
BackgroundColor3 = .(,,),
TextColor3 = .(,,),
BorderColor3 = .(,,),
BorderSizePixel = ,
Parent = mainframe
})
opened =
openclosearrow.MouseButton1Click:(()
opened = opened
positioning
opened
positioning = .(,)
openclosearrow.Text =
positioning = .(,)
openclosearrow.Text =
tween = ts:(mainframe,TweenInfo.(,.EasingStyle.Exponential,.EasingDirection.Out,,,),{AnchorPoint = positioning})
tween:()
)
(,{
Size = .(,,,),
Position = .(,,,),
TextScaled = ,
Font = font,
Text = ,
BackgroundColor3 = .(,,),
TextColor3 = .(,,),
BorderColor3 = .(,,),
BorderSizePixel = ,
Parent = mainframe
})
(,{
Size = .(,,,),
Position = .(,,,),
TextScaled = ,
Font = font,
Text = ,
BackgroundColor3 = .(,,),
TextColor3 = .(,,),
BorderColor3 = .(,,),
BorderSizePixel = ,
Parent = mainframe
})
dragging = {}
(fpos,spos,pos,frame,bounds,ar,dragx)
finalpos = .(
frame.Position.X.Scale,
(dragx spos.X.Offset-(fpos.X.Offset-pos.X)) frame.Position.X.Offset,
frame.Position.Y.Scale,
spos.Y.Offset-(fpos.Y.Offset-pos.Y)
)
frame.Position = finalpos
drag = (frame,bounds,chf,dragx)
frames = {}
frame:()
i,v (frame:())
chf ~= (v:() v:())
.(frames,v)
chf
.(frames,v)
.(frames,frame)
i,frame (frames)
frame.Active =
w,h = frame.AbsoluteSize.X,frame.AbsoluteSize.Y
ar = w/h
frame.InputBegan:((input)
(input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch) dragging[input]
dragging[input] = frame
firstpos = .(,mouse.X,,mouse.Y)
startpos = frame.Position
move1 = uis.TouchMoved:((input2)
input == input2
(firstpos,startpos,input2.Position,frame,bounds ,ar,dragx)
)
move2 = uis.InputChanged:((input2)
input2.UserInputType == .UserInputType.MouseMovement
(firstpos,startpos,input2.Position,frame,bounds ,ar,dragx)
)
.() dragging[input] ==
move1:()
move2:()
)
uis.InputEnded:((input)
dragging[input] =
)
uis.InputBegan:((input)
dragging[input] =
)
(mainframe)
kbselectfunc = ()
(inputs)
inputstr =
(inputs) ~=
inputs = {inputs}
i,input (inputs)
input.Name input.Name ~=
inputstr = inputstr..input.Name
input.KeyCode
inputstr = inputstr..input.KeyCode.Name
input.UserInputType
inputstr = inputstr..input.UserInputType.Name
i ~= #inputs
inputstr = inputstr..
inputstr
keybinds = {}
keybindindex =
mobilekeybinds = {}
helddown = {}
(keycode)
helddown[keycode] =
(.KeyCode.LeftControl)
(.KeyCode.LeftShift)
(.KeyCode.LeftAlt)
(.KeyCode.RightControl)
(.KeyCode.RightShift)
(.KeyCode.RightAlt)
(txt)
params = .()
params.Text = txt
params.Font = Font.(font)
params.Size =
params.Width =
txts:(params)
buttonsize = .(,,,)
buttonspacing =
index = -
(element)
index +=
yamount = .(index/) * buttonsize.Y.Scale + (.(index/)*buttonspacing) + buttonspacing
index% ==
element.AnchorPoint = .(,)
element.Position = .(,,yamount,)
element.AnchorPoint = .(,)
element.Position = .(,-,yamount,)
(text,keybind,onpressed,mobilekbbutton)
keybindindex +=
mobilekeybindframe
mobilekeybindbutton
currentkeybindindex = keybindindex
keybindframe = (,{
Size = buttonsize,
BackgroundColor3 = .(,,),
BorderColor3 = .(,,),
BorderSizePixel = ,
Parent = scrollingmainframe
})
(isMobile mobilekbbutton) isMobile
(,{
Size = .(,,,),
Position = .(,,,),
TextScaled = ,
Font = font,
Text = text,
BackgroundColor3 = .(,,),
TextColor3 = .(,,),
BorderColor3 = .(,,),
BorderSizePixel = ,
Parent = keybindframe
})
mobiletoggle =
()
(isMobile mobilekbbutton ..text..) (isMobile text....((mobiletoggle ) )) (..(keybind)..)
changekbbutton = (,{
Size = (isMobile .(,,,)) (.(,,,)),
Position = (isMobile .(,,,)) (.(,,,)),
TextScaled = ,
Font = font,
Text = (),
BackgroundColor3 = .(,,),
TextColor3 = .(,,),
BorderColor3 = .(,,),
BorderSizePixel = ,
Parent = keybindframe
})
changekbbutton.MouseButton1Click:(()
isMobile mobilekbbutton
mobiletoggle = mobiletoggle
mobilekeybinds[currentkeybindindex].bool = mobiletoggle
changekbbutton.Text = text....((mobiletoggle ) )
pass = (text)
pass
deselected =
kbselectfunc = (btext)
deselected =
changekbbutton.Text = ()
mobilekeybindbutton.Interactable ==
mobilekeybindbutton.Interactable =
changekbbutton.Text ==
changekbbutton.Text = ()
changekbbutton.Text = (isMobile )
isMobile
mobilekeybindbutton.Interactable =
good =
input, processed = uis.InputBegan:()
processed helddown[input.KeyCode] ==
keybind = {}
i,v (helddown)
v
.(keybind,i)
input.KeyCode input.KeyCode.Name ~=
.(keybind,input.KeyCode)
.(keybind,input.UserInputType)
changekbbutton.Text = ()
good =
good ==
keybinds[currentkeybindindex] = {
keybind = keybind,
OnPressed = onpressed
}
)
isMobile mobilekbbutton
txtb = (text)
mobilekeybindframe = (,{
Size = .(,txtb.X+,,),
BackgroundColor3 = .(,,),
BorderColor3 = .(,,),
BorderSizePixel = ,
Parent = sgui
})
(mobilekeybindframe,,,)
mobilekeybindbutton = (,{
Size = .(,,,),
Position = .(,,,),
TextSize = ,
Font = font,
Text = text,
BackgroundColor3 = .(,,),
TextColor3 = .(,,),
BorderColor3 = .(,,),
BorderSizePixel = ,
Parent = mobilekeybindframe
})
mobilekeybindbutton.MouseButton1Click:(()
()
)
keybinds[currentkeybindindex] = {
keybind = keybind,
OnPressed = onpressed
}
isMobile mobilekbbutton
mobilekeybinds[currentkeybindindex] = {
bool = mobiletoggle,
OnPressed = onpressed
}
(keybindframe)
keybindframe, mobilekeybindframe
(keybinds,input)
(keybinds) ==
correct =
i,v (keybinds)
v ~= input.KeyCode v ~= input.UserInputType helddown[v]
correct =
correct
input.KeyCode == keybinds input.UserInputType == keybinds
oninput = uis.InputBegan:((input,gp)
gp ( isMobile mouse.Target mouse.Target:())
i,v (keybinds)
(v.keybind,input)
v.()
input.KeyCode
i,v (helddown)
i == input.KeyCode
helddown[i] =
isMobile (input.UserInputType == .UserInputType.Touch input.UserInputType == .UserInputType.MouseButton1)
i,v (mobilekeybinds)
v.bool
v.()
)
oninputend = uis.InputEnded:((input,gp)
gp
input.KeyCode
i,v (helddown)
i == input.KeyCode
helddown[i] =
)
(text,bool,ontoggle)
togglebutton = (,{
Size = buttonsize,
Position = .(,,,),
TextScaled = ,
Font = font,
Text = text....((bool ) ),
BackgroundColor3 = .(,,),
TextColor3 = .(,,),
BorderColor3 = .(,,),
BorderSizePixel = ,
Parent = scrollingmainframe
})
togglebutton.MouseButton1Click:(()
bool = bool
togglebutton.Text = text....((bool ) )
(bool)
)
(bool)
(togglebutton)
togglebutton
(text,onpressed)
button = (,{
Size = buttonsize,
Position = .(,,,),
TextScaled = ,
Font = font,
Text = text,
BackgroundColor3 = .(,,),
TextColor3 = .(,,),
BorderColor3 = .(,,),
BorderSizePixel = ,
Parent = scrollingmainframe
})
button.MouseButton1Click:(onpressed)
(button)
button
(text,oninput)
textbox = (,{
Size = buttonsize,
Position = .(,,,),
TextScaled = ,
Font = font,
PlaceholderText = text,
Text = ,
BackgroundColor3 = .(,,),
TextColor3 = .(,,),
BorderColor3 = .(,,),
BorderSizePixel = ,
Parent = scrollingmainframe
})
textbox.FocusLost:(()
(textbox.Text)
)
(textbox)
textbox
lastsuccessfulcfr = .()
(customdist)
customdist = customdist dist
offset
localplr.Character localplr.Character:()
plrpos = localplr.Character.Head.Position
topos = plrpos
um
topos = mouse.Hit.Position
offset = (topos - (.CurrentCamera.CFrame.Position - (.CurrentCamera.CFrame.LookVector))).Unit * customdist
lastsuccessfulcfr = (.(offset) * .CurrentCamera.CFrame.Rotation) + plrpos
lastsuccessfulcfr, offset
lastsuccessfulcfr2 = .()
()
localplr.Character localplr.Character:()
lastsuccessfulcfr2 = localplr.Character.HumanoidRootPart.CFrame
lastsuccessfulcfr2
isnetworkowner = isnetworkowner (part)
part.Anchored ==
part:()
part.ReceiveAge ==
(block)
block (block) == block:()
.(,,)
((block) .(,,)) .(,,)
bodygyro = .()
bodygyro.CFrame = .()
bodygyro.MaxTorque = .(.huge,.huge,.huge)
bodyposition = .()
bodyposition.MaxForce = .(.huge,.huge,.huge)
blockselectbox = .()
blockselectbox.LineThickness =
blockselectbox.Color3 = .(,,)
indicatepos = (,{
Material = .Material.ForceField,
Size = .(,,),
Shape = .PartType.Ball,
Anchored = ,
CanCollide = ,
CanQuery = ,
CanTouch = ,
CastShadow = ,
Name = ,
Parent =
})
linetemplate = .()
linetemplate.Thickness =
linetemplate.Transparency =
linetemplate.ZIndex =
linetemplate.Parent = sgui
adorntotemplate = (,{
Size = .(,,),
Transparency = ,
Anchored = ,
CanCollide = ,
CanQuery = ,
CanTouch = ,
CastShadow = ,
Name =
})
selectedblocks = {}
(block)
block (block) == block:()
sblock = selectedblocks[block]
sblock
i,v (sblock.connections)
v:()
i,v (sblock.instances)
v
v:()
block.CanTouch = sblock.originaltouch
block.CanCollide = sblock.originalcollide
selectedblocks[block] =
count =
i,v (selectedblocks)
i i.Parent
count +=
(i)
count ==
dist =
selectedblocks[block] = {
connections = {},
instances = {},
update = ,
updatepos = ().Position,
originaltouch = block.CanTouch,
originalcollide = block.CanCollide
}
notouch
block.CanTouch =
nocollide
block.CanCollide =
bg = bodygyro:()
bp = bodyposition:()
bsb = blockselectbox:()
line = linetemplate:()
adornto = adorntotemplate:()
selectedblocks[block].instances.bodygyro = bg
selectedblocks[block].instances.bodypos = bp
selectedblocks[block].instances.selectbox = bsb
selectedblocks[block].instances.line = line
selectedblocks[block].instances.adornto = adornto
bg.Parent = (hoverblock block) sgui
bp.Parent = block
bsb.Parent = block
bsb.Adornee = block
bsb.Color3 = (block)
line.Adornee = adornto
line.Parent = sgui
adornto.Parent =
selectedblocks[block]
simr =
recentlythrown = {}
bsparams = OverlapParams.()
onrender = :().RenderStepped:(()
debug.()
pos = ().Position
indicatepos.Transparency = (showblockpos )
poscolor
showblockpos
indicatepos.Position = pos
poscolor = .((()/)%,,)
indicatepos.Color = poscolor
sbnm
plrpos = ().Position
gp = .Players:()
characters = {}
i,v (gp)
v.Character
.(characters,v.Character)
bsparams.ExcludeInstances = characters
parts = :(plrpos,pbr,bsparams)
i,v (parts)
v.Anchored == v:() selectedblocks[v] recentlythrown[v]
(v)
i,v (selectedblocks)
i i.Parent
(i)
v.update
v.updatepos = pos
v.instances.bodypos.Position = v.updatepos
v.instances.selectbox.Color3 = (i)
showblockpos
sub = (i.Position - v.updatepos)
mag = sub.Magnitude -
v.instances.adornto.CFrame = .(i.Position)
v.instances.line.CFrame = .(i.Position,v.updatepos).Rotation
v.instances.line.Length = mag
v.instances.line.Color3 = poscolor
v.instances.line.Visible =
v.instances.line.Visible =
localplr.SimulationRadius = simr
debug.()
)
selectblockkb, mobileselectblockkb = (,.KeyCode.R,()
(mouse.Target)
)
hoverb = (,,(bool)
hoverblock = bool
i,v (selectedblocks)
v.instances.bodygyro.Parent = (bool i) sgui
)
incd,mb = (,{.KeyCode.LeftControl,.KeyCode.E},()
dist +=
,)
mb
mb.AnchorPoint = .(,)
mb.Position = .(,,,)
dcd,mb = (,{.KeyCode.LeftControl,.KeyCode.Q},()
dist -=
,)
mb
mb.AnchorPoint = .(,)
mb.Position = .(,,,)
throwspeed =
tb,mb = (,.KeyCode.Y,()
i,v (selectedblocks)
recentlythrown[i] =
i,v (v.connections)
v:()
i,v (v.instances)
v
v:()
_,velocity = (throwspeed)
i (i)
i.Velocity = velocity
selectedblocks[i] =
.(()
.()
i
i.CanTouch = v.originaltouch
i.CanCollide = v.originalcollide
.()
recentlythrown[i] =
)()
,)
mb
mb.AnchorPoint = .(,)
mb.Position = .(,,,)
tstb = (,(text)
throwspeed = (text)
)
tb = (,.KeyCode.F,()
sblock = selectedblocks[mouse.Target]
sblock
selectedblocks[mouse.Target].update = sblock.update
sblock.update
sblock.instances.selectbox.SurfaceTransparency =
dist =
sblock.instances.selectbox.SurfaceTransparency =
)
umb = (,,(bool)
um = bool
)
notouchbutton = (,,(bool)
notouch = bool
i,v (selectedblocks)
notouch
i.CanTouch =
i.CanTouch = v.originaltouch
)
nocollidebutton = (,,(bool)
nocollide = bool
i,v (selectedblocks)
nocollide
i.CanCollide =
i.CanCollide = v.originalcollide
)
srtb = (,(text)
simr = (text)
)
showblockpos = (,,(bool)
showblockpos = bool
)
showblockpos = (,,(bool)
sbnm = bool
)
apbrtb = (,(text)
pbr = (text)
)
().telekinesisUIDestroy = ()
sgui:()
oninput:()
oninputend:()
onrender:()
i,v (selectedblocks)
i,v (v.connections)
v:()
i,v (v.instances)
v
v:()
i.CanTouch = v.originaltouch
i.CanCollide = v.originalcollide
selectedblocks[i] =
indicatepos:()
MOBILE SUPPORT Levitate unanchored blocks Increase and decrease the distance between you and the block Throw the block (with customizable speed) Freeze the block in mid-air Option to use mouse to guide the block Option to make the block non-collidible & non-touchable Set Simulation Radius (block pickup radius) Option to indicate where the block will position to Auto select blocks in a radius MORE FEATURES WILL BE ADDED SOON!

Universal