-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] local ReplicatedStorage = game:GetService("ReplicatedStorage") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Players = game:GetService("Players") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local sendSlap = ReplicatedStorage:WaitForChild("events"):WaitForChild("SendSlap") -- Destroy previous UI instances if getgenv().AutoSlapUI then getgenv().AutoSlapUI:Destroy() end if getgenv().TrackerUI then getgenv().TrackerUI:Destroy() end -- Clear previous event connections on re-execution if getgenv().SlapConnections then for _, conn in ipairs(getgenv().SlapConnections) do conn:Disconnect() end end getgenv().SlapConnections = {} -- ================= CONFIGURATION STATE ================= local config = { enabled = false, trackerEnabled = false, -- OFF by default hitChance = 100, targetHeight = 1, -- Default target set to 1 missHeight = 0.70, triggerThreshold = 0.88, isDebounced = false } -- ================= DRAGGABLE UTILITY ================= local function makeDraggable(guiObject, dragHandle) dragHandle = dragHandle or guiObject local dragging, dragInput, dragStart, startPos dragHandle.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = guiObject.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) dragHandle.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 guiObject.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) end -- ================= MAIN CONTROL GUI ================= local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "AutoSlapLegitGUI" ScreenGui.ResetOnSpawn = false ScreenGui.DisplayOrder = 999999999 ScreenGui.Parent = playerGui getgenv().AutoSlapUI = ScreenGui local MainFrame = Instance.new("Frame") MainFrame.Name = "MainFrame" MainFrame.Size = UDim2.new(0, 240, 0, 285) MainFrame.Position = UDim2.new(0.5, -120, 0.4, -142) MainFrame.BackgroundColor3 = Color3.fromRGB(18, 18, 22) MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.Parent = ScreenGui local MainUICorner = Instance.new("UICorner", MainFrame) MainUICorner.CornerRadius = UDim.new(0, 12) local MainUIStroke = Instance.new("UIStroke", MainFrame) MainUIStroke.Color = Color3.fromRGB(45, 45, 55) MainUIStroke.Thickness = 1.5 -- Header local Header = Instance.new("Frame", MainFrame) Header.Size = UDim2.new(1, 0, 0, 38) Header.BackgroundColor3 = Color3.fromRGB(25, 25, 32) Header.BorderSizePixel = 0 local HeaderCorner = Instance.new("UICorner", Header) HeaderCorner.CornerRadius = UDim.new(0, 12) local Title = Instance.new("TextLabel", Header) Title.Size = UDim2.new(1, -45, 1, 0) Title.Position = UDim2.new(0, 14, 0, 0) Title.Text = "Auto Slap Control" Title.TextColor3 = Color3.fromRGB(240, 240, 245) Title.TextXAlignment = Enum.TextXAlignment.Left Title.Font = Enum.Font.GothamBold Title.TextSize = 14 Title.BackgroundTransparency = 1 local MinimizeBtn = Instance.new("TextButton", Header) MinimizeBtn.Size = UDim2.new(0, 26, 0, 26) MinimizeBtn.Position = UDim2.new(1, -32, 0, 6) MinimizeBtn.Text = "-" MinimizeBtn.TextColor3 = Color3.fromRGB(180, 180, 190) MinimizeBtn.Font = Enum.Font.GothamBold MinimizeBtn.TextSize = 18 MinimizeBtn.BackgroundColor3 = Color3.fromRGB(35, 35, 45) MinimizeBtn.BorderSizePixel = 0 local MinCorner = Instance.new("UICorner", MinimizeBtn) MinCorner.CornerRadius = UDim.new(0, 6) -- Minimized Floating Button local MiniBtn = Instance.new("TextButton", ScreenGui) MiniBtn.Name = "MiniButton" MiniBtn.Size = UDim2.new(0, 52, 0, 52) MiniBtn.Position = UDim2.new(0, 10, 0.5, -26) MiniBtn.BackgroundColor3 = Color3.fromRGB(25, 25, 32) MiniBtn.Text = "SLAP" MiniBtn.TextColor3 = Color3.fromRGB(240, 240, 245) MiniBtn.Font = Enum.Font.GothamBold MiniBtn.TextSize = 12 MiniBtn.Visible = false MiniBtn.Active = true local MiniCorner = Instance.new("UICorner", MiniBtn) MiniCorner.CornerRadius = UDim.new(0, 16) local MiniStroke = Instance.new("UIStroke", MiniBtn) MiniStroke.Color = Color3.fromRGB(60, 60, 75) MiniStroke.Thickness = 1.5 -- Main Toggle Button local ToggleBtn = Instance.new("TextButton", MainFrame) ToggleBtn.Size = UDim2.new(1, -28, 0, 36) ToggleBtn.Position = UDim2.new(0, 14, 0, 48) ToggleBtn.BackgroundColor3 = Color3.fromRGB(190, 45, 45) ToggleBtn.Text = "Status: OFF" ToggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) ToggleBtn.Font = Enum.Font.GothamBold ToggleBtn.TextSize = 13 local ToggleCorner = Instance.new("UICorner", ToggleBtn) ToggleCorner.CornerRadius = UDim.new(0, 8) -- Input helper local function createInputGroup(yPos, labelText, defaultText) local label = Instance.new("TextLabel", MainFrame) label.Size = UDim2.new(0.55, -10, 0, 30) label.Position = UDim2.new(0, 14, 0, yPos) label.Text = labelText label.TextColor3 = Color3.fromRGB(160, 160, 175) label.Font = Enum.Font.Gotham label.TextSize = 13 label.TextXAlignment = Enum.TextXAlignment.Left label.BackgroundTransparency = 1 local box = Instance.new("TextBox", MainFrame) box.Size = UDim2.new(0.45, -14, 0, 30) box.Position = UDim2.new(0.55, 0, 0, yPos) box.Text = defaultText box.TextColor3 = Color3.fromRGB(240, 240, 245) box.BackgroundColor3 = Color3.fromRGB(25, 25, 32) box.Font = Enum.Font.GothamMedium box.TextSize = 13 local boxCorner = Instance.new("UICorner", box) boxCorner.CornerRadius = UDim.new(0, 8) local boxStroke = Instance.new("UIStroke", box) boxStroke.Color = Color3.fromRGB(40, 40, 50) boxStroke.Thickness = 1 return box end local HitChanceBox = createInputGroup(94, "Hit Chance (%):", "100") local TargetHeightBox = createInputGroup(134, "Default Target:", "1") local MissHeightBox = createInputGroup(174, "Miss Height:", "0.7") -- Tracker Toggle Button local TrackerToggleBtn = Instance.new("TextButton", MainFrame) TrackerToggleBtn.Size = UDim2.new(1, -28, 0, 34) TrackerToggleBtn.Position = UDim2.new(0, 14, 0, 236) TrackerToggleBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 50) TrackerToggleBtn.Text = "Slap Tracker: OFF" TrackerToggleBtn.TextColor3 = Color3.fromRGB(180, 180, 190) TrackerToggleBtn.Font = Enum.Font.GothamBold TrackerToggleBtn.TextSize = 13 local TrackerToggleCorner = Instance.new("UICorner", TrackerToggleBtn) TrackerToggleCorner.CornerRadius = UDim.new(0, 8) makeDraggable(MainFrame, Header) makeDraggable(MiniBtn, MiniBtn) -- ================= TRANSPARENT SLAP TRACKER GUI ================= local TrackerFrame = Instance.new("Frame", ScreenGui) TrackerFrame.Name = "SlapTrackerFrame" TrackerFrame.Size = UDim2.new(0, 200, 0, 50) TrackerFrame.Position = UDim2.new(0.5, -100, 0.1, 0) TrackerFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 20) TrackerFrame.BackgroundTransparency = 0.4 TrackerFrame.BorderSizePixel = 0 TrackerFrame.Active = true TrackerFrame.Visible = false -- Hidden by default getgenv().TrackerUI = TrackerFrame local TrackerCorner = Instance.new("UICorner", TrackerFrame) TrackerCorner.CornerRadius = UDim.new(0, 10) local TrackerStroke = Instance.new("UIStroke", TrackerFrame) TrackerStroke.Color = Color3.fromRGB(255, 255, 255) TrackerStroke.Transparency = 0.6 TrackerStroke.Thickness = 1 local TrackerText = Instance.new("TextLabel", TrackerFrame) TrackerText.Size = UDim2.new(1, -10, 1, 0) TrackerText.Position = UDim2.new(0, 5, 0, 0) TrackerText.Text = "Last Slapper:\n[ Waiting for slap... ]" TrackerText.TextColor3 = Color3.fromRGB(240, 240, 245) TrackerText.Font = Enum.Font.GothamMedium TrackerText.TextSize = 12 TrackerText.BackgroundTransparency = 1 makeDraggable(TrackerFrame, TrackerFrame) -- ================= STRICT LOCAL SLAPPER DETECTION ================= local lastHealth = 100 local lastVelocity = Vector3.zero local function getNearestEnemyPlayer() local char = player.Character if not char or not char:FindFirstChild("HumanoidRootPart") then return nil end local myPos = char.HumanoidRootPart.Position local nearestPlayer = nil local shortestDistance = 22 for _, p in ipairs(Players:GetPlayers()) do if p ~= player and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then local targetPos = p.Character.HumanoidRootPart.Position local dist = (myPos - targetPos).Magnitude if dist < shortestDistance then shortestDistance = dist nearestPlayer = p end end end return nearestPlayer end local function triggerTracker(sourceInfo) if not config.trackerEnabled then return end local slapper = getNearestEnemyPlayer() if slapper then TrackerText.Text = "Slapped by:\n" .. slapper.Name TrackerText.TextColor3 = Color3.fromRGB(255, 100, 100) task.delay(3, function() if TrackerText.Text:find(slapper.Name) then TrackerText.TextColor3 = Color3.fromRGB(240, 240, 245) end end) end end RunService.RenderStepped:Connect(function() local char = player.Character if not char then return end local humanoid = char:FindFirstChildOfClass("Humanoid") local root = char:FindFirstChild("HumanoidRootPart") if humanoid then if humanoid.Health < lastHealth then triggerTracker("Damage") lastHealth = humanoid.Health elseif humanoid.Health > lastHealth then lastHealth = humanoid.Health end end if root then local currentVelocity = root.AssemblyLinearVelocity local accelVector = (currentVelocity - lastVelocity) local accelMagnitude = accelVector.Magnitude if accelMagnitude > 55 then local slapper = getNearestEnemyPlayer() if slapper and slapper.Character and slapper.Character:FindFirstChild("HumanoidRootPart") then local slapperPos = slapper.Character.HumanoidRootPart.Position local awayDirection = (root.Position - slapperPos).Unit local dotProduct = accelVector.Unit:Dot(awayDirection) if dotProduct > 0.2 then triggerTracker("0-Dmg Impulse") end end end lastVelocity = currentVelocity end end) player.CharacterAdded:Connect(function(char) config.isDebounced = false local hum = char:WaitForChild("Humanoid", 5) if hum then lastHealth = hum.Health end lastVelocity = Vector3.zero end) -- ================= INTERACTION LOGIC ================= MinimizeBtn.MouseButton1Click:Connect(function() MainFrame.Visible = false MiniBtn.Visible = true end) MiniBtn.MouseButton1Click:Connect(function() MainFrame.Visible = true MiniBtn.Visible = false end) ToggleBtn.MouseButton1Click:Connect(function() config.enabled = not config.enabled if config.enabled then ToggleBtn.Text = "Status: ON" ToggleBtn.BackgroundColor3 = Color3.fromRGB(40, 170, 75) else ToggleBtn.Text = "Status: OFF" ToggleBtn.BackgroundColor3 = Color3.fromRGB(190, 45, 45) end end) TrackerToggleBtn.MouseButton1Click:Connect(function() config.trackerEnabled = not config.trackerEnabled TrackerFrame.Visible = config.trackerEnabled if config.trackerEnabled then TrackerToggleBtn.Text = "Slap Tracker: ON" TrackerToggleBtn.BackgroundColor3 = Color3.fromRGB(40, 120, 200) TrackerToggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) else TrackerToggleBtn.Text = "Slap Tracker: OFF" TrackerToggleBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 50) TrackerToggleBtn.TextColor3 = Color3.fromRGB(180, 180, 190) end end) HitChanceBox.FocusLost:Connect(function() local val = tonumber(HitChanceBox.Text) if val then config.hitChance = math.clamp(val, 0, 100) else HitChanceBox.Text = tostring(config.hitChance) end end) TargetHeightBox.FocusLost:Connect(function() local val = tonumber(TargetHeightBox.Text) if val then config.targetHeight = math.clamp(val, 0, 1) else TargetHeightBox.Text = tostring(config.targetHeight) end end) MissHeightBox.FocusLost:Connect(function() local val = tonumber(MissHeightBox.Text) if val then config.missHeight = math.clamp(val, 0, 1) else MissHeightBox.Text = tostring(config.missHeight) end end) -- ================= DYNAMIC SLAP METER BINDING ================= local function getBarFillPercentage(colorTrack, bar) if not colorTrack or not bar or not colorTrack.Parent or not bar.Parent then return 0 end local trackTop = colorTrack.AbsolutePosition.Y local trackHeight = colorTrack.AbsoluteSize.Y local barTop = bar.AbsolutePosition.Y local posPercent = 1 - ((barTop - trackTop) / trackHeight) local scalePercent = bar.Size.Y.Scale return math.max(posPercent, scalePercent) end local function bindMeterEvents(gameGui) local meter = gameGui:WaitForChild("meter", 10) if not meter then return end local colorTrack = meter:WaitForChild("color", 10) if not colorTrack then return end local bar = colorTrack:WaitForChild("bar", 10) if not bar then return end local function checkAndSlap() if not config.enabled or config.isDebounced then return end local currentFill = getBarFillPercentage(colorTrack, bar) if currentFill >= config.triggerThreshold then config.isDebounced = true local roll = math.random(1, 100) local chosenHeight = (roll <= config.hitChance) and config.targetHeight or config.missHeight sendSlap:FireServer(chosenHeight) task.wait(0.3) config.isDebounced = false end end local connPos = bar:GetPropertyChangedSignal("AbsolutePosition"):Connect(checkAndSlap) local connSize = bar:GetPropertyChangedSignal("Size"):Connect(checkAndSlap) table.insert(getgenv().SlapConnections, connPos) table.insert(getgenv().SlapConnections, connSize) end local function setupGuiListener() local gameGui = playerGui:FindFirstChild("ScreenGui") if gameGui then task.spawn(bindMeterEvents, gameGui) end local guiAddedConn = playerGui.ChildAdded:Connect(function(child) if child.Name == "ScreenGui" then task.spawn(bindMeterEvents, child) end end) table.insert(getgenv().SlapConnections, guiAddedConn) end setupGuiListener()