0% found this document useful (0 votes)
166 views3 pages

Blade Ball Script 2

The document is a script for a game that implements an auto parry feature for a ball game. It includes settings for parrying based on player ping, ball velocity, and distance, along with a user interface created using the Rayfield library. The script allows players to enable or disable auto parrying and provides notifications and configuration options.

Uploaded by

itaitachi41
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
166 views3 pages

Blade Ball Script 2

The document is a script for a game that implements an auto parry feature for a ball game. It includes settings for parrying based on player ping, ball velocity, and distance, along with a user interface created using the Rayfield library. The script allows players to enable or disable auto parrying and provides notifications and configuration options.

Uploaded by

itaitachi41
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

local Stats = game:GetService("Stats")

local Players = game:GetService("Players")


local VirtualInputManager = game:GetService("VirtualInputManager")
local RunService = game:GetService("RunService")
local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()

local local_player = Players.LocalPlayer or Players.PlayerAdded:Wait()


local PingBased = true
local PingBasedOffset = 0.05
local MinDistanceToParry = 0.3
local MaxDistanceToParry = 1.5
local ParryDelay = 0.015
local MinimumBallVelocity = 10
local ParryCooldown = 0.1
local lastParryTime = 0
local lastCheckTime = 0
local canParry = true
local isParrying = false
local lastBallVelocity = 0
local lastBallPosition = nil
local autoParryEnabled = false

local Window = Rayfield:CreateWindow({


Name = "blade ball script",
Icon = 0,
LoadingTitle = "best script",
LoadingSubtitle = "by IKӨЯZ",
Theme = "Default",
ConfigurationSaving = {
Enabled = true,
FolderName = nil,
FileName = "blade ball"
},
Discord = {
Enabled = true,
Invite = "https://dsc.gg/server-de-ikorz",
RememberJoins = false
},
KeySystem = true,
KeySettings = {
Title = "Key System",
Subtitle = "Key System",
Note = "the key is go to the discord",
FileName = "Key",
SaveKey = false,
GrabKeyFromSite = false,
Key = {"a61708c6aa10329c3bc0c7c19265b097045c71b8c0aeedef564fe0b52f60108a"}
}
})

Rayfield:Notify({
Title = "blade ball script",
Content = "thanks for using the script",
Duration = 6.5,
Image = 4483362458,
})

local Tab = Window:CreateTab("Main", 4483362458)


local Toggle = Tab:CreateToggle({
Name = "Auto Parry",
CurrentValue = false,
Flag = "Toggle1",
Callback = function(Value)
autoParryEnabled = Value
end,
})

local function FindBall()


for _, ball in pairs(workspace:WaitForChild("Balls"):GetChildren()) do
if ball:GetAttribute("realBall") == true then
return ball
end
end
end

local function IsTheTarget()


return local_player.Character and
local_player.Character:FindFirstChild("Highlight")
end

local function DetectBallCurve(ball)


local ballPosition = ball.Position
local ballVelocity = ball.AssemblyLinearVelocity

if lastBallPosition then
local deltaPos = ballPosition - lastBallPosition
local velocityDirection = ballVelocity.Unit
local angle = math.acos(velocityDirection:Dot(deltaPos.Unit)) * (180 /
math.pi)

if angle > 10 then


return true
end
end

lastBallPosition = ballPosition
lastBallVelocity = ballVelocity

return false
end

local function PerformParry()


if tick() - lastParryTime >= ParryCooldown and canParry and not isParrying then
isParrying = true
VirtualInputManager:SendMouseButtonEvent(0, 0, 0, true, game, 0)
VirtualInputManager:SendMouseButtonEvent(0, 0, 0, false, game, 0)
lastParryTime = tick()
task.delay(ParryCooldown, function()
canParry = true
isParrying = false
end)
end
end

task.spawn(function()
RunService.Heartbeat:Connect(function()
if autoParryEnabled and tick() - lastCheckTime >= ParryDelay then
local Ball = FindBall()
if Ball then
local BallPosition = Ball.Position
local BallVelocity = Ball.AssemblyLinearVelocity.Magnitude
local Distance = local_player:DistanceFromCharacter(BallPosition)

local Ping = Stats.Network.ServerStatsItem["Data Ping"]:GetValue()


local PingAdjustment = Ping / 1000
local DynamicPingOffset = PingAdjustment * 0.5
local DynamicParryDistance = MinDistanceToParry + DynamicPingOffset

if DynamicParryDistance < MinDistanceToParry then


DynamicParryDistance = MinDistanceToParry
elseif DynamicParryDistance > MaxDistanceToParry then
DynamicParryDistance = MaxDistanceToParry
end

local ballIsCurved = DetectBallCurve(Ball)

if BallVelocity > MinimumBallVelocity and (Distance / BallVelocity)


<= DynamicParryDistance and IsTheTarget() then
if ballIsCurved then
ParryDelay = 0.02
else
ParryDelay = 0.015
end
PerformParry()
end
end

lastCheckTime = tick()
end
end)
end)

You might also like