-- ReefHub Key System + Blade Ball Pro v19.0 -- Key format: XXXX-XXXX-XXXX local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") local TweenService = game:GetService("TweenService") local KEY_URL = "https://work.ink/2Z3w/keydestination" local MAIN_SCRIPT = [=[ --[[ BLADE BALL PRO SCRIPT v19.0 (Close-Combat Tuning) Author: Gemini | Fine-tuned settings for close-range duels Features: - Parry Spam Mode (Overcomes latency with continuous clicking) - Speed-Sensitive Aggressive Parry Mode - Smart Auto Parry (Predictive AI) - Auto Aim & Walk - Toggle all features via configurable GUI ]] -- ===[ A Y A R L A R ]=== local CONFIG = { -- Automatic Parry Settings ParryDistanceLimit = 35, -- Base parry distance for aggressive mode (studs) ParryDistanceBaseSpeed = 70, -- Speed at which the parry distance starts scaling SpamDistanceThreshold = 40, -- Distance to start spam clicking (studs) ParrySpamInterval = 0.03, -- Time interval between clicks in spam mode (seconds) ParryCooldown = 0.3, -- Cooldown after a successful parry (seconds) -- Auto Walk Settings AutoWalkDistance = 15, -- Visual Settings ShowHitboxLine = true, ShowGuiKey = Enum.KeyCode.RightShift } -- ===[ MODULE IMPORTS ]=== local RunService = game:GetService("RunService") local Players = game:GetService("Players") local VirtualInputManager = game:GetService("VirtualInputManager") local UserInputService = game:GetService("UserInputService") local CoreGui = game:GetService("CoreGui") local ReplicatedStorage = game:GetService("ReplicatedStorage") -- ===[ CORE VARIABLES ]=== local Player = Players.LocalPlayer local connection local previousVelocity = nil local previousPlayerPosition = nil local hitboxLine = nil -- Toggles for features controlled by the GUI local enabled = { Parry = false, AggressiveParry = false, SpamParry = false, Aim = false, Walk = false, Hitbox = true } local debounce = { Parry = false } local isSpamming = false local spamTask = nil -- ===[ HELPER FUNCTIONS ]=== local function GetBallFromFolder(folder) for _, ball in ipairs(folder:GetChildren()) do if ball:GetAttribute("realBall") then if ball:GetAttribute("parried") == nil then ball:SetAttribute("parried", false) end return ball end end return nil end local function ResetConnection() if connection then connection:Disconnect() connection = nil end end local function UpdateHitboxLine(startPos, endPos) if not hitboxLine then hitboxLine = Instance.new("Part") hitboxLine.Anchored = true hitboxLine.CanCollide = false hitboxLine.Color = Color3.new(1, 0, 0) hitboxLine.Material = Enum.Material.Neon hitboxLine.Transparency = 0.3 hitboxLine.Parent = workspace end if enabled.Hitbox then local distance = (startPos - endPos).Magnitude hitboxLine.Size = Vector3.new(0.2, 0.2, distance) hitboxLine.CFrame = CFrame.new(startPos, endPos) * CFrame.new(0, 0, -distance / 2) hitboxLine.Transparency = 0.3 else hitboxLine.Transparency = 1 end end local function StartSpammingClicks() if isSpamming then return end isSpamming = true spamTask = task.spawn(function() while isSpamming do VirtualInputManager:SendMouseButtonEvent(0, 0, 0, true, game, 0) task.wait(CONFIG.ParrySpamInterval) end end) end local function StopSpammingClicks() if not isSpamming then return end isSpamming = false if spamTask then task.cancel(spamTask) spamTask = nil end end -- ===[ GUI SETUP ]=== local screenGui local function createGui() screenGui = Instance.new("ScreenGui") screenGui.Name = "BladeBallProGUI" screenGui.Parent = CoreGui screenGui.ResetOnSpawn = false screenGui.Enabled = true local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(0, 200, 0, 155) mainFrame.Position = UDim2.new(1, -210, 0.1, 0) mainFrame.BackgroundColor3 = Color3.new(0.15, 0.15, 0.15) mainFrame.BorderSizePixel = 1 mainFrame.BorderColor3 = Color3.new(0.05, 0.05, 0.05) mainFrame.Draggable = true mainFrame.Parent = screenGui local titleBar = Instance.new("TextLabel") titleBar.Size = UDim2.new(1, 0, 0, 20) titleBar.Position = UDim2.new(0, 0, 0, 0) titleBar.Font = Enum.Font.SourceSansBold titleBar.TextSize = 16 titleBar.Text = "Blade Ball Pro v19.0" titleBar.TextColor3 = Color3.new(1, 1, 1) titleBar.BackgroundColor3 = Color3.new(0.25, 0.25, 0.25) titleBar.Parent = mainFrame local paddingFrame = Instance.new("Frame") paddingFrame.Size = UDim2.new(1, 0, 1, -20) paddingFrame.Position = UDim2.new(0, 0, 0, 20) paddingFrame.BackgroundTransparency = 1 paddingFrame.Parent = mainFrame local layout = Instance.new("UIListLayout") layout.FillDirection = Enum.FillDirection.Vertical layout.Padding = UDim.new(0, 5) layout.SortOrder = Enum.SortOrder.LayoutOrder layout.Parent = paddingFrame local function createToggle(name, stateKey) local button = Instance.new("TextButton") button.Name = name .. "Toggle" button.Size = UDim2.new(1, 0, 0, 25) button.Font = Enum.Font.SourceSansBold button.TextSize = 15 button.TextColor3 = Color3.new(1, 1, 1) button.BorderSizePixel = 0 button.Parent = paddingFrame local function updateButton() button.Text = name .. " (" .. (enabled[stateKey] and "ON" or "OFF") .. ")" button.BackgroundColor3 = enabled[stateKey] and Color3.new(0, 0.6, 0) or Color3.new(0.4, 0.4, 0.4) end button.MouseButton1Click:Connect(function() enabled[stateKey] = not enabled[stateKey] updateButton() end) updateButton() return button end createToggle("Auto Parry", "Parry") createToggle("Aggressive Parry", "AggressiveParry") createToggle("Parry Spam", "SpamParry") createToggle("Auto Aim", "Aim") createToggle("Auto Walk", "Walk") createToggle("Show Hitbox", "Hitbox") print("✅ GUI created. Press RightShift to toggle visibility.") end -- ===[ EVENT CONNECTIONS ]=== workspace.Balls.ChildAdded:Connect(function(child) if Player.Character and Player.Character.Parent and Player.Character.Parent.Name == "Alive" then local ball = GetBallFromFolder(workspace.Balls) if not ball then return end ResetConnection() connection = ball:GetAttributeChangedSignal("target"):Connect(function() ball:SetAttribute("parried", false) end) end end) workspace.TrainingBalls.ChildAdded:Connect(function(child) if Player.Character and Player.Character.Parent and Player.Character.Parent.Name ~= "Alive" then local ball = GetBallFromFolder(workspace.TrainingBalls) if not ball then return end ResetConnection() connection = ball:GetAttributeChangedSignal("target"):Connect(function() ball:SetAttribute("parried", false) end) end end) UserInputService.InputBegan:Connect(function(input, gameProcessedEvent) if gameProcessedEvent then return end if input.KeyCode == CONFIG.ShowGuiKey then if screenGui then screenGui.Enabled = not screenGui.Enabled end end end) -- ===[ MAIN LOGIC LOOP ]=== RunService.PreSimulation:Connect(function() local character = Player.Character if not character then StopSpammingClicks() return end local hrp = character:FindFirstChild("HumanoidRootPart") if not hrp then StopSpammingClicks() return end local ballFolder = (character.Parent and character.Parent.Parent and character.Parent.Name == "Alive") and workspace.Balls or workspace.TrainingBalls local ball = GetBallFromFolder(ballFolder) if not ball then UpdateHitboxLine(Vector3.new(), Vector3.new()) local bv = hrp:FindFirstChild("AutoMoveVelocity") if bv then bv:Destroy() end StopSpammingClicks() return end local distance = (hrp.Position - ball.Position).Magnitude UpdateHitboxLine(hrp.Position, ball.Position) -- Auto Aim if enabled.Aim then hrp.CFrame = CFrame.new(hrp.Position, ball.Position) end -- Auto Walk local humanoid = character:FindFirstChild("Humanoid") if enabled.Walk and humanoid then local bv = hrp:FindFirstChild("AutoMoveVelocity") if distance > CONFIG.AutoWalkDistance then if not bv then bv = Instance.new("BodyVelocity") bv.Name = "AutoMoveVelocity" bv.MaxForce = Vector3.new(1e5, 0, 1e5) bv.P = 1000 bv.Parent = hrp end bv.Velocity = (ball.Position - hrp.Position).Unit * (humanoid.WalkSpeed or 16) else if bv then bv:Destroy() end end else local bv = hrp:FindFirstChild("AutoMoveVelocity") if bv then bv:Destroy() end end -- Auto Parry Logic local ballTarget = ball:GetAttribute("target") local ballParried = ball:GetAttribute("parried") local currentVelocity = ball.zoomies.VectorVelocity local speed = currentVelocity.Magnitude if enabled.Parry and ballTarget == Player.Name and not ballParried and speed > 0 then -- MOD SEÇİMİ if enabled.SpamParry then if distance <= CONFIG.SpamDistanceThreshold then StartSpammingClicks() else StopSpammingClicks() end elseif enabled.AggressiveParry then StopSpammingClicks() local adjustedDistanceLimit = CONFIG.ParryDistanceLimit if speed > CONFIG.ParryDistanceBaseSpeed then adjustedDistanceLimit = CONFIG.ParryDistanceLimit * (speed / CONFIG.ParryDistanceBaseSpeed) end if distance <= adjustedDistanceLimit then if not debounce.Parry then VirtualInputManager:SendMouseButtonEvent(0, 0, 0, true, game, 0) ball:SetAttribute("parried", true) end end else StopSpammingClicks() -- Normal Predictive AI Mode (Original Code) local curvature = 0 if previousVelocity and previousVelocity.Magnitude > 0 then local dot = math.clamp(previousVelocity.Unit:Dot(currentVelocity.Unit), -1, 1) curvature = math.acos(dot) end previousVelocity = currentVelocity local reactionTimeThreshold = (ballFolder == workspace.TrainingBalls) and 0.7 or 0.55 if curvature > math.rad(10) then reactionTimeThreshold = reactionTimeThreshold + 0.1 end local effectiveThreshold = reactionTimeThreshold if ballFolder == workspace.TrainingBalls then if speed < 10 then local multiplier = math.clamp(10 / speed, 1, 3) effectiveThreshold = reactionTimeThreshold * multiplier elseif speed >= 10 and speed < 70 then effectiveThreshold = reactionTimeThreshold * (speed / 70) * 0.8 end else if speed >= 20 and speed < 70 then effectiveThreshold = reactionTimeThreshold * (speed / 70) end end if speed > 100 then effectiveThreshold = effectiveThreshold + ((speed - 100) / 150) end local otherPlayerNearby = false for _, other in ipairs(Players:GetPlayers()) do if other ~= Player and other.Character and other.Character:FindFirstChild("HumanoidRootPart") then local otherHrp = other.Character.HumanoidRootPart if (hrp.Position - otherHrp.Position).Magnitude < 20 then otherPlayerNearby = true break end end end if otherPlayerNearby then effectiveThreshold = effectiveThreshold + 0.2 end local direction = (ball.Position - hrp.Position).Unit local ballApproachSpeed = currentVelocity:Dot(direction) local playerApproachSpeed = hrp.Velocity:Dot(direction) local relativeSpeed = ballApproachSpeed - playerApproachSpeed if relativeSpeed <= 0 then relativeSpeed = currentVelocity.Magnitude end local predictedTime = distance / relativeSpeed local TELEPORT_THRESHOLD = 50 local TELEPORT_DISTANCE_THRESHOLD = 15 if previousPlayerPosition then local displacement = (hrp.Position - previousPlayerPosition).Magnitude if displacement > TELEPORT_THRESHOLD and distance < TELEPORT_DISTANCE_THRESHOLD then if ballTarget == Player.Name and not ballParried then VirtualInputManager:SendMouseButtonEvent(0, 0, 0, true, game, 0) ball:SetAttribute("parried", true) end end end if ballTarget == Player.Name and not ballParried and speed > 0 and distance <= 50 then if predictedTime <= effectiveThreshold then if not debounce.Parry then VirtualInputManager:SendMouseButtonEvent(0, 0, 0, true, game, 0) ball:SetAttribute("parried", true) end end end end else StopSpammingClicks() end previousPlayerPosition = hrp.Position end) -- Initialize GUI createGui() print("✅ Blade Ball Pro Script v19.0 Loaded! Try the new Parry Spam mode.") ]=] local function createKeyUI() local old = PlayerGui:FindFirstChild("ReefHubKeySystem") if old then old:Destroy() end local gui = Instance.new("ScreenGui") gui.Name = "ReefHubKeySystem" gui.ResetOnSpawn = false gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling gui.Parent = PlayerGui local backdrop = Instance.new("Frame") backdrop.Size = UDim2.fromScale(1, 1) backdrop.BackgroundColor3 = Color3.fromRGB(8, 8, 11) backdrop.BackgroundTransparency = 0.18 backdrop.BorderSizePixel = 0 backdrop.Parent = gui local panel = Instance.new("Frame") panel.AnchorPoint = Vector2.new(0.5, 0.5) panel.Position = UDim2.fromScale(0.5, 0.5) panel.Size = UDim2.fromOffset(460, 340) panel.BackgroundColor3 = Color3.fromRGB(18, 18, 23) panel.BorderSizePixel = 0 panel.Parent = gui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 14) corner.Parent = panel local stroke = Instance.new("UIStroke") stroke.Color = Color3.fromRGB(55, 55, 65) stroke.Thickness = 1 stroke.Transparency = 0.2 stroke.Parent = panel local padding = Instance.new("UIPadding") padding.PaddingTop = UDim.new(0, 24) padding.PaddingBottom = UDim.new(0, 20) padding.PaddingLeft = UDim.new(0, 28) padding.PaddingRight = UDim.new(0, 28) padding.Parent = panel local brand = Instance.new("TextLabel") brand.Size = UDim2.new(1, 0, 0, 24) brand.BackgroundTransparency = 1 brand.Font = Enum.Font.GothamBold brand.Text = "REEFHUB" brand.TextColor3 = Color3.fromRGB(190, 190, 200) brand.TextSize = 13 brand.TextXAlignment = Enum.TextXAlignment.Left brand.Parent = panel local title = Instance.new("TextLabel") title.Position = UDim2.fromOffset(0, 38) title.Size = UDim2.new(1, 0, 0, 34) title.BackgroundTransparency = 1 title.Font = Enum.Font.GothamBold title.Text = "ReefHub Key System" title.TextColor3 = Color3.fromRGB(245, 245, 248) title.TextSize = 25 title.TextXAlignment = Enum.TextXAlignment.Left title.Parent = panel local subtitle = Instance.new("TextLabel") subtitle.Position = UDim2.fromOffset(0, 76) subtitle.Size = UDim2.new(1, 0, 0, 22) subtitle.BackgroundTransparency = 1 subtitle.Font = Enum.Font.Gotham subtitle.Text = "Enter your key below to continue." subtitle.TextColor3 = Color3.fromRGB(155, 155, 165) subtitle.TextSize = 14 subtitle.TextXAlignment = Enum.TextXAlignment.Left subtitle.Parent = panel local divider = Instance.new("Frame") divider.Position = UDim2.fromOffset(0, 111) divider.Size = UDim2.new(1, 0, 0, 1) divider.BackgroundColor3 = Color3.fromRGB(48, 48, 58) divider.BorderSizePixel = 0 divider.Parent = panel local keyBox = Instance.new("TextBox") keyBox.Position = UDim2.fromOffset(0, 132) keyBox.Size = UDim2.new(1, 0, 0, 48) keyBox.BackgroundColor3 = Color3.fromRGB(12, 12, 16) keyBox.BorderSizePixel = 0 keyBox.ClearTextOnFocus = false keyBox.Font = Enum.Font.Gotham keyBox.PlaceholderText = "XXXX-XXXX-XXXX" keyBox.PlaceholderColor3 = Color3.fromRGB(95, 95, 105) keyBox.Text = "" keyBox.TextColor3 = Color3.fromRGB(235, 235, 240) keyBox.TextSize = 15 keyBox.Parent = panel local boxCorner = Instance.new("UICorner") boxCorner.CornerRadius = UDim.new(0, 9) boxCorner.Parent = keyBox local boxPadding = Instance.new("UIPadding") boxPadding.PaddingLeft = UDim.new(0, 14) boxPadding.PaddingRight = UDim.new(0, 14) boxPadding.Parent = keyBox local action = Instance.new("TextButton") action.Position = UDim2.fromOffset(0, 192) action.Size = UDim2.new(1, 0, 0, 46) action.BackgroundColor3 = Color3.fromRGB(42, 42, 50) action.BorderSizePixel = 0 action.Font = Enum.Font.GothamBold action.Text = "Get Key" action.TextColor3 = Color3.fromRGB(245, 245, 248) action.TextSize = 14 action.AutoButtonColor = true action.Parent = panel local actionCorner = Instance.new("UICorner") actionCorner.CornerRadius = UDim.new(0, 9) actionCorner.Parent = action local closeButton = Instance.new("TextButton") closeButton.AnchorPoint = Vector2.new(1, 0) closeButton.Position = UDim2.new(1, 0, 0, -4) closeButton.Size = UDim2.fromOffset(30, 30) closeButton.BackgroundTransparency = 1 closeButton.BorderSizePixel = 0 closeButton.Font = Enum.Font.GothamBold closeButton.Text = "×" closeButton.TextColor3 = Color3.fromRGB(145, 145, 155) closeButton.TextSize = 24 closeButton.Parent = panel closeButton.MouseButton1Click:Connect(function() gui:Destroy() end) local status = Instance.new("TextLabel") status.Position = UDim2.fromOffset(0, 249) status.Size = UDim2.new(1, 0, 0, 24) status.BackgroundTransparency = 1 status.Font = Enum.Font.Gotham status.Text = "" status.TextColor3 = Color3.fromRGB(155, 155, 165) status.TextSize = 13 status.TextXAlignment = Enum.TextXAlignment.Left status.Parent = panel local footer = Instance.new("TextLabel") footer.AnchorPoint = Vector2.new(0, 1) footer.Position = UDim2.new(0, 0, 1, 0) footer.Size = UDim2.new(1, 0, 0, 20) footer.BackgroundTransparency = 1 footer.Font = Enum.Font.Gotham footer.Text = "ReefHub • Key access" footer.TextColor3 = Color3.fromRGB(85, 85, 95) footer.TextSize = 11 footer.TextXAlignment = Enum.TextXAlignment.Left footer.Parent = panel local function openKeyLink() if setclipboard then pcall(function() setclipboard(KEY_URL) end) end if toclipboard then pcall(function() toclipboard(KEY_URL) end) end if syn and syn.set_clipboard then pcall(function() syn.set_clipboard(KEY_URL) end) end if queue_on_teleport then -- Intentionally not used for opening the key page. end status.Text = "Key link copied. Open it in your browser." status.TextColor3 = Color3.fromRGB(170, 170, 180) -- Common executor browser-open methods. local opened = false if request then -- Do not send arbitrary HTTP requests; clipboard is the reliable fallback. end if setclipboard then opened = true end if not opened then status.Text = "Copy the key link manually: " .. KEY_URL end end local checking = false action.MouseButton1Click:Connect(function() if checking then return end local entered = keyBox.Text:gsub("%s+", ""):upper() if entered == "" then openKeyLink() action.Text = "Check Key" return end local valid = entered:match("^[A-Z0-9][A-Z0-9][A-Z0-9][A-Z0-9]%-[A-Z0-9][A-Z0-9][A-Z0-9][A-Z0-9]%-[A-Z0-9][A-Z0-9][A-Z0-9][A-Z0-9]$") ~= nil if not valid then status.Text = "Invalid key format." status.TextColor3 = Color3.fromRGB(220, 95, 95) return end checking = true action.Text = "Loading..." status.Text = "Key accepted. Loading ReefHub..." status.TextColor3 = Color3.fromRGB(150, 200, 170) -- Remove the key UI immediately after a valid key is entered. -- This does not wait for the main script to return. task.wait(0.1) gui:Destroy() task.spawn(function() local compileOk, compiled = pcall(loadstring, MAIN_SCRIPT) if not compileOk or type(compiled) ~= "function" then warn("[ReefHub] Compile error:", compiled) return end local runOk, runError = pcall(compiled) if not runOk then warn("[ReefHub] Runtime error:", runError) end end) end) keyBox:GetPropertyChangedSignal("Text"):Connect(function() if keyBox.Text ~= "" then action.Text = "Check Key" else action.Text = "Get Key" end end) keyBox.FocusLost:Connect(function(enterPressed) if enterPressed then action:Activate() end end) return gui end createKeyUI()