-- 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.")