Run it
Copy the script and paste it into your executor.
Players = :()
UIS = :()
RunService = :()
player = Players.LocalPlayer
playerGui = player:()
old = playerGui:()
old old:()
gui = .()
gui.Name =
gui.ResetOnSpawn =
gui.DisplayOrder =
gui.Parent = playerGui
defaults = {
W = .(, , , ),
A = .(, , , ),
S = .(, , , ),
D = .(, , , ),
SHIFT = .(, -, , -),
}
held = {W=, A=, S=, D=}
activeInputs = {}
buttons = {}
locked =
shiftOn =
drag =
sliderDrag =
savedAutoRotate =
savedCameraOffset = .zero
minSize =
maxSize =
currentSize =
(name, text, position, size, color)
b = .()
b.Name = name
b.Text = text
b.Position = position
b.Size = size
b.BackgroundColor3 = color .(, , )
b.TextColor3 = .(, , )
b.Font = .Font.GothamBold
b.TextScaled =
b.BorderSizePixel =
b.Active =
b.AutoButtonColor =
b.Parent = gui
corner = .()
corner.CornerRadius = .(, )
corner.Parent = b
b
(key, value)
held[key] = value
b = buttons[key]
b
b.BackgroundColor3 = value
.(, , )
.(, , )
_, key ({, , , })
b = (
key, key, defaults[key],
.(currentSize, currentSize)
)
buttons[key] = b
b.InputBegan:((input)
input.UserInputType == .UserInputType.Touch
input.UserInputType == .UserInputType.MouseButton1
activeInputs[key] = input
(key, )
)
shiftButton = (
, , defaults.SHIFT,
.(currentSize * , currentSize * )
)
buttons.SHIFT = shiftButton
lockButton = (
, ,
.(, , , ),
.(, ),
.(, , )
)
resetButton = (
, ,
.(, , , ),
.(, )
)
sizeToggle = (
, ,
.(, , , ),
.(, ),
.(, , )
)
sizePanel = .()
sizePanel.Name =
sizePanel.Size = .(, )
sizePanel.Position = .(, , , )
sizePanel.BackgroundColor3 = .(, , )
sizePanel.BorderSizePixel =
sizePanel.Visible =
sizePanel.ZIndex =
sizePanel.Parent = gui
panelCorner = .()
panelCorner.CornerRadius = .(, )
panelCorner.Parent = sizePanel
slider = .()
slider.Name =
slider.Size = .(, -, , )
slider.Position = .(, , , )
slider.BackgroundColor3 = .(, , )
slider.BorderSizePixel =
slider.Active =
slider.ZIndex =
slider.Parent = sizePanel
sliderCorner = .()
sliderCorner.CornerRadius = .(, )
sliderCorner.Parent = slider
knob = .()
knob.Name =
knob.Text =
knob.Size = .(, )
knob.AnchorPoint = .(, )
knob.Position = .(
(currentSize - minSize) / (maxSize - minSize), ,
,
)
knob.BackgroundColor3 = .(, , )
knob.BorderSizePixel =
knob.Active =
knob.ZIndex =
knob.Parent = slider
knobCorner = .()
knobCorner.CornerRadius = .(, )
knobCorner.Parent = knob
sizeLabel = .()
sizeLabel.Size = .(, , , )
sizeLabel.Position = .(, , , )
sizeLabel.BackgroundTransparency =
sizeLabel.TextColor3 = .(, , )
sizeLabel.TextSize =
sizeLabel.Font = .Font.Gotham
sizeLabel.ZIndex =
sizeLabel.Parent = sizePanel
(value)
currentSize = .(value, minSize, maxSize)
alpha = (currentSize - minSize) / (maxSize - minSize)
knob.Position = .(alpha, , , )
sizeLabel.Text = .. .(currentSize)
name, b (buttons)
name ==
b.Size = .(
currentSize * ,
currentSize *
)
b.Size = .(currentSize, currentSize)
(inputX)
left = slider.AbsolutePosition.X
width = slider.AbsoluteSize.X
width <=
alpha = .((inputX - left) / width, , )
(minSize + alpha * (maxSize - minSize))
(input)
sliderDrag = input
(input.Position.X)
knob.InputBegan:((input)
input.UserInputType == .UserInputType.Touch
input.UserInputType == .UserInputType.MouseButton1
(input)
)
slider.InputBegan:((input)
input.UserInputType == .UserInputType.Touch
input.UserInputType == .UserInputType.MouseButton1
(input)
)
(button)
button.InputBegan:((input)
locked
input.UserInputType == .UserInputType.Touch
input.UserInputType == .UserInputType.MouseButton1
drag = {
button = button,
input = input,
start = input.Position,
position = button.Position,
}
)
_, b (buttons)
(b)
UIS.InputChanged:((input)
sliderDrag (
input == sliderDrag
input.UserInputType == .UserInputType.MouseMovement
)
(input.Position.X)
drag locked (
input == drag.input
input.UserInputType == .UserInputType.MouseMovement
)
delta = input.Position - drag.start
drag.button.Position = .(
drag.position.X.Scale,
drag.position.X.Offset + delta.X,
drag.position.Y.Scale,
drag.position.Y.Offset + delta.Y
)
)
UIS.InputEnded:((input)
sliderDrag (
input == sliderDrag
input.UserInputType == .UserInputType.MouseButton1
)
sliderDrag =
drag (
input == drag.input
input.UserInputType == .UserInputType.MouseButton1
)
drag =
key, activeInput (activeInputs)
activeInput == input
activeInputs[key] =
(key, )
)
lockButton.Activated:(()
locked = locked
lockButton.Text = locked
lockButton.BackgroundColor3 = locked
.(, , )
.(, , )
locked drag =
)
resetButton.Activated:(()
name, position (defaults)
buttons[name]
buttons[name].Position = position
)
sizeToggle.Activated:(()
sizePanel.Visible = sizePanel.Visible
sizeToggle.Text = sizePanel.Visible
)
(enabled)
shiftOn = enabled
character = player.Character
humanoid = character
character:()
humanoid
enabled
savedAutoRotate = humanoid.AutoRotate
savedCameraOffset = humanoid.CameraOffset
humanoid.AutoRotate =
humanoid.CameraOffset = .(, , )
humanoid.AutoRotate = savedAutoRotate
humanoid.CameraOffset = savedCameraOffset
shiftButton.BackgroundColor3 = enabled
.(, , )
.(, , )
shiftButton.Activated:(()
( shiftOn)
)
RunService:(
,
.RenderPriority.Character.Value + ,
()
shiftOn
character = player.Character
humanoid = character
character:()
root = character
character:()
camera = .CurrentCamera
humanoid humanoid.Health <=
root camera
look = camera.CFrame.LookVector
flat = .(look.X, , look.Z)
flat.Magnitude >
root.CFrame = .(
root.Position,
root.Position + flat.Unit
)
)
RunService:(
,
.RenderPriority.Input.Value + ,
()
character = player.Character
humanoid = character
character:()
camera = .CurrentCamera
humanoid humanoid.Health <=
camera
look = camera.CFrame.LookVector
right = camera.CFrame.RightVector
forward = .(look.X, , look.Z)
side = .(right.X, , right.Z)
forward.Magnitude > forward = forward.Unit
side.Magnitude > side = side.Unit
direction = .zero
held.W direction += forward
held.S direction -= forward
held.D direction += side
held.A direction -= side
humanoid:(direction, )
)
(currentSize)
player.CharacterAdded:((character)
key (held)
activeInputs[key] =
(key, )
shiftOn =
.()
humanoid = character:()
humanoid
humanoid.CameraOffset = .zero
humanoid.AutoRotate =
shiftButton.BackgroundColor3 = .(, , )
)This script is a mobile keyboard this script is still beta

Universal