-- Delta Auto Clicker & Gun Macro V8.2 (Auto-Independent Mode & Isolated Core Loops) local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local VirtualInputManager = game:GetService("VirtualInputManager") local CoreGui = game:GetService("CoreGui") local HttpService = game:GetService("HttpService") local player = Players.LocalPlayer local CONFIG_FILE = "DeltaGunMacro_Config.json" -- Disconnect existing event connections on re-execution if getgenv().DeltaAutoClickerConnections then for _, conn in ipairs(getgenv().DeltaAutoClickerConnections) do if conn and conn.Connected then conn:Disconnect() end end end getgenv().DeltaAutoClickerConnections = {} local function trackConn(conn) table.insert(getgenv().DeltaAutoClickerConnections, conn) return conn end local targetGui = (gethui and gethui()) or CoreGui if not pcall(function() local _ = targetGui.Name end) then targetGui = player:WaitForChild("PlayerGui") end if targetGui:FindFirstChild("CustomAutoClicker") then targetGui.CustomAutoClicker:Destroy() end local screenGui = Instance.new("ScreenGui") screenGui.Name = "CustomAutoClicker" screenGui.ResetOnSpawn = false screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling screenGui.IgnoreGuiInset = true screenGui.Parent = targetGui -- Settings & Variables local clicking = false local redirectTaps = false local extraTarget2Enabled = false local extraTarget3Enabled = false local clickDelay = 0.001 local activeCores = 1 local currentMode = "Center" local isLocked = false local isUILocked = false local hideCircle = false local hideCrosshair = false -- Independent Speed Settings local independentSpeeds = false local selectedSpeedCore = 1 local coreDelays = {0.001, 0.001, 0.001} -- Independent Target Offsets local offsetX1, offsetY1 = 0, 0 local offsetX2, offsetY2 = 0, 0 local offsetX3, offsetY3 = 0, 0 local selectedMoverTarget = 1 local crosshairSize = 16 local adjustmentsSet = false local isRedirecting = false -- Helper function to create crosshairs local function createCrosshair(color) local frame = Instance.new("Frame") frame.Size = UDim2.fromOffset(crosshairSize, crosshairSize) frame.AnchorPoint = Vector2.new(0.5, 0.5) frame.BackgroundTransparency = 1 frame.Active = false frame.Visible = false frame.ZIndex = 99999 frame.Parent = screenGui local h = Instance.new("Frame") h.Size = UDim2.new(1, 0, 0, 2) h.Position = UDim2.new(0, 0, 0.5, -1) h.BackgroundColor3 = color h.BorderSizePixel = 0 h.Active = false h.Parent = frame local v = Instance.new("Frame") v.Size = UDim2.new(0, 2, 1, 0) v.Position = UDim2.new(0.5, -1, 0, 0) v.BackgroundColor3 = color v.BorderSizePixel = 0 v.Active = false v.Parent = frame return frame, h, v end -- Crosshairs local crosshairFrame1, hLine1, vLine1 = createCrosshair(Color3.fromRGB(255, 50, 50)) local crosshairFrame2, hLine2, vLine2 = createCrosshair(Color3.fromRGB(50, 180, 255)) local crosshairFrame3, hLine3, vLine3 = createCrosshair(Color3.fromRGB(220, 50, 255)) -- Main Draggable Header Frame local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 400, 0, 45) mainFrame.Position = UDim2.new(0.5, -200, 0, 30) mainFrame.BackgroundColor3 = Color3.fromRGB(28, 28, 32) mainFrame.BorderSizePixel = 0 mainFrame.Active = true mainFrame.Parent = screenGui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 12) corner.Parent = mainFrame local stroke = Instance.new("UIStroke") stroke.Color = Color3.fromRGB(80, 80, 95) stroke.Thickness = 1.5 stroke.Parent = mainFrame -- Main Frame Dragging Logic local draggingMain = false local mainDragStart, mainStartPos mainFrame.InputBegan:Connect(function(input) if not isUILocked and (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) then draggingMain = true mainDragStart = input.Position mainStartPos = mainFrame.Position end end) trackConn(UserInputService.InputChanged:Connect(function(input) if draggingMain and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - mainDragStart mainFrame.Position = UDim2.new( mainStartPos.X.Scale, mainStartPos.X.Offset + delta.X, mainStartPos.Y.Scale, mainStartPos.Y.Offset + delta.Y ) end end)) trackConn(UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then draggingMain = false end end)) -- Header Controls local toggleBtn = Instance.new("TextButton") toggleBtn.Size = UDim2.new(0, 70, 0, 31) toggleBtn.Position = UDim2.new(0, 7, 0, 7) toggleBtn.BackgroundColor3 = Color3.fromRGB(45, 45, 50) toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) toggleBtn.TextSize = 12 toggleBtn.Font = Enum.Font.GothamBold toggleBtn.Text = "OFF" toggleBtn.BorderSizePixel = 0 toggleBtn.Parent = mainFrame local toggleCorner = Instance.new("UICorner") toggleCorner.CornerRadius = UDim.new(0, 8) toggleCorner.Parent = toggleBtn local speedBox = Instance.new("TextBox") speedBox.Size = UDim2.new(0, 55, 0, 31) speedBox.Position = UDim2.new(0, 82, 0, 7) speedBox.BackgroundColor3 = Color3.fromRGB(18, 18, 22) speedBox.TextColor3 = Color3.fromRGB(255, 255, 255) speedBox.PlaceholderColor3 = Color3.fromRGB(120, 120, 130) speedBox.Font = Enum.Font.GothamMedium speedBox.TextSize = 10 speedBox.PlaceholderText = "Speed" speedBox.Text = "0.001" speedBox.ClearTextOnFocus = false speedBox.BorderSizePixel = 0 speedBox.Parent = mainFrame local speedCorner = Instance.new("UICorner") speedCorner.CornerRadius = UDim.new(0, 8) speedCorner.Parent = speedBox local coresBtn = Instance.new("TextButton") coresBtn.Size = UDim2.new(0, 185, 0, 31) coresBtn.Position = UDim2.new(0, 142, 0, 7) coresBtn.BackgroundColor3 = Color3.fromRGB(90, 50, 130) coresBtn.TextColor3 = Color3.fromRGB(255, 255, 255) coresBtn.TextSize = 11 coresBtn.Font = Enum.Font.GothamBold coresBtn.Text = "Mode: 1 Core (Fast)" coresBtn.BorderSizePixel = 0 coresBtn.Parent = mainFrame local coresCorner = Instance.new("UICorner") coresCorner.CornerRadius = UDim.new(0, 8) coresCorner.Parent = coresBtn local settingsBtn = Instance.new("TextButton") settingsBtn.Size = UDim2.new(0, 35, 0, 31) settingsBtn.Position = UDim2.new(0, 332, 0, 7) settingsBtn.BackgroundColor3 = Color3.fromRGB(45, 45, 50) settingsBtn.TextColor3 = Color3.fromRGB(255, 255, 255) settingsBtn.TextSize = 14 settingsBtn.Font = Enum.Font.GothamBold settingsBtn.Text = "⚙" settingsBtn.BorderSizePixel = 0 settingsBtn.Parent = mainFrame local settingsCorner = Instance.new("UICorner") settingsCorner.CornerRadius = UDim.new(0, 8) settingsCorner.Parent = settingsBtn -- Scrollable Settings Outer Panel local settingsPanel = Instance.new("Frame") settingsPanel.Size = UDim2.new(0, 400, 0, 230) settingsPanel.Position = UDim2.new(0, 0, 0, 50) settingsPanel.BackgroundColor3 = Color3.fromRGB(22, 22, 26) settingsPanel.BorderSizePixel = 0 settingsPanel.Visible = false settingsPanel.Parent = mainFrame local panelCorner = Instance.new("UICorner") panelCorner.CornerRadius = UDim.new(0, 10) panelCorner.Parent = settingsPanel local panelStroke = Instance.new("UIStroke") panelStroke.Color = Color3.fromRGB(65, 65, 75) panelStroke.Thickness = 1.2 panelStroke.Parent = settingsPanel local settingsScroll = Instance.new("ScrollingFrame") settingsScroll.Size = UDim2.new(1, -12, 1, -12) settingsScroll.Position = UDim2.new(0, 6, 0, 6) settingsScroll.BackgroundTransparency = 1 settingsScroll.BorderSizePixel = 0 settingsScroll.ScrollBarThickness = 6 settingsScroll.ScrollBarImageColor3 = Color3.fromRGB(90, 90, 110) settingsScroll.CanvasSize = UDim2.new(0, 0, 0, 0) settingsScroll.Parent = settingsPanel local scrollList = Instance.new("UIListLayout") scrollList.SortOrder = Enum.SortOrder.LayoutOrder scrollList.Padding = UDim.new(0, 5) scrollList.Parent = settingsScroll scrollList:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() settingsScroll.CanvasSize = UDim2.new(0, 0, 0, scrollList.AbsoluteContentSize.Y + 10) end) -- Helper function to create target markers local function createTargetMarker(color, defaultPos) local marker = Instance.new("Frame") marker.Size = UDim2.fromOffset(40, 40) marker.AnchorPoint = Vector2.new(0.5, 0.5) marker.Position = defaultPos marker.BackgroundColor3 = color marker.BackgroundTransparency = 0.6 marker.Visible = false marker.Active = false marker.Parent = screenGui local c = Instance.new("UICorner") c.CornerRadius = UDim.new(1, 0) c.Parent = marker return marker end local customTargetMarker1 = createTargetMarker(Color3.fromRGB(255, 50, 50), UDim2.new(0.5, 0, 0.5, 0)) local customTargetMarker2 = createTargetMarker(Color3.fromRGB(50, 180, 255), UDim2.new(0.5, 80, 0.5, 0)) local customTargetMarker3 = createTargetMarker(Color3.fromRGB(220, 50, 255), UDim2.new(0.5, -80, 0.5, 0)) -- Position Resolver per Core local function getTouchCoordinates(coreIndex) local screenSize = screenGui.AbsoluteSize local baseX, baseY local offX, offY = 0, 0 if coreIndex == 2 and extraTarget2Enabled and activeCores >= 2 then offX, offY = offsetX2, offsetY2 if currentMode == "Custom" then baseX = customTargetMarker2.AbsolutePosition.X + (customTargetMarker2.AbsoluteSize.X / 2) baseY = customTargetMarker2.AbsolutePosition.Y + (customTargetMarker2.AbsoluteSize.Y / 2) else baseX = (screenSize.X / 2) + 80 baseY = screenSize.Y / 2 end elseif coreIndex == 3 and extraTarget3Enabled and activeCores >= 3 then offX, offY = offsetX3, offsetY3 if currentMode == "Custom" then baseX = customTargetMarker3.AbsolutePosition.X + (customTargetMarker3.AbsoluteSize.X / 2) baseY = customTargetMarker3.AbsolutePosition.Y + (customTargetMarker3.AbsoluteSize.Y / 2) else baseX = (screenSize.X / 2) - 80 baseY = screenSize.Y / 2 end else offX, offY = offsetX1, offsetY1 if currentMode == "Custom" then baseX = customTargetMarker1.AbsolutePosition.X + (customTargetMarker1.AbsoluteSize.X / 2) baseY = customTargetMarker1.AbsolutePosition.Y + (customTargetMarker1.AbsoluteSize.Y / 2) else baseX = screenSize.X / 2 baseY = screenSize.Y / 2 end end return baseX + offX, baseY + offY end -- Fast Single Touch Execution local function executeSingleFire(coreIndex) local touchX, touchY = getTouchCoordinates(coreIndex) local touchId = 70000 + coreIndex VirtualInputManager:SendTouchEvent(touchId, 0, touchX, touchY) VirtualInputManager:SendTouchEvent(touchId, 2, touchX, touchY) end -- Unified Fire Execution local function executeAllFireEvents() for i = 1, activeCores do executeSingleFire(i) end end local function updateCrosshairIndicator() -- Primary Indicator local touchX1, touchY1 = getTouchCoordinates(1) crosshairFrame1.Position = UDim2.fromOffset(touchX1, touchY1) crosshairFrame1.Size = UDim2.fromOffset(crosshairSize, crosshairSize) crosshairFrame1.Visible = not hideCrosshair customTargetMarker1.Visible = (currentMode == "Custom") and (not hideCircle) local crossColor1 = adjustmentsSet and Color3.fromRGB(50, 255, 100) or Color3.fromRGB(255, 50, 50) hLine1.BackgroundColor3 = crossColor1 vLine1.BackgroundColor3 = crossColor1 -- Secondary Indicator if extraTarget2Enabled and activeCores >= 2 then local touchX2, touchY2 = getTouchCoordinates(2) crosshairFrame2.Position = UDim2.fromOffset(touchX2, touchY2) crosshairFrame2.Size = UDim2.fromOffset(crosshairSize, crosshairSize) crosshairFrame2.Visible = not hideCrosshair customTargetMarker2.Visible = (currentMode == "Custom") and (not hideCircle) local crossColor2 = adjustmentsSet and Color3.fromRGB(50, 255, 100) or Color3.fromRGB(50, 180, 255) hLine2.BackgroundColor3 = crossColor2 vLine2.BackgroundColor3 = crossColor2 else crosshairFrame2.Visible = false customTargetMarker2.Visible = false end -- Tertiary Indicator if extraTarget3Enabled and activeCores >= 3 then local touchX3, touchY3 = getTouchCoordinates(3) crosshairFrame3.Position = UDim2.fromOffset(touchX3, touchY3) crosshairFrame3.Size = UDim2.fromOffset(crosshairSize, crosshairSize) crosshairFrame3.Visible = not hideCrosshair customTargetMarker3.Visible = (currentMode == "Custom") and (not hideCircle) local crossColor3 = adjustmentsSet and Color3.fromRGB(50, 255, 100) or Color3.fromRGB(220, 50, 255) hLine3.BackgroundColor3 = crossColor3 vLine3.BackgroundColor3 = crossColor3 else crosshairFrame3.Visible = false customTargetMarker3.Visible = false end end -- Marker Drag Handler Creator local function setupMarkerDrag(marker) local dragging = false local dragStart, startPos marker.InputBegan:Connect(function(input) if not isLocked and (input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch) then dragging = true dragStart = input.Position startPos = marker.Position end end) trackConn(UserInputService.InputChanged:Connect(function(input) if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - dragStart marker.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) updateCrosshairIndicator() end end)) trackConn(UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end end)) end setupMarkerDrag(customTargetMarker1) setupMarkerDrag(customTargetMarker2) setupMarkerDrag(customTargetMarker3) -- Scrollable Menu Buttons Creator local function createMenuBtn(text, order, bg) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, -6, 0, 24) btn.BackgroundColor3 = bg btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.TextSize = 11 btn.Font = Enum.Font.GothamBold btn.Text = text btn.BorderSizePixel = 0 btn.LayoutOrder = order btn.Parent = settingsScroll local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, 6) c.Parent = btn return btn end local redirectBtn = createMenuBtn("Redirect Manual Taps: OFF", 1, Color3.fromRGB(45, 45, 50)) local extraTarget2Btn = createMenuBtn("Secondary Target Point (Core 2): OFF", 2, Color3.fromRGB(45, 45, 50)) local extraTarget3Btn = createMenuBtn("Tertiary Target Point (Core 3): OFF", 3, Color3.fromRGB(45, 45, 50)) local centerOptBtn = createMenuBtn("Target Mode: Center Screen [ACTIVE]", 4, Color3.fromRGB(40, 100, 140)) local customOptBtn = createMenuBtn("Target Mode: Custom / Draggable", 5, Color3.fromRGB(45, 45, 50)) local lockOptBtn = createMenuBtn("Lock Custom Target Location: OFF", 6, Color3.fromRGB(45, 45, 50)) local lockUIBtn = createMenuBtn("Lock Header UI Position: OFF", 7, Color3.fromRGB(45, 45, 50)) local hideCircleBtn = createMenuBtn("Hide Target Circle: OFF", 8, Color3.fromRGB(45, 45, 50)) local hideCrosshairBtn = createMenuBtn("Hide Crosshair Indicator: OFF", 9, Color3.fromRGB(45, 45, 50)) -- Dynamic Core Visibility Update local function updateTargetTogglesVisibility() extraTarget2Btn.Visible = (activeCores >= 2) extraTarget3Btn.Visible = (activeCores >= 3) end updateTargetTogglesVisibility() -- Size Controls Container local sizeFrame = Instance.new("Frame") sizeFrame.Size = UDim2.new(1, -6, 0, 24) sizeFrame.BackgroundTransparency = 1 sizeFrame.LayoutOrder = 10 sizeFrame.Parent = settingsScroll local sizeLabel = Instance.new("TextLabel") sizeLabel.Size = UDim2.new(0, 120, 1, 0) sizeLabel.BackgroundTransparency = 1 sizeLabel.TextColor3 = Color3.fromRGB(255, 255, 255) sizeLabel.TextSize = 11 sizeLabel.Font = Enum.Font.GothamBold sizeLabel.Text = "Crosshair Size: 16px" sizeLabel.Parent = sizeFrame local function createMiniBtn(text, posX, parent) local b = Instance.new("TextButton") b.Size = UDim2.new(0, 55, 1, 0) b.Position = UDim2.new(0, posX, 0, 0) b.BackgroundColor3 = Color3.fromRGB(55, 55, 60) b.TextColor3 = Color3.fromRGB(255, 255, 255) b.Text = text b.Font = Enum.Font.GothamBold b.TextSize = 10 b.Parent = parent local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, 4) c.Parent = b return b end createMiniBtn("-5", 130, sizeFrame).MouseButton1Click:Connect(function() crosshairSize = math.max(6, crosshairSize - 5) sizeLabel.Text = "Crosshair Size: "..crosshairSize.."px" updateCrosshairIndicator() end) createMiniBtn("-1", 190, sizeFrame).MouseButton1Click:Connect(function() crosshairSize = math.max(6, crosshairSize - 1) sizeLabel.Text = "Crosshair Size: "..crosshairSize.."px" updateCrosshairIndicator() end) createMiniBtn("+1", 250, sizeFrame).MouseButton1Click:Connect(function() crosshairSize = math.min(60, crosshairSize + 1) sizeLabel.Text = "Crosshair Size: "..crosshairSize.."px" updateCrosshairIndicator() end) createMiniBtn("+5", 310, sizeFrame).MouseButton1Click:Connect(function() crosshairSize = math.min(60, crosshairSize + 5) sizeLabel.Text = "Crosshair Size: "..crosshairSize.."px" updateCrosshairIndicator() end) -- Dedicated Target Mover Section local moverTargetBtn = createMenuBtn("🎯 Mover Adjusting: Target 1 (Red)", 11, Color3.fromRGB(60, 60, 80)) local function getSelectedOffset() if selectedMoverTarget == 2 then return offsetX2, offsetY2 elseif selectedMoverTarget == 3 then return offsetX3, offsetY3 else return offsetX1, offsetY1 end end local function setSelectedOffset(x, y) if selectedMoverTarget == 2 then offsetX2, offsetY2 = x, y elseif selectedMoverTarget == 3 then offsetX3, offsetY3 = x, y else offsetX1, offsetY1 = x, y end end local function createOffsetRow(labelText, order) local frame = Instance.new("Frame") frame.Size = UDim2.new(1, -6, 0, 24) frame.BackgroundTransparency = 1 frame.LayoutOrder = order frame.Parent = settingsScroll local label = Instance.new("TextLabel") label.Size = UDim2.new(0, 120, 1, 0) label.BackgroundTransparency = 1 label.TextColor3 = Color3.fromRGB(255, 255, 255) label.TextSize = 11 label.Font = Enum.Font.GothamBold label.Text = labelText label.Parent = frame local isX = labelText:find("X") ~= nil local function updateVal(delta) local curX, curY = getSelectedOffset() if isX then curX = curX + delta else curY = curY + delta end setSelectedOffset(curX, curY) label.Text = (isX and "Offset X: " or "Offset Y: ") .. (isX and curX or curY) adjustmentsSet = false updateCrosshairIndicator() end createMiniBtn("-10", 130, frame).MouseButton1Click:Connect(function() updateVal(-10) end) createMiniBtn("-1", 190, frame).MouseButton1Click:Connect(function() updateVal(-1) end) createMiniBtn("+1", 250, frame).MouseButton1Click:Connect(function() updateVal(1) end) createMiniBtn("+10", 310, frame).MouseButton1Click:Connect(function() updateVal(10) end) return label end local xLabel = createOffsetRow("Offset X: 0", 12) local yLabel = createOffsetRow("Offset Y: 0", 13) local function refreshMoverLabels() local names = {"Target 1 (Red)", "Target 2 (Cyan)", "Target 3 (Purple)"} moverTargetBtn.Text = "🎯 Mover Adjusting: " .. names[selectedMoverTarget] local curX, curY = getSelectedOffset() xLabel.Text = "Offset X: " .. curX yLabel.Text = "Offset Y: " .. curY end moverTargetBtn.MouseButton1Click:Connect(function() selectedMoverTarget = selectedMoverTarget + 1 if selectedMoverTarget > activeCores then selectedMoverTarget = 1 end refreshMoverLabels() end) -- Dedicated Per-Core Speed Control Section local indSpeedToggleBtn = createMenuBtn("Independent Core Speeds: OFF (Equal Speeds)", 14, Color3.fromRGB(45, 45, 50)) local speedCoreSelectBtn = createMenuBtn("⏱ Speed Adjusting: Core 1 (Red)", 15, Color3.fromRGB(70, 50, 90)) local coreSpeedFrame = Instance.new("Frame") coreSpeedFrame.Size = UDim2.new(1, -6, 0, 24) coreSpeedFrame.BackgroundTransparency = 1 coreSpeedFrame.LayoutOrder = 16 coreSpeedFrame.Parent = settingsScroll local coreSpeedLabel = Instance.new("TextLabel") coreSpeedLabel.Size = UDim2.new(0, 180, 1, 0) coreSpeedLabel.BackgroundTransparency = 1 coreSpeedLabel.TextColor3 = Color3.fromRGB(255, 255, 255) coreSpeedLabel.TextSize = 11 coreSpeedLabel.Font = Enum.Font.GothamBold coreSpeedLabel.Text = "Core 1 Speed: 0.001s" coreSpeedLabel.TextXAlignment = Enum.TextXAlignment.Left coreSpeedLabel.Parent = coreSpeedFrame local confirmSpeedBtn = Instance.new("TextButton") confirmSpeedBtn.Size = UDim2.new(0, 180, 1, 0) confirmSpeedBtn.Position = UDim2.new(0, 185, 0, 0) confirmSpeedBtn.BackgroundColor3 = Color3.fromRGB(40, 120, 70) confirmSpeedBtn.TextColor3 = Color3.fromRGB(255, 255, 255) confirmSpeedBtn.TextSize = 10 confirmSpeedBtn.Font = Enum.Font.GothamBold confirmSpeedBtn.Text = "🔒 LOCK SPEED TO CORE" confirmSpeedBtn.Parent = coreSpeedFrame local confirmCorner = Instance.new("UICorner") confirmCorner.CornerRadius = UDim.new(0, 6) confirmCorner.Parent = confirmSpeedBtn local function refreshSpeedControls() local names = {"Core 1 (Red)", "Core 2 (Cyan)", "Core 3 (Purple)"} speedCoreSelectBtn.Text = "⏱ Speed Adjusting: " .. names[selectedSpeedCore] coreSpeedLabel.Text = "Core " .. selectedSpeedCore .. " Speed: " .. string.format("%.4f", coreDelays[selectedSpeedCore] or 0.001) .. "s" end confirmSpeedBtn.MouseButton1Click:Connect(function() local val = tonumber(speedBox.Text) if val then clickDelay = math.max(0, val) end -- Lock selected core delay coreDelays[selectedSpeedCore] = clickDelay coreSpeedLabel.Text = "Core " .. selectedSpeedCore .. " Speed: " .. string.format("%.4f", clickDelay) .. "s" -- Auto-Enable Independent Speeds mode so individual speeds take effect immediately independentSpeeds = true indSpeedToggleBtn.Text = "Independent Core Speeds: ON (Custom Per Core)" indSpeedToggleBtn.BackgroundColor3 = Color3.fromRGB(40, 140, 80) confirmSpeedBtn.Text = "✔ LOCKED (" .. clickDelay .. "s)" confirmSpeedBtn.BackgroundColor3 = Color3.fromRGB(50, 180, 90) task.delay(1, function() confirmSpeedBtn.Text = "🔒 LOCK SPEED TO CORE" confirmSpeedBtn.BackgroundColor3 = Color3.fromRGB(40, 120, 70) end) end) indSpeedToggleBtn.MouseButton1Click:Connect(function() independentSpeeds = not independentSpeeds indSpeedToggleBtn.Text = "Independent Core Speeds: " .. (independentSpeeds and "ON (Custom Per Core)" or "OFF (Equal Speeds)") indSpeedToggleBtn.BackgroundColor3 = independentSpeeds and Color3.fromRGB(40, 140, 80) or Color3.fromRGB(45, 45, 50) end) speedCoreSelectBtn.MouseButton1Click:Connect(function() selectedSpeedCore = selectedSpeedCore + 1 if selectedSpeedCore > activeCores then selectedSpeedCore = 1 end refreshSpeedControls() end) -- Lock & Save Buttons local setAdjBtn = createMenuBtn("✔ LOCK CROSSHAIR ALIGNMENT", 17, Color3.fromRGB(40, 140, 60)) local saveBtn = createMenuBtn("💾 SAVE CONFIGURATION", 18, Color3.fromRGB(180, 100, 30)) setAdjBtn.MouseButton1Click:Connect(function() adjustmentsSet = not adjustmentsSet setAdjBtn.BackgroundColor3 = adjustmentsSet and Color3.fromRGB(40, 180, 80) or Color3.fromRGB(40, 140, 60) setAdjBtn.Text = adjustmentsSet and "✔ CROSSHAIR LOCKED (GREEN)" or "✔ LOCK CROSSHAIR ALIGNMENT" updateCrosshairIndicator() end) -- Mode Toggles Connections redirectBtn.MouseButton1Click:Connect(function() redirectTaps = not redirectTaps redirectBtn.Text = "Redirect Manual Taps: " .. (redirectTaps and "ON" or "OFF") redirectBtn.BackgroundColor3 = redirectTaps and Color3.fromRGB(40, 140, 80) or Color3.fromRGB(45, 45, 50) end) extraTarget2Btn.MouseButton1Click:Connect(function() extraTarget2Enabled = not extraTarget2Enabled extraTarget2Btn.Text = "Secondary Target Point (Core 2): " .. (extraTarget2Enabled and "ON" or "OFF") extraTarget2Btn.BackgroundColor3 = extraTarget2Enabled and Color3.fromRGB(40, 140, 80) or Color3.fromRGB(45, 45, 50) updateCrosshairIndicator() end) extraTarget3Btn.MouseButton1Click:Connect(function() extraTarget3Enabled = not extraTarget3Enabled extraTarget3Btn.Text = "Tertiary Target Point (Core 3): " .. (extraTarget3Enabled and "ON" or "OFF") extraTarget3Btn.BackgroundColor3 = extraTarget3Enabled and Color3.fromRGB(40, 140, 80) or Color3.fromRGB(45, 45, 50) updateCrosshairIndicator() end) centerOptBtn.MouseButton1Click:Connect(function() currentMode = "Center" centerOptBtn.BackgroundColor3 = Color3.fromRGB(40, 100, 140) centerOptBtn.Text = "Target Mode: Center Screen [ACTIVE]" customOptBtn.BackgroundColor3 = Color3.fromRGB(45, 45, 50) customOptBtn.Text = "Target Mode: Custom / Draggable" updateCrosshairIndicator() end) customOptBtn.MouseButton1Click:Connect(function() currentMode = "Custom" customOptBtn.BackgroundColor3 = Color3.fromRGB(40, 100, 140) customOptBtn.Text = "Target Mode: Custom / Draggable [ACTIVE]" centerOptBtn.BackgroundColor3 = Color3.fromRGB(45, 45, 50) centerOptBtn.Text = "Target Mode: Center Screen" updateCrosshairIndicator() end) lockOptBtn.MouseButton1Click:Connect(function() isLocked = not isLocked lockOptBtn.Text = "Lock Custom Target Location: " .. (isLocked and "ON" or "OFF") lockOptBtn.BackgroundColor3 = isLocked and Color3.fromRGB(140, 60, 60) or Color3.fromRGB(45, 45, 50) customTargetMarker1.Active = not isLocked customTargetMarker2.Active = not isLocked customTargetMarker3.Active = not isLocked end) lockUIBtn.MouseButton1Click:Connect(function() isUILocked = not isUILocked lockUIBtn.Text = "Lock Header UI Position: " .. (isUILocked and "ON" or "OFF") lockUIBtn.BackgroundColor3 = isUILocked and Color3.fromRGB(140, 60, 60) or Color3.fromRGB(45, 45, 50) end) hideCircleBtn.MouseButton1Click:Connect(function() hideCircle = not hideCircle hideCircleBtn.Text = "Hide Target Circle: " .. (hideCircle and "ON" or "OFF") hideCircleBtn.BackgroundColor3 = hideCircle and Color3.fromRGB(140, 60, 60) or Color3.fromRGB(45, 45, 50) updateCrosshairIndicator() end) hideCrosshairBtn.MouseButton1Click:Connect(function() hideCrosshair = not hideCrosshair hideCrosshairBtn.Text = "Hide Crosshair Indicator: " .. (hideCrosshair and "ON" or "OFF") hideCrosshairBtn.BackgroundColor3 = hideCrosshair and Color3.fromRGB(140, 60, 60) or Color3.fromRGB(45, 45, 50) updateCrosshairIndicator() end) -- Core Toggle Button coresBtn.MouseButton1Click:Connect(function() activeCores = activeCores + 1 if activeCores > 3 then activeCores = 1 end coresBtn.Text = "Mode: " .. activeCores .. " Core" .. (activeCores > 1 and "s (Insane)" or " (Fast)") if selectedMoverTarget > activeCores then selectedMoverTarget = 1 end if selectedSpeedCore > activeCores then selectedSpeedCore = 1 end updateTargetTogglesVisibility() refreshMoverLabels() refreshSpeedControls() updateCrosshairIndicator() end) -- Visual Cursors local cursors = {} for i = 1, 3 do local c = Instance.new("ImageLabel") c.Name = "Cursor_"..i c.Size = UDim2.fromOffset(24, 24) c.AnchorPoint = Vector2.new(0.5, 0.5) c.Image = "rbxassetid://103393660678915" c.BackgroundTransparency = 1 c.Visible = false c.Active = false c.ZIndex = 9999 + i c.Parent = screenGui cursors[i] = c end -- Manual Tap Interceptor trackConn(UserInputService.InputBegan:Connect(function(input, gameProcessed) if not redirectTaps or isRedirecting then return end if gameProcessed then return end if input.UserInputType == Enum.UserInputType.Touch then local touches = UserInputService:GetTouches() if #touches > 1 then return end isRedirecting = true local touchX, touchY = getTouchCoordinates(1) pcall(function() VirtualInputManager:SendTouchEvent(88888, 0, touchX, touchY) VirtualInputManager:SendTouchEvent(88888, 2, touchX, touchY) end) task.delay(0.04, function() isRedirecting = false end) end end)) -- High-Speed Loop Firing Engine local function startClickLoop() if independentSpeeds then -- Multi-threaded Independent Loops per Core with explicitly isolated arguments for i = 1, activeCores do task.spawn(function(coreIndex) while clicking do local touchX, touchY = getTouchCoordinates(coreIndex) cursors[coreIndex].Position = UDim2.fromOffset(touchX, touchY) cursors[coreIndex].Visible = true executeSingleFire(coreIndex) local delayVal = coreDelays[coreIndex] or 0.001 if delayVal > 0 then task.wait(delayVal) else task.wait() end end cursors[coreIndex].Visible = false end, i) end else -- Unified Speed Firing Loop task.spawn(function() while clicking do for i = 1, activeCores do local touchX, touchY = getTouchCoordinates(i) cursors[i].Position = UDim2.fromOffset(touchX, touchY) cursors[i].Visible = true end executeAllFireEvents() if clickDelay > 0 then task.wait(clickDelay) else task.wait() end end for i = 1, 3 do cursors[i].Visible = false end end) end end -- Save & Load Config System local function loadConfig() if isfile and isfile(CONFIG_FILE) and readfile then local success, data = pcall(function() return HttpService:JSONDecode(readfile(CONFIG_FILE)) end) if success and type(data) == "table" then clickDelay = tonumber(data.clickDelay) or clickDelay activeCores = tonumber(data.activeCores) or activeCores extraTarget2Enabled = data.extraTarget2Enabled == true extraTarget3Enabled = data.extraTarget3Enabled == true currentMode = tostring(data.currentMode) or currentMode independentSpeeds = data.independentSpeeds == true if data.coreDelays and type(data.coreDelays) == "table" then coreDelays[1] = tonumber(data.coreDelays[1]) or coreDelays[1] coreDelays[2] = tonumber(data.coreDelays[2]) or coreDelays[2] coreDelays[3] = tonumber(data.coreDelays[3]) or coreDelays[3] end offsetX1 = tonumber(data.offsetX1) or offsetX1 offsetY1 = tonumber(data.offsetY1) or offsetY1 offsetX2 = tonumber(data.offsetX2) or offsetX2 offsetY2 = tonumber(data.offsetY2) or offsetY2 offsetX3 = tonumber(data.offsetX3) or offsetX3 offsetY3 = tonumber(data.offsetY3) or offsetY3 crosshairSize = tonumber(data.crosshairSize) or crosshairSize hideCircle = data.hideCircle == true hideCrosshair = data.hideCrosshair == true isLocked = data.isLocked == true isUILocked = data.isUILocked == true redirectTaps = data.redirectTaps == true speedBox.Text = tostring(clickDelay) coresBtn.Text = "Mode: " .. activeCores .. " Core" .. (activeCores > 1 and "s (Insane)" or " (Fast)") updateTargetTogglesVisibility() indSpeedToggleBtn.Text = "Independent Core Speeds: " .. (independentSpeeds and "ON (Custom Per Core)" or "OFF (Equal Speeds)") indSpeedToggleBtn.BackgroundColor3 = independentSpeeds and Color3.fromRGB(40, 140, 80) or Color3.fromRGB(45, 45, 50) extraTarget2Btn.Text = "Secondary Target Point (Core 2): " .. (extraTarget2Enabled and "ON" or "OFF") extraTarget2Btn.BackgroundColor3 = extraTarget2Enabled and Color3.fromRGB(40, 140, 80) or Color3.fromRGB(45, 45, 50) extraTarget3Btn.Text = "Tertiary Target Point (Core 3): " .. (extraTarget3Enabled and "ON" or "OFF") extraTarget3Btn.BackgroundColor3 = extraTarget3Enabled and Color3.fromRGB(40, 140, 80) or Color3.fromRGB(45, 45, 50) redirectBtn.Text = "Redirect Manual Taps: " .. (redirectTaps and "ON" or "OFF") redirectBtn.BackgroundColor3 = redirectTaps and Color3.fromRGB(40, 140, 80) or Color3.fromRGB(45, 45, 50) lockOptBtn.Text = "Lock Custom Target Location: " .. (isLocked and "ON" or "OFF") lockOptBtn.BackgroundColor3 = isLocked and Color3.fromRGB(140, 60, 60) or Color3.fromRGB(45, 45, 50) lockUIBtn.Text = "Lock Header UI Position: " .. (isUILocked and "ON" or "OFF") lockUIBtn.BackgroundColor3 = isUILocked and Color3.fromRGB(140, 60, 60) or Color3.fromRGB(45, 45, 50) hideCircleBtn.Text = "Hide Target Circle: " .. (hideCircle and "ON" or "OFF") hideCircleBtn.BackgroundColor3 = hideCircle and Color3.fromRGB(140, 60, 60) or Color3.fromRGB(45, 45, 50) hideCrosshairBtn.Text = "Hide Crosshair Indicator: " .. (hideCrosshair and "ON" or "OFF") hideCrosshairBtn.BackgroundColor3 = hideCrosshair and Color3.fromRGB(140, 60, 60) or Color3.fromRGB(45, 45, 50) if currentMode == "Custom" then customOptBtn.BackgroundColor3 = Color3.fromRGB(40, 100, 140) customOptBtn.Text = "Target Mode: Custom / Draggable [ACTIVE]" centerOptBtn.BackgroundColor3 = Color3.fromRGB(45, 45, 50) centerOptBtn.Text = "Target Mode: Center Screen" end sizeLabel.Text = "Crosshair Size: " .. crosshairSize .. "px" refreshMoverLabels() refreshSpeedControls() end end end saveBtn.MouseButton1Click:Connect(function() local data = { clickDelay = clickDelay, activeCores = activeCores, extraTarget2Enabled = extraTarget2Enabled, extraTarget3Enabled = extraTarget3Enabled, currentMode = currentMode, independentSpeeds = independentSpeeds, coreDelays = coreDelays, offsetX1 = offsetX1, offsetY1 = offsetY1, offsetX2 = offsetX2, offsetY2 = offsetY2, offsetX3 = offsetX3, offsetY3 = offsetY3, crosshairSize = crosshairSize, hideCircle = hideCircle, hideCrosshair = hideCrosshair, isLocked = isLocked, isUILocked = isUILocked, redirectTaps = redirectTaps } if writefile then writefile(CONFIG_FILE, HttpService:JSONDecode(data)) saveBtn.Text = "💾 CONFIG SAVED!" task.delay(1.5, function() saveBtn.Text = "💾 SAVE CONFIGURATION" end) end end) speedBox.FocusLost:Connect(function() local val = tonumber(speedBox.Text) if val then clickDelay = math.max(0, val) else speedBox.Text = tostring(clickDelay) end end) toggleBtn.MouseButton1Click:Connect(function() clicking = not clicking if clicking then TweenService:Create(toggleBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(180, 100, 40)}):Play() toggleBtn.Text = "ON" startClickLoop() else TweenService:Create(toggleBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(45, 45, 50)}):Play() toggleBtn.Text = "OFF" for i = 1, 3 do cursors[i].Visible = false end end end) settingsBtn.MouseButton1Click:Connect(function() settingsPanel.Visible = not settingsPanel.Visible updateCrosshairIndicator() end) loadConfig() updateCrosshairIndicator()