local players = game:GetService("Players")
local vim = game:GetService("VirtualInputManager")
local plr = players.LocalPlayer
local cd = false
local Settings = {
Autoparry = { Toggle = false, Range = 20, Delay = 0, IgnoreKicks = false, Autocounter = false, Fov = 180,
Katana = 0.01, Fist =0.095, Kick = 0,
Scythe = 0.27,
Nagi = 0.22,
kanaboo = 0.29,
Kusa = 0.06,
Tanto = 0.05,
Odachi = 0.22 },
ESP = { Toggle = false, Config = {} },
Tpaura = {
Toggle = false,
},
}
local anims = {
["rbxassetid://6678908798"] = { [1] = Settings.Autoparry.Katana, [2] = 0.48 },
["rbxassetid://6678909967"] = { [1] = Settings.Autoparry.Katana, [2] = 0.48 },
["rbxassetid://6678913068"] = { [1] = Settings.Autoparry.Katana, [2] = 0.48 },
["rbxassetid://11753430563"] = { [1] = 0.17, [2] = 0.48 }, -- slower needs seperate ap method ig lol wap
["rbxassetid://6678914641"] = { [1] = Settings.Autoparry.Katana, [2] = 0.50 }, --thats swing kick
["rbxassetid://6907975812"] = { [1] = Settings.Autoparry.Kick, [2] = 0.35 }, -- kick
["rbxassetid://11752087150"] = { [1] = Settings.Autoparry.Fist, [2] = 0.45 },
["rbxassetid://11752098805"] = { [1] = Settings.Autoparry.Fist, [2] = 0.45 },
["rbxassetid://11752104735"] = { [1] = Settings.Autoparry.Fist, [2] = 0.45 },
["rbxassetid://11752111783"] = { [1] = Settings.Autoparry.Fist, [2] = 0.45 },
--
["rbxassetid://6708118912"] = { [1] = Settings.Autoparry.Scythe, [2] = 0.60 }, -- scythe default was 0.29 before btw
["rbxassetid://6835409260"] = { [1] = Settings.Autoparry.Scythe, [2] = 0.60 },
["rbxassetid://6708121991"] = { [1] = Settings.Autoparry.Scythe, [2] = 0.60 },
["rbxassetid://6708121121"] = { [1] = Settings.Autoparry.Scythe, [2] = 0.60 },
--
["rbxassetid://14349499924"] = { [1] = Settings.Autoparry.Nagi, [2] = 0.60 }, -- nagi
["rbxassetid://14349501923"] = { [1] = Settings.Autoparry.Nagi, [2] = 0.60 },
["rbxassetid://14349504049"] = { [1] = Settings.Autoparry.Nagi, [2] = 0.60 },
["rbxassetid://14349506078"] = { [1] = Settings.Autoparry.Nagi, [2] = 0.60 },
--
["rbxassetid://14483365680"] = { [1] = Settings.Autoparry.kanaboo, [2] = 0.60 }, -- kanaboo
["rbxassetid://6995853850"] = { [1] = Settings.Autoparry.kanaboo, [2] = 0.60 },
["rbxassetid://6996771877"] = { [1] = Settings.Autoparry.kanaboo, [2] = 0.60 },
["rbxassetid://7011157033"] = { [1] = Settings.Autoparry.kanaboo, [2] = 0.60 },
--
["rbxassetid://11941288362"] = { [1] = Settings.Autoparry.Kusa, [2] = 0.50 }, -- kusarigima
["rbxassetid://11941292174"] = { [1] = Settings.Autoparry.Kusa, [2] = 0.50 },
["rbxassetid://11941309395"] = { [1] = Settings.Autoparry.Kusa, [2] = 0.50 },
["rbxassetid://11941314458"] = { [1] = Settings.Autoparry.Kusa, [2] = 0.50 },
--
["rbxassetid://7845695759"] = { [1] = Settings.Autoparry.Tanto, [2] = 0.4 }, -- tanto
["rbxassetid://7845695236"] = { [1] = Settings.Autoparry.Tanto, [2] = 0.4 },
["rbxassetid://7845696985"] = { [1] = Settings.Autoparry.Tanto, [2] = 0.4 },
["rbxassetid://7845696360"] = { [1] = Settings.Autoparry.Tanto, [2] = 0.4 },
--
["rbxassetid://13537213350"] = { [1] = Settings.Autoparry.Odachi, [2] = 0.60 }, -- odachi last weapon
["rbxassetid://13537219514"] = { [1] = Settings.Autoparry.Odachi, [2] = 0.70 },
["rbxassetid://13537224645"] = { [1] = Settings.Autoparry.Odachi, [2] = 0.60 },
["rbxassetid://13537230809"] = { [1] = Settings.Autoparry.Odachi, [2] = 0.80 },
}
local closestplr, c, anim, coef, plrDirection, objectDirection, unit, value
function closest()
closestplr = {}
for i, v in next, players:GetChildren() do -- we want to use GetChildren instead of GetPlayers because we love children (written by mac)
if
v.Character
and plr.Character:WaitForChild("HumanoidRootPart", 1)
and v ~= plr
and v.Character ~= plr.Character
and v.Character:FindFirstChild("HumanoidRootPart")
and (v.Character.HumanoidRootPart.Position - plr.Character.HumanoidRootPart.Position).Magnitude
< Settings.Autoparry.Range
then
table.insert(closestplr, v)
end
end
return closestplr
end
function def(enemy,distance)
if not Settings.Autoparry.Autocounter then
if cd then
return
end
task.wait(Settings.Autoparry.Delay)
print("parry attempt")
cd = true
vim:SendMouseButtonEvent(0, 0, 1, true, game, 0)
task.wait(0.28)
vim:SendMouseButtonEvent(0, 0, 1, false, game, 0)
cd = false
elseif Settings.Autoparry.Autocounter then
if cd then
return
end
task.wait(Settings.Autoparry.Delay)
cd = true
vim:SendMouseButtonEvent(0, 0, 1, true, game, 0)
task.wait(0.28)
vim:SendMouseButtonEvent(0, 0, 1, false, game, 0)
cd = false
print("parry attempt(counter version)")
if enemy:FindFirstChildOfClass("Tool").Stunned.Value == true and enemy:FindFirstChildOfClass("Tool").Blocking.Value == false and distance > 15 then
vim:SendMouseButtonEvent(0, 0, 0, true, game, 0)
task.wait(0.10)
vim:SendMouseButtonEvent(0, 0, 0, false, game, 0)
print("counter attempt")
end
end
end
function isfacing(object)
if Settings.Autoparry.Toggle then
plrDirection = plr.Character.Head.CFrame.LookVector
unit = (object.Head.CFrame.p - plr.Character.Head.CFrame.p).Unit
value = math.pow((plrDirection - unit).Magnitude / 2, 2)
if value >= Settings.Autoparry.Fov / 360 then
return false
else
return true
end
end
end
function adjuster(distance) -- to be continued
end
function parry()
for i, c in closest() do
if
c
and plr.Character:WaitForChild("HumanoidRootPart", 2)
and c.Character
and c.Character:FindFirstChild("Humanoid")
and c.Character.Humanoid:FindFirstChild("Animator")
then
for i, v in next, c.Character.Humanoid.Animator:GetPlayingAnimationTracks() do
anim = anims[v.Animation.AnimationId]
if anim and isfacing(c.Character) and v.TimePosition >= anim[1] and v.TimePosition <= anim[2] then
task.spawn(function()
def(c.Character,(c.Character.HumanoidRootPart.Position - plr.Character.HumanoidRootPart.Position).Magnitude)
end)
end
end
end
end
end
function ESP()
for i, v in next, players:GetChildren() do
if v ~= plr and v.Character:WaitForChild("Humanoid", 1) then
local h = Instance.new("Highlight", v.Character)
h.FillColor = Color3.fromHSV((v.Character.Humanoid.Health / 255), 1, 1)
h.OutlineColor = Color3.fromHSV((v.Character.Humanoid.Health / 255), 1, 1)
v.Character.Humanoid.Changed:Connect(function(prop)
if prop == "Health" and h then
h.FillColor = Color3.fromHSV((v.Character.Humanoid.Health / 255), 1, 1)
h.OutlineColor = Color3.fromHSV((v.Character.Humanoid.Health / 255), 1, 1)
end
end)
end
end
end
local repo = 'https://raw.githubusercontent.com/HTDBarsi/LinoriaLib/main/'
local Library = loadstring(game:HttpGet(repo .. 'Library.lua'))()
local ThemeManager = loadstring(game:HttpGet(repo .. 'addons/ThemeManager.lua'))()
local SaveManager = loadstring(game:HttpGet(repo .. 'addons/SaveManager.lua'))()
local Window = Library:CreateWindow({
Title = "Asteria Zo",
Center = true,
AutoShow = true,
TabPadding = 8,
MenuFadeTime = 0.2,
})
local Tabs = {
Main = Window:AddTab("Closet features"),
Rage = Window:AddTab("Rage"),
Visuals = Window:AddTab("Visuals"),
["UI Settings"] = Window:AddTab("UI Settings"),
}
local LeftGroupBox = Tabs.Main:AddLeftGroupbox("Main")
LeftGroupBox:AddToggle("Autoparry Toggle", {
Text = "Autoparry",
Default = false, -- Default value (true / false)
Tooltip = "", -- Information shown when you hover over the toggle
Callback = function(Value)
Settings.Autoparry.Toggle = Value
end,
})
LeftGroupBox:AddSlider("MySlider", {
Text = "Autoparry FOV",
Default = 180,
Min = 0,
Max = 360,
Rounding = 1,
Compact = false,
Callback = function(Value)
Settings.Autoparry.Fov = Value
end,
})
LeftGroupBox:AddSlider("MySlider", {
Text = "Delay",
Default = 0,
Min = 0,
Max = 2,
Rounding = 2,
Compact = false,
Callback = function(Value)
Settings.Autoparry.Delay = Value
end,
})
LeftGroupBox:AddSlider("MySlider", {
Text = "Range",
Default = 25,
Min = 0,
Max = 25,
Rounding = 1,
Compact = false,
Callback = function(Value)
Settings.Autoparry.Range = Value
end,
})
LeftGroupBox:AddToggle("Autoparry Toggle", {
Text = "Auto counter[BETA]",
Default = false, -- Default value (true / false)
Tooltip = "Instantly Attacks after parrying", -- Information shown when you hover over the toggle
Callback = function(Value)
Settings.Autoparry.Autocounter = Value
end,
})
LeftGroupBox:AddToggle("Ignore kicks Toggle", {
Text = "Ignore kicks",
Default = false, -- Default value (true / false)
Tooltip = "Ignores kick inside of the autoparry", -- Information shown when you hover over the toggle
Callback = function(Value)
Settings.Autoparry.IgnoreKicks = Value
end,
})
local LeftGroupBox = Tabs.Main:AddLeftGroupbox('TimePosition Settings')
LeftGroupBox:AddLabel('The lower the faster ap reaction ')
LeftGroupBox:AddSlider("MySlider", {
Text = "Katana time position",
Default = 0.085,
Min = 0,
Max = 2,
Rounding = 3,
Compact = false,
Callback = function(Value)
Settings.Autoparry.Katana = Value
end,
})
LeftGroupBox:AddSlider("MySlider", {
Text = "Fist time position",
Default = 0.095,
Min = 0,
Max = 2,
Rounding = 3,
Compact = false,
Callback = function(Value)
Settings.Autoparry.Fist = Value
end,
})
LeftGroupBox:AddSlider("MySlider", {
Text = "Kick time position",
Default = 0,
Min = 0,
Max = 2,
Rounding = 3,
Compact = false,
Callback = function(Value)
Settings.Autoparry.Kick = Value
end,
})
LeftGroupBox:AddSlider("MySlider", {
Text = "Scythe time position",
Default = 0.27,
Min = 0,
Max = 2,
Rounding = 3,
Compact = false,
Callback = function(Value)
Settings.Autoparry.Scythe = Value
end,
})
LeftGroupBox:AddSlider("MySlider", {
Text = "Nagi time position",
Default = 0.22,
Min = 0,
Max = 2,
Rounding = 3,
Compact = false,
Callback = function(Value)
Settings.Autoparry.Nagi = Value
end,
})
LeftGroupBox:AddSlider("MySlider", {
Text = "Kanaboo time position",
Default = 0.29,
Min = 0,
Max = 2,
Rounding = 3,
Compact = false,
Callback = function(Value)
Settings.Autoparry.kanaboo = Value
end,
})
LeftGroupBox:AddSlider("MySlider", {
Text = "Kusarigima time position",
Default = 0.06,
Min = 0,
Max = 2,
Rounding = 3,
Compact = false,
Callback = function(Value)
Settings.Autoparry.Kusa = Value
end,
})
LeftGroupBox:AddSlider("MySlider", {
Text = "Tanto time position",
Default = 0.05,
Min = 0,
Max = 2,
Rounding = 3,
Compact = false,
Callback = function(Value)
Settings.Autoparry.Tanto = Value
end,
})
LeftGroupBox:AddSlider("MySlider", {
Text = "Odachi time position",
Default = 0.22,
Min = 0,
Max = 2,
Rounding = 3,
Compact = false,
Callback = function(Value)
Settings.Autoparry.Odachi = Value
end,
})
local LeftGroupBox = Tabs.Rage:AddLeftGroupbox("Rage")
local MyButton = LeftGroupBox:AddButton({
Text = "Tpaura(extremly obvious and op)",
Func = function()
loadstring(game:HttpGet("https://raw.githubusercontent.com/HTDBarsi/ZO/main/bettertp.lua"))()
end,
DoubleClick = false,
Tooltip = "",
})
local LeftGroupBox = Tabs.Visuals:AddLeftGroupbox("Chams")
LeftGroupBox:AddToggle("Chams Toggle", {
Text = "Chams toggle",
Default = false, -- Default value (true / false)
Tooltip = "", -- Information shown when you hover over the toggle
Callback = function(Value)
Settings.ESP.Toggle = Value
if Value then
for i, v in pairs(game.Players:GetChildren()) do
if v.Character and v ~= plr and v.Character:WaitForChild("Humanoid", 1) then
local h = Instance.new("Highlight", v.Character)
h.FillColor = Color3.fromHSV((v.Character.Humanoid.Health / 255), 1, 1)
h.OutlineColor = Color3.fromHSV((v.Character.Humanoid.Health / 255), 1, 1)
v.Character.Humanoid.Changed:Connect(function(prop)
if prop == "Health" and h then
h.FillColor = Color3.fromHSV((v.Character.Humanoid.Health / 255), 1, 1)
h.OutlineColor = Color3.fromHSV((v.Character.Humanoid.Health / 255), 1, 1)
end
end)
end
end
else
for i, v in pairs(game.Players:GetChildren()) do
if v.Character and v.Character:FindFirstChild("Highlight") then
v.Character.Highlight:Destroy()
end
end
end
end,
})
--//Configs and sh ui tab
local MenuGroup = Tabs["UI Settings"]:AddLeftGroupbox("Menu")
MenuGroup:AddLabel("Menu bind"):AddKeyPicker("MenuKeybind", { Default = "End", NoUI = true, Text = "Menu keybind" })
MenuGroup:AddButton("Unload", function()
Library:Unload()
end)
MenuGroup:AddButton("Copy discord invite", function()
setclipboard("https://discord.gg/t2cXFpkGBh")
end)
Library.ToggleKeybind = Options.MenuKeybind
ThemeManager:SetLibrary(Library)
SaveManager:SetLibrary(Library)
SaveManager:IgnoreThemeSettings()
SaveManager:BuildConfigSection(Tabs["UI Settings"])
ThemeManager:SetFolder("Asteria/ZO")
SaveManager:SetFolder("Asteria/ZO")
ThemeManager:ApplyToTab(Tabs["UI Settings"])
SaveManager:LoadAutoloadConfig()
task.spawn(function()
game:GetService("RunService").RenderStepped:Connect(function()
if Settings.Autoparry.Toggle then
parry()
end
end)
end)
task.spawn(function()
workspace.ChildAdded:Connect(function(v)
pcall(function()
if v:WaitForChild("Humanoid", 1) and v ~= plr.Character and Settings.ESP.Toggle then
local h = Instance.new("Highlight", v)
h.FillColor = Color3.new(0, 1, 0)
h.OutlineColor = Color3.new(0, 1, 0)
h.FillColor = Color3.fromHSV((v.Humanoid.Health / 255), 1, 1)
h.OutlineColor = Color3.fromHSV((v.Humanoid.Health / 255), 1, 1)
v.Humanoid.Changed:Connect(function(prop)
if prop == "Health" then
h.FillColor = Color3.fromHSV((v.Humanoid.Health / 255), 1, 1)
h.OutlineColor = Color3.fromHSV((v.Humanoid.Health / 255), 1, 1)
end
end)
end
end)
end)
end)