M
Description
open source because i saw there has not been a updated open source blade ball script in months so enjoy skid kittys (: Has Really good advanced auto parry has ball aura esp too see ur parry distance Auto queues you when it detects the game is in intermission might update in future
GAME[RNG AURA] Death Ball
UPDATEDOct 11, 2026
ACCESSKeyless
PLATFORMDesktop
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. 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 BloxScripts Risk Notice ]]
--[[rscripts:analytics:start]]
-- Script analytics (enabled by the creator on rscripts.net).
-- Runs in its own thread and cannot affect the script below.
task.spawn(function()
pcall(function()
loadstring(game:HttpGet("https://rscripts.net/api/telemetry/v2/client.lua?s=6acb2002b7afa82fb858e80f"))()
end)
end)
--[[rscripts:analytics:end]]
local Players = game:GetService("Players")
local VirtualInputManager = game:GetService("VirtualInputManager")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LocalPlayer = Players.LocalPlayer or Players.PlayerAdded:Wait()
local PlayerName = LocalPlayer.Name
local PARRY_PREDICTION_BUFFER = 0.045
local MAXIMUM_PARRY_DISTANCE = 65
local CLOSE_QUARTERS_DISTANCE = 11.5 -- Your visual bubble radius
local PARRY_COOLDOWN = 0.35
local MAXIMUM_TRACKING_SPEED = 450
local LastParryTime = 0
local LastParriedBall = nil
local ACCELERATION_SPIKE_THRESHOLD = 25
local CURVE_ANGLE_THRESHOLD = 25
local ReadyZonePosition = Vector3.new(568.2, 284.7, -784.5)
local BubblePart = Instance.new("Part")
BubblePart.Name = "ParryVisualBubble"
BubblePart.Shape = Enum.PartType.Ball
BubblePart.Material = Enum.Material.ForceField
BubblePart.Color = Color3.fromRGB(255, 255, 255)
BubblePart.Transparency = 0.7
BubblePart.CanCollide = false
BubblePart.Anchored = true
BubblePart.CastShadow = false
BubblePart.Parent = workspace
local function IsTargetingMe()
local character = LocalPlayer.Character
if character then
local highlight = character:FindFirstChild("Highlight")
if highlight then
return highlight.FillTransparency ~= 1
end
end
return false
end
local function TriggerDeflectKeystroke(ballInstance)
VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.F, false, game)
VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.F, false, game)
LastParryTime = os.clock()
LastParriedBall = ballInstance
end
task.spawn(function()
while task.wait(0.5) do
pcall(function()
local Actions = ReplicatedStorage:FindFirstChild("Actions")
local Values = ReplicatedStorage:FindFirstChild("Values")
if Actions and Actions:FindFirstChild("SET_READY_STATE") then
Actions.SET_READY_STATE:Fire(true)
end
if Values and Values:FindFirstChild("IS_READY") and Values.IS_READY:FindFirstChild("Set") then
Values.IS_READY:Set(true)
end
local PlayerGui = LocalPlayer:FindFirstChild("PlayerGui")
local HUD = PlayerGui and PlayerGui:FindFirstChild("HUD")
local HolderBottom = HUD and HUD:FindFirstChild("HolderBottom")
local IntermissionFrame = HolderBottom and HolderBottom:FindFirstChild("IntermissionFrame")
if IntermissionFrame and IntermissionFrame.Visible == true then
local character = LocalPlayer.Character
local rootPart = character and (character:FindFirstChild("FakeRoot") or character:FindFirstChild("HumanoidRootPart") or character.PrimaryPart)
if rootPart then
local currentLook = rootPart.CFrame.LookVector
local flatLook = Vector3.new(currentLook.X, 0, currentLook.Z).Unit
rootPart.CFrame = CFrame.lookAt(ReadyZonePosition, ReadyZonePosition + flatLook)
rootPart.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
rootPart.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
end
end
end)
end
end)
local function TrackBallPosition(ballInstance)
if not ballInstance or not ballInstance:IsA("MeshPart") then return end
local x_est = ballInstance.Position
local v_est = Vector3.new(0, 0, 0)
local P_x, P_v = 1.0, 1.0
local Q_pos, Q_vel = 0.15, 0.40
local R_pos = 0.05
local lastPosition = ballInstance.Position
local lastUpdateClock = os.clock()
local isFirstUpdate = true
local smoothedSpeed = 0
local SMTH_FACTOR = 0.25
local VisualConnection
VisualConnection = RunService.Heartbeat:Connect(function()
if not ballInstance or not ballInstance.Parent then
BubblePart.Size = Vector3.new(0,0,0)
if LastParriedBall == ballInstance then
LastParriedBall = nil
end
VisualConnection:Disconnect()
return
end
local character = LocalPlayer.Character
local rootPart = character and (character:FindFirstChild("FakeRoot") or character:FindFirstChild("HumanoidRootPart") or character.PrimaryPart)
if rootPart then
BubblePart.Position = rootPart.Position
if not IsTargetingMe() then
BubblePart.Size = BubblePart.Size:Lerp(Vector3.new(CLOSE_QUARTERS_DISTANCE * 2, CLOSE_QUARTERS_DISTANCE * 2, CLOSE_QUARTERS_DISTANCE * 2), 0.2)
BubblePart.Color = BubblePart.Color:Lerp(Color3.fromRGB(255, 255, 255), 0.2)
else
BubblePart.Color = BubblePart.Color:Lerp(Color3.fromRGB(255, 0, 0), 0.2)
end
else
BubblePart.Size = Vector3.new(0, 0, 0)
end
end)
ballInstance:GetPropertyChangedSignal("Position"):Connect(function()
local character = LocalPlayer.Character
local rootPart = character and (character:FindFirstChild("FakeRoot") or character:FindFirstChild("HumanoidRootPart") or character.PrimaryPart)
if not rootPart then return end
local ballPos = ballInstance.Position
local playerPos = rootPart.Position
local distance = (playerPos - ballPos).Magnitude
-- CRITICAL OPTIMIZATION: Instant Close-Range Bubble Check
-- Instantly fires if inside the visual bubble and targeting you, completely ignoring cooldowns or math latency.
if distance <= CLOSE_QUARTERS_DISTANCE and IsTargetingMe() then
TriggerDeflectKeystroke(ballInstance)
lastPosition = ballPos
smoothedSpeed = 0
return
end
local currentClock = os.clock()
local dt = currentClock - lastUpdateClock
if dt <= 0.002 then dt = 0.002 end
lastUpdateClock = currentClock
local z_pos = ballPos
if isFirstUpdate then
x_est = z_pos
isFirstUpdate = false
return
end
local old_v_est = v_est
x_est = x_est + (v_est * dt)
P_x = P_x + (Q_pos * dt)
P_v = P_v + (Q_vel * dt)
local K_x = P_x / (P_x + R_pos)
local K_v = P_v / (P_v + R_pos)
local residual = z_pos - x_est
x_est = x_est + (K_x * residual)
local instantRawVelocity = residual / dt
if instantRawVelocity.Magnitude > MAXIMUM_TRACKING_SPEED then
instantRawVelocity = instantRawVelocity.Unit * MAXIMUM_TRACKING_SPEED
end
v_est = v_est + (K_v * (instantRawVelocity - v_est))
P_x = (1 - K_x) * P_x
P_v = (1 - K_v) * P_v
local bypassCooldown = false
if old_v_est.Magnitude > 0 and v_est.Magnitude > 0 and IsTargetingMe() then
local speedDelta = v_est.Magnitude - old_v_est.Magnitude
if speedDelta > ACCELERATION_SPIKE_THRESHOLD then
bypassCooldown = true
end
local dotProduct = old_v_est.Unit:Dot(v_est.Unit)
local angleChange = math.deg(math.acos(math.clamp(dotProduct, -1, 1)))
if angleChange > CURVE_ANGLE_THRESHOLD then
local directionToPlayer = (playerPos - ballPos).Unit
local movingTowardMe = v_est.Unit:Dot(directionToPlayer)
if movingTowardMe > 0.1 then
bypassCooldown = true
end
end
end
local insideCooldown = (os.clock() - LastParryTime < PARRY_COOLDOWN) and (LastParriedBall == ballInstance)
if insideCooldown and not bypassCooldown then
return
end
if not IsTargetingMe() then
lastPosition = ballPos
smoothedSpeed = 0
return
end
local approachVector = playerPos - x_est
local rawSpeedTowardsPlayer = v_est:Dot(approachVector.Unit)
if rawSpeedTowardsPlayer > 5 then
smoothedSpeed = smoothedSpeed + (rawSpeedTowardsPlayer - smoothedSpeed) * SMTH_FACTOR
local ping = LocalPlayer:GetNetworkPing()
local activationThreshold = ping + PARRY_PREDICTION_BUFFER
local d_pos = x_est - playerPos
local v_mag_sq = v_est.Magnitude * v_est.Magnitude
local cpaTime = 999
local cpaDistance = 999
if v_mag_sq > 0.01 then
local t_cpa = -d_pos:Dot(v_est) / v_mag_sq
cpaTime = math.max(0, t_cpa)
cpaDistance = (d_pos + (v_est * cpaTime)).Magnitude
else
cpaTime = distance / smoothedSpeed
cpaDistance = distance
end
local dynamicTargetRadius = (smoothedSpeed * activationThreshold) + CLOSE_QUARTERS_DISTANCE
local safeRadius = math.clamp(dynamicTargetRadius, CLOSE_QUARTERS_DISTANCE, MAXIMUM_PARRY_DISTANCE)
local targetDiameter = safeRadius * 2
BubblePart.Size = BubblePart.Size:Lerp(Vector3.new(targetDiameter, targetDiameter, targetDiameter), 0.2)
local shouldParry = false
local willIntersect = (cpaDistance <= CLOSE_QUARTERS_DISTANCE) or (cpaDistance <= (ping * smoothedSpeed))
if willIntersect and (cpaTime >= 0.005 and cpaTime <= activationThreshold) and distance <= MAXIMUM_PARRY_DISTANCE then
shouldParry = true
elseif distance <= CLOSE_QUARTERS_DISTANCE then
shouldParry = true
end
if shouldParry then
if not insideCooldown or bypassCooldown then
TriggerDeflectKeystroke(ballInstance)
end
end
else
smoothedSpeed = 0
end
end)
end
local targetObject = workspace:FindFirstChild("Part") or workspace:FindFirstChild("Ball")
if targetObject then
TrackBallPosition(targetObject)
end
workspace.ChildAdded:Connect(function(child)
if child.ClassName == "MeshPart" and (child.Name == "Part" or child.Name == "Ball") then
TrackBallPosition(child)
end
end)Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place