
KeylessUniversal

-- Settings
local distance = 30
local cooldown = 0.3
local canDodge = true
local player = game.Players.LocalPlayer
local UIS = game:GetService("UserInputService")
-- UI Protection
local parent = (gethui and gethui()) or game:GetService("CoreGui")
if parent:FindFirstChild("DodgeMenu") then parent.DodgeMenu:Destroy() end
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "DodgeMenu"
screenGui.Parent = parent
screenGui.ResetOnSpawn = false
-- The Main Draggable Container
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 220, 0, 70)
mainFrame.Position = UDim2.new(0.5, -110, 0.7, 0)
mainFrame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
mainFrame.BackgroundTransparency = 0.5 -- Slightly visible so you know where to drag
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Parent = screenGui
local cornerMain = Instance.new("UICorner")
cornerMain.CornerRadius = UDim.new(0, 10)
cornerMain.Parent = mainFrame
-- Function to create buttons easily
local function createBtn(text, pos, color)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(0, 60, 0, 50)
btn.Position = pos
btn.BackgroundColor3 = color
btn.Text = text
btn.Font = Enum.Font.GothamBold
btn.TextColor3 = Color3.new(1, 1, 1)
btn.TextSize = 10
btn.Parent = mainFrame
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = btn
return btn
end
local leftBtn = createBtn("LEFT", UDim2.new(0, 5, 0.15, 0), Color3.fromRGB(0, 180, 100))
local fwdBtn = createBtn("FORWARD", UDim2.new(0, 75, 0.15, 0), Color3.fromRGB(200, 150, 0))
local rightBtn = createBtn("RIGHT", UDim2.new(0, 145, 0.15, 0), Color3.fromRGB(0, 120, 255))
-- Dodge Logic
local function performDodge(vector)
if not canDodge then return end
local hrp = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
if hrp then
canDodge = false
hrp.CFrame = hrp.CFrame * vector
task.wait(cooldown)
canDodge = true
end
end
leftBtn.MouseButton1Click:Connect(function() performDodge(CFrame.new(-distance, 0, 0)) end)
fwdBtn.MouseButton1Click:Connect(function() performDodge(CFrame.new(0, 0, -distance)) end)
rightBtn.MouseButton1Click:Connect(function() performDodge(CFrame.new(distance, 0, 0)) end)
-- FIXED DRAG LOGIC FOR ANDROID
local dragging, dragInput, dragStart, startPos
mainFrame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = mainFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
UIS.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
local delta = input.Position - dragStart
mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end)
print("Ultimate Mobile Dodge Loaded! Drag the black bar to move.")



can you make a script for Outwest Chicago 2 https://www.roblox.com/games/137119536822824/Public-Server