AutoClicker By Gemini V2 (Keyless)
Key RequiredUniversal

AutoClicker By Gemini V2 (Keyless)

Universal Scriptsingularity_hackssingularity_hacks 3K views 23.6K executesUpdated May 26, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•224 lines (8011 chars)
loadstring([[
local CoreGui = game:GetService("CoreGui")
local Players = game:GetService("Players")
local VIM = game:GetService("VirtualInputManager")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")

if CoreGui:FindFirstChild("DragonSideClickerV2") then
    CoreGui.DragonSideClickerV2:Destroy()
end

local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "DragonSideClickerV2"
ScreenGui.Parent = CoreGui
ScreenGui.ResetOnSpawn = false

-- Hardcoded Main Menu Panel (Height extended slightly to 200 to fit the "?" button comfortably)
local SidePanel = Instance.new("Frame")
SidePanel.Size = UDim2.new(0, 110, 0, 200)
SidePanel.Position = UDim2.new(1, -150, 0.35, 0)
SidePanel.BackgroundColor3 = Color3.fromRGB(220, 220, 220)
SidePanel.BackgroundTransparency = 0.35
SidePanel.Active = true
SidePanel.Parent = ScreenGui

local PanelCorner = Instance.new("UICorner")
PanelCorner.CornerRadius = UDim.new(0, 12)
PanelCorner.Parent = SidePanel

local ClickPositions = {}
local IsClicking = false
local ClickConnection = nil

local function makeElementDraggableWithBorders(element, isMainPanel)
    local dragging = false
    local dragInput, dragStart, startPos

    element.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
            dragging = true
            element:SetAttribute("BeingDragged", true)
            if not isMainPanel then
                element.BackgroundTransparency = 0.8
            end
            dragStart = input.Position
            startPos = element.Position

            input.Changed:Connect(function()
                if input.UserInputState == Enum.UserInputState.End then
                    dragging = false
                    element:SetAttribute("BeingDragged", false)
                    if not isMainPanel then
                        element.BackgroundTransparency = 0.4
                    end
                end
            end)
        end
    end)

    element.InputChanged:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
            dragInput = input
        end
    end)

    UserInputService.InputChanged:Connect(function(input)
        if input == dragInput and dragging then
            local delta = input.Position - dragStart
            local newOffsetX = startPos.X.Offset + delta.X
            local newOffsetY = startPos.Y.Offset + delta.Y
            
            local screenSize = ScreenGui.AbsoluteSize
            
            if isMainPanel then
                local maxBoundsX = screenSize.X - element.AbsoluteSize.X
                local maxBoundsY = screenSize.Y - element.AbsoluteSize.Y
                local clampedX = math.clamp(newOffsetX, 0, maxBoundsX)
                local clampedY = math.clamp(newOffsetY, 0, maxBoundsY)
                element.Position = UDim2.new(0, clampedX, 0, clampedY)
            else
                element.Position = UDim2.new(0, newOffsetX, 0, newOffsetY)
            end
        end
    end)
end

makeElementDraggableWithBorders(SidePanel, true)

local function createBlockBtn(color, sizeX, sizeY, posX, posY, text, textSize, parent)
    local btn = Instance.new("TextButton")
    btn.Size = UDim2.new(0, sizeX, 0, sizeY)
    btn.Position = UDim2.new(0, posX, 0, posY)
    btn.BackgroundColor3 = color
    btn.Text = text
    btn.TextColor3 = Color3.fromRGB(255, 255, 255)
    btn.Font = Enum.Font.SourceSansBold
    btn.TextSize = textSize
    btn.AutoButtonColor = true
    btn.Parent = parent
    
    local btnCorner = Instance.new("UICorner")
    btnCorner.CornerRadius = UDim.new(0, 8)
    btnCorner.Parent = btn
    return btn
end

-- Menu Buttons Stack
local SpawnBtn = createBlockBtn(Color3.fromRGB(52, 152, 219), 94, 36, 8, 12, "+", 24, SidePanel)
local PlayBtn  = createBlockBtn(Color3.fromRGB(46, 204, 113), 94, 36, 8, 58, "Start", 18, SidePanel)
local PauseBtn = createBlockBtn(Color3.fromRGB(231, 76, 60), 94, 36, 8, 104, "Clear/Stop", 16, SidePanel)

-- Purple Info Button at the bottom
local InfoBtn  = createBlockBtn(Color3.fromRGB(142, 68, 173), 94, 36, 8, 150, "?", 20, SidePanel)

-- Credits Pop-Up UI Window (Hidden by default)
local CreditsFrame = Instance.new("Frame")
CreditsFrame.Size = UDim2.new(0, 240, 0, 130)
CreditsFrame.Position = UDim2.new(0.5, -120, 0.4, -65)
CreditsFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
CreditsFrame.BorderSizePixel = 0
CreditsFrame.Visible = false
CreditsFrame.Active = true
CreditsFrame.Parent = ScreenGui

local CreditsCorner = Instance.new("UICorner")
CreditsCorner.CornerRadius = UDim.new(0, 10)
CreditsCorner.Parent = CreditsFrame

-- Credits Content text wrapper
local InfoText = Instance.new("TextLabel")
InfoText.Size = UDim2.new(1, -16, 1, -24)
InfoText.Position = UDim2.new(0, 8, 0, 20)
InfoText.BackgroundTransparency = 1
InfoText.Text = "singularity_scripts on scriptblox\nthebakerconbacon on roblox\n\nMADE BY GEMINI AI"
InfoText.TextColor3 = Color3.fromRGB(240, 240, 240)
InfoText.Font = Enum.Font.SourceSansBold
InfoText.TextSize = 15
InfoText.TextWrapped = true
InfoText.Parent = CreditsFrame

-- 'X' Close button for info menu
local CloseInfoBtn = Instance.new("TextButton")
CloseInfoBtn.Size = UDim2.new(0, 24, 0, 24)
CloseInfoBtn.Position = UDim2.new(1, -28, 0, 4)
CloseInfoBtn.BackgroundTransparency = 1
CloseInfoBtn.Text = "X"
CloseInfoBtn.TextColor3 = Color3.fromRGB(231, 76, 60)
CloseInfoBtn.Font = Enum.Font.SourceSansBold
CloseInfoBtn.TextSize = 18
CloseInfoBtn.Parent = CreditsFrame

-- Interactive Handlers for the Info Overlay
InfoBtn.MouseButton1Click:Connect(function()
    CreditsFrame.Visible = true
end)

CloseInfoBtn.MouseButton1Click:Connect(function()
    CreditsFrame.Visible = false
end)

-- Main logic loops
SpawnBtn.MouseButton1Click:Connect(function()
    if #ClickPositions >= 1 then return end

    local TargetBox = Instance.new("Frame")
    TargetBox.Size = UDim2.new(0, 50, 0, 50) 
    
    local screenCenter = ScreenGui.AbsoluteSize
    TargetBox.Position = UDim2.new(0, (screenCenter.X / 2) - 25, 0, (screenCenter.Y / 2) - 25)
    
    TargetBox.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
    TargetBox.BackgroundTransparency = 0.4
    TargetBox.Active = true
    TargetBox.Parent = ScreenGui
    
    local boxCorner = Instance.new("UICorner")
    boxCorner.CornerRadius = UDim.new(0, 8)
    boxCorner.Parent = TargetBox

    local CenterDot = Instance.new("Frame")
    CenterDot.Size = UDim2.new(0, 6, 0, 6)
    CenterDot.Position = UDim2.new(0.5, -3, 0.5, -3)
    CenterDot.BackgroundColor3 = Color3.fromRGB(52, 152, 219)
    CenterDot.Parent = TargetBox
    
    TargetBox:SetAttribute("BeingDragged", false)
    makeElementDraggableWithBorders(TargetBox, false)
    table.insert(ClickPositions, TargetBox)
end)

PlayBtn.MouseButton1Click:Connect(function()
    if IsClicking then return end
    IsClicking = true
    
    ClickConnection = RunService.Heartbeat:Connect(function()
        for _, box in ipairs(ClickPositions) do
            if box and box.Parent and box:GetAttribute("BeingDragged") == false then
                
                local targetX = box.AbsolutePosition.X + (box.AbsoluteSize.X / 2)
                local targetY = box.AbsolutePosition.Y + (box.AbsoluteSize.Y / 2)
                
                for i = 1, 5 do
                    VIM:SendMouseButtonEvent(targetX, targetY, 0, true, game, 1)
                    VIM:SendMouseButtonEvent(targetX, targetY, 0, false, game, 1)
                end
            end
        end
    end)
end)

PauseBtn.MouseButton1Click:Connect(function()
    IsClicking = false
    if ClickConnection then
        ClickConnection:Disconnect()
        ClickConnection = nil
    end
    for _, box in ipairs(ClickPositions) do
        if box and box.Parent then
            box:Destroy()
        end
    end
    table.clear(ClickPositions)
end)
]])()

Features & Information

This Script is made by gemini, Following list: 🟪 ? - Shows Credits 🟦 + - adds a white box which can put clicks 🟩 Start - (please do not click it again, if it bugs, click the red button to reset it) 🟥 Clear/Stop - pauses autoclick, it will clear the white boxes. - More: It is only one white box. High CPS GUI/White Box Borders. If it bugs the gui, execute it again to refresh, it will delete the old one

Community Comments (3)

singularity_hackssingularity_hacksMay 27, 2026

NEW UPDATE! - Added Text Added Credits

camdarealestcamdarealestJul 31, 2026

can you add you can move the cursor around??

guffythedoggyguffythedoggySep 16, 2026

very good for mobile i approve 👍

More Scripts for Universal Scripts