-- Load Rayfield UI
local Rayfield = loadstring(game:HttpGet('https://[Log in to view URL]'))()
-- Wait until the game and character fully load
repeat wait() until game:IsLoaded() and game.Players.LocalPlayer and game.Players.LocalPlayer.Character
-- Rayfield Window
local Window = Rayfield:CreateWindow({
Name = "T_T Hub",
LoadingTitle = "T_T Hub",
LoadingSubtitle = "powered by Chaos Lord",
ConfigurationSaving = { Enabled = false },
Discord = { Enabled = false },
KeySystem = false
})
local MainTab = Window:CreateTab("Settings", 4483362458)
MainTab:CreateSection("Main")
-- Variables
local autoParryEnabled = false
local lastParryTime = 0
local parryCount = 0
local parryCooldown = 1
local parryRange = 15
local pingOffset = 0.1
local predictionTime = 0.2
local detectionDelay = 0.05
local remote = nil
-- Try to find the RemoteEvent
task.spawn(function()
while not remote do
remote = game:GetService("ReplicatedStorage"):FindFirstChild("Parry")
if not remote then
warn("[T_T Hub] Waiting for 'Parry' RemoteEvent...")
end
task.wait(1)
end
print("[T_T Hub] 'Parry' RemoteEvent found.")
end)
-- UI Controls
MainTab:CreateToggle({
Name = "Auto Parry",
CurrentValue = false,
Flag = "AutoParryToggle",
Callback = function(Value)
autoParryEnabled = Value
Rayfield:Notify({
Title = "Auto Parry",
Content = Value and "Enabled All Features" or "Disabled All Features",
Duration = 3
})
end,
})
MainTab:CreateSlider({
Name = "Parry Range",
Range = {5, 30},
Increment = 1,
Suffix = "studs",
CurrentValue = parryRange,
Callback = function(Value)
parryRange = Value
end,
})
MainTab:CreateSlider({
Name = "Parry Cooldown",
Range = {0.2, 2},
Increment = 0.1,
Suffix = "sec",
CurrentValue = parryCooldown,
Callback = function(Value)
parryCooldown = Value
end,
})
MainTab:CreateSlider({
Name = "Ping Compensation",
Range = {0, 0.5},
Increment = 0.05,
Suffix = "sec",
CurrentValue = pingOffset,
Callback = function(Value)
pingOffset = Value
end,
})
-- Counter GUI
local screenGui = Instance.new("ScreenGui", game.CoreGui)
local counterLabel = Instance.new("TextLabel", screenGui)
counterLabel.Size = UDim2.new(0, 200, 0, 40)
counterLabel.Position = UDim2.new(0, 20, 0, 60)
counterLabel.BackgroundTransparency = 1
counterLabel.TextScaled = true
counterLabel.Font = Enum.Font.SourceSansBold
counterLabel.TextColor3 = Color3.new(1, 1, 1)
counterLabel.TextStrokeTransparency = 0.6
counterLabel.Text = "Parries: 0"
-- Keybind (P) to toggle Auto Parry
game:GetService("UserInputService").InputBegan:Connect(function(input, gp)
if not gp and input.KeyCode == Enum.KeyCode.P then
autoParryEnabled = not autoParryEnabled
Rayfield:Notify({
Title = "Keybind Toggled",
Content = autoParryEnabled and "Enabled" or "Disabled",
Duration = 2
})
end
end)
-- Function to perform parry
local function performParry()
if remote and (tick() - lastParryTime) >= (parryCooldown - pingOffset) then
remote:FireServer()
lastParryTime = tick()
parryCount += 1
counterLabel.Text = "Parries: " .. tostring(parryCount)
end
end
-- FPS Monitoring (only runs if autoParryEnabled)
task.spawn(function()
while true do
if autoParryEnabled then
local frames = 0
local start = tick()
while tick() - start < 1 do
frames += 1
task.wait()
end
if frames < 40 then
detectionDelay = 0.1
predictionTime = 0.3
elseif frames > 70 then
detectionDelay = 0.03
predictionTime = 0.15
else
detectionDelay = 0.05
predictionTime = 0.2
end
end
task.wait(2)
end
end)
-- Main detection logic (checks every frame if autoParryEnabled is true)
task.spawn(function()
while true do
if autoParryEnabled and remote then
task.wait(detectionDelay)
local player = game.Players.LocalPlayer
local char = player.Character or player.CharacterAdded:Wait()
local hrp = char:FindFirstChild("HumanoidRootPart")
if hrp then
for _, obj in pairs(workspace:GetDescendants()) do
if obj:IsA("BasePart") and obj.Name:lower():find("ball") then
local futurePos = obj.Position + (obj.Velocity * predictionTime)
local futureDist = (futurePos - hrp.Position).Magnitude
local relVel = (obj.Velocity - hrp.Velocity).Unit
local dirToPlayer = (hrp.Position - obj.Position).Unit
local threat = relVel:Dot(dirToPlayer) > 0.5
if futureDist <= parryRange and threat then
performParry()
break
end
end
end
end
else
task.wait(0.5)
end
end
end)
-- Confirmation message
Rayfield:Notify({
Title = "Script Ready",
Content = "Auto Parry is fully optimized and connected to your toggle.",
Duration = 5
})
To embed this project on your website, copy the following code and paste it into your website's HTML: