local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local StarterGui = game:GetService("StarterGui")
local LocalPlayer = Players.LocalPlayer
local Camera = workspace.CurrentCamera
local isLocked = false
local selectedKey = nil
local toggleButton = nil
local isDragging = false
local dragConnection = nil
StarterGui:SetCore("SendNotification", {
Title = "skidded",
Text = "skidded by skidCarti",
Duration = 6,
Icon = ""
})
local function toggleLock()
isLocked = not isLocked
if isLocked then
UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
UserInputService.MouseIconEnabled = false
else
UserInputService.MouseBehavior = Enum.MouseBehavior.Default
UserInputService.MouseIconEnabled = true
end
if toggleButton then
toggleButton.Image = isLocked
and "rbxasset://textures/ui/[email protected]"
or "rbxasset://textures/ui/[email protected]"
end
end
RunService.RenderStepped:Connect(function()
if not isLocked then return end
local character = LocalPlayer.Character
if not character then return end
local rootPart = character:FindFirstChild("HumanoidRootPart")
if not rootPart then return end
local lookVector = Camera.CFrame.LookVector
rootPart.CFrame = CFrame.new(rootPart.Position) * CFrame.Angles(0, math.atan2(-lookVector.X, -lookVector.Z), 0)
end)
UserInputService.InputBegan:Connect(function(input, processed)
if processed then return end
if selectedKey and input.KeyCode == selectedKey then
toggleLock()
end
end)
local function createToggleButton()
local screenGui = Instance.new("ScreenGui")
screenGui.ResetOnSpawn = false
screenGui.Parent = LocalPlayer.PlayerGui
toggleButton = Instance.new("ImageButton")
toggleButton.Size = UDim2.new(0, 70, 0, 70)
toggleButton.Position = UDim2.new(0.5, 0, 0.5, 0)
toggleButton.AnchorPoint = Vector2.new(0.5, 0.5)
toggleButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
toggleButton.Image = "rbxasset://textures/ui/[email protected]"
toggleButton.AutoButtonColor = true
toggleButton.Parent = screenGui
Instance.new("UICorner", toggleButton).CornerRadius = UDim.new(1, 0)
local dragStart = nil
local startPos = nil
toggleButton.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
isDragging = false
dragStart = input.Position
startPos = toggleButton.Position
dragConnection = UserInputService.InputChanged:Connect(function(input2)
if input2.UserInputType == Enum.UserInputType.MouseMovement then
isDragging = true
local delta = input2.Position - dragStart
toggleButton.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
end)
end
end)
toggleButton.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
if dragConnection then
dragConnection:Disconnect()
dragConnection = nil
end
if not isDragging then
toggleLock()
end
end
end)
end
local function createKeybindSelector()
local screenGui = Instance.new("ScreenGui")
screenGui.ResetOnSpawn = false
screenGui.IgnoreGuiInset = true
screenGui.Parent = LocalPlayer.PlayerGui
local overlay = Instance.new("Frame")
overlay.Size = UDim2.new(1, 0, 1, 0)
overlay.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
overlay.BackgroundTransparency = 0.2
overlay.Parent = screenGui
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 350, 0, 0)
mainFrame.Position = UDim2.new(0.5, 0, 0.5, 0)
mainFrame.AnchorPoint = Vector2.new(0.5, 0.5)
mainFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
mainFrame.ClipsDescendants = true
mainFrame.Parent = screenGui
Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0, 16)
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -20, 0, 40)
title.Position = UDim2.new(0, 10, 0, 10)
title.BackgroundTransparency = 1
title.Text = "Select Keybind"
title.TextScaled = true
title.TextColor3 = Color3.new(1, 1, 1)
title.Parent = mainFrame
local statusLabel = Instance.new("TextLabel")
statusLabel.Size = UDim2.new(1, -40, 0, 40)
statusLabel.Position = UDim2.new(0, 20, 0, 60)
statusLabel.BackgroundColor3 = Color3.fromRGB(55, 55, 55)
statusLabel.Text = "Press a key..."
statusLabel.TextColor3 = Color3.new(1, 1, 1)
statusLabel.Parent = mainFrame
Instance.new("UICorner", statusLabel).CornerRadius = UDim.new(0, 10)
local doneBtn = Instance.new("TextButton")
doneBtn.Size = UDim2.new(0.48, 0, 0, 40)
doneBtn.Position = UDim2.new(0.04, 0, 0, 115)
doneBtn.Text = "Done"
doneBtn.BackgroundColor3 = Color3.fromRGB(0, 170, 255)
doneBtn.TextColor3 = Color3.new(1, 1, 1)
doneBtn.Parent = mainFrame
Instance.new("UICorner", doneBtn).CornerRadius = UDim.new(0, 10)
local skipBtn = Instance.new("TextButton")
skipBtn.Size = UDim2.new(0.48, 0, 0, 40)
skipBtn.Position = UDim2.new(0.52, 0, 0, 115)
skipBtn.Text = "Skip"
skipBtn.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
skipBtn.TextColor3 = Color3.new(1, 1, 1)
skipBtn.Parent = mainFrame
Instance.new("UICorner", skipBtn).CornerRadius = UDim.new(0, 10)
TweenService:Create(mainFrame, TweenInfo.new(0.25, Enum.EasingStyle.Back), {
Size = UDim2.new(0, 350, 0, 170)
}):Play()
local inputConnection
inputConnection = UserInputService.InputBegan:Connect(function(input, processed)
if processed then return end
if input.KeyCode ~= Enum.KeyCode.Unknown then
selectedKey = input.KeyCode
statusLabel.Text = input.KeyCode.Name
end
end)
local function closeSelector()
if inputConnection then
inputConnection:Disconnect()
end
screenGui:Destroy()
createToggleButton()
end
doneBtn.MouseButton1Click:Connect(function()
closeSelector()
end)
skipBtn.MouseButton1Click:Connect(function()
selectedKey = nil
closeSelector()
end)
end
createKeybindSelector()