Run it
Copy the script and paste it into your executor.
VirtualInputManager = :()
Players = :()
RunService = :()
UserInputService = :()
player = Players.LocalPlayer
pGui = player:()
camera = .CurrentCamera
RunService.Stepped:(()
touchGui = pGui:()
touchGui
touchGui.Enabled =
frame = touchGui:()
frame frame.Position = .(, , , )
)
pGui:() pGui.Beta_V2_9:()
ScreenGui = .()
ScreenGui.Name =
ScreenGui.Parent = pGui
ScreenGui.ResetOnSpawn =
ScreenGui.IgnoreGuiInset =
screen = ScreenGui.AbsoluteSize
btnSize = .(screen.X * , , )
gap = btnSize *
startX, startY = ,
(name, text, pos, size)
frame = .()
frame.Name = name
frame.Size = size
frame.Position = pos
frame.BackgroundColor3 = .(, , )
frame.BackgroundTransparency =
frame.ZIndex =
frame.Parent = ScreenGui
corner = .()
corner.CornerRadius = .(, )
corner.Parent = frame
txt = .()
txt.Size = .(, , , )
txt.Text = text
txt.TextColor3 = .(, , )
txt.BackgroundTransparency =
txt.Font = .Font.GothamBold
txt.TextSize = size.Y.Offset *
txt.Parent = frame
stroke = .()
stroke.Color = .(, , )
stroke.Thickness =
stroke.Transparency =
stroke.Parent = frame
frame
KeysUI = {}
KeysUI.W = (, , .(startX, , startY, -gap), .(, btnSize, , btnSize))
KeysUI.S = (, , .(startX, , startY, gap), .(, btnSize, , btnSize))
KeysUI.A = (, , .(startX, -gap, startY, ), .(, btnSize, , btnSize))
KeysUI.D = (, , .(startX, gap, startY, ), .(, btnSize, , btnSize))
TouchArea = .()
TouchArea.Name =
areaSize = gap *
TouchArea.Size = .(, areaSize, , areaSize)
TouchArea.Position = .(startX, -areaSize/ + btnSize/, startY, -areaSize/ + btnSize/)
TouchArea.BackgroundTransparency =
TouchArea.Text =
TouchArea.ZIndex =
TouchArea.Parent = ScreenGui
ActiveKeys = {W = , A = , S = , D = }
(inputPos)
center = .(TouchArea.AbsolutePosition.X + TouchArea.AbsoluteSize.X/, TouchArea.AbsolutePosition.Y + TouchArea.AbsoluteSize.Y/)
delta = inputPos - center
threshold = gap *
newStates = {W = delta.Y < -threshold, S = delta.Y > threshold, A = delta.X < -threshold, D = delta.X > threshold}
k, isDown (newStates)
ActiveKeys[k] ~= isDown
ActiveKeys[k] = isDown
VirtualInputManager:(isDown, .KeyCode[k], , )
KeysUI[k].BackgroundColor3 = isDown .(, , ) .(, , )
KeysUI[k].TextLabel.TextColor3 = isDown .(, , ) .(, , )
TouchArea.InputBegan:((input) input.UserInputType == .UserInputType.Touch (.(input.Position.X, input.Position.Y)) )
TouchArea.InputChanged:((input) input.UserInputType == .UserInputType.Touch (.(input.Position.X, input.Position.Y)) )
TouchArea.InputEnded:((input)
input.UserInputType == .UserInputType.Touch
k, v (ActiveKeys) v ActiveKeys[k] = VirtualInputManager:(, .KeyCode[k], , ) KeysUI[k].BackgroundColor3 = .(, , ) KeysUI[k].TextLabel.TextColor3 = .(, , )
)
jumpSize = btnSize *
JumpUI = (, , .(, -jumpSize/, startY, ), .(, jumpSize, , jumpSize))
JumpHitbox = .()
JumpHitbox.Name =
JumpHitbox.Size = .(, , , )
JumpHitbox.BackgroundTransparency =
JumpHitbox.Text =
JumpHitbox.ZIndex =
JumpHitbox.Parent = JumpUI
JumpHitbox.InputBegan:((input)
input.UserInputType == .UserInputType.Touch input.UserInputType == .UserInputType.MouseButton1
JumpUI.BackgroundColor3 = .(, , )
JumpUI.TextLabel.TextColor3 = .(, , )
VirtualInputManager:(, .KeyCode.Space, , )
)
JumpHitbox.InputEnded:((input)
input.UserInputType == .UserInputType.Touch input.UserInputType == .UserInputType.MouseButton1
JumpUI.BackgroundColor3 = .(, , )
JumpUI.TextLabel.TextColor3 = .(, , )
VirtualInputManager:(, .KeyCode.Space, , )
)
shiftSize = btnSize *
isShiftLock =
ShiftUI = (, , .(, -shiftSize/, startY + jumpSize*, ), .(, shiftSize, , shiftSize))
ShiftUI.BackgroundColor3 = .(, , )
ShiftUI.TextLabel.TextSize = shiftSize *
ShiftHitbox = .()
ShiftHitbox.Size = .(,,,)
ShiftHitbox.BackgroundTransparency =
ShiftHitbox.Text =
ShiftHitbox.ZIndex =
ShiftHitbox.Parent = ShiftUI
ShiftHitbox.MouseButton1Click:(()
isShiftLock = isShiftLock
isShiftLock
ShiftUI.TextLabel.Text =
ShiftUI.BackgroundColor3 = .(, , )
ShiftUI.TextLabel.Text =
ShiftUI.BackgroundColor3 = .(, , )
)
RunService.RenderStepped:(()
isShiftLock
UserInputService.MouseBehavior = .MouseBehavior.LockCenter
player.Character player.Character:()
lookVector = camera.CFrame.LookVector
player.Character.HumanoidRootPart.CFrame = .(player.Character.HumanoidRootPart.Position, player.Character.HumanoidRootPart.Position + .(lookVector.X, , lookVector.Z))
)
()
Pc Experience