_G.VergilEnabled = true _G.NoDash = true local TOGGLE_KEY = Enum.KeyCode.K local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer local cachedSkill = nil local lastTime = 0 local firedThisTrack = false task.spawn(function() while task.wait(1) do if cachedSkill then local isAlive = pcall(function() return cachedSkill.clientCharacter.instance.Parent == workspace end) if not isAlive then cachedSkill = nil end end if not cachedSkill then for _, v in pairs(getgc(true)) do if type(v) == "table" and (rawget(v, "customText") == "TIMED" or tostring(v) == "JudgementCut") then if v.clientCharacter and v.clientCharacter.instance == LocalPlayer.Character then cachedSkill = v if _G.NoDash and v.config then v.config.speed = 0 end break end end end end end end) UserInputService.InputBegan:Connect(function(input, processed) if not processed and input.KeyCode == TOGGLE_KEY then _G.VergilEnabled = not _G.VergilEnabled end end) RunService.Heartbeat:Connect(function() if not _G.VergilEnabled or not cachedSkill then return end local track = cachedSkill.clientTrack if track and track.IsPlaying then if _G.NoDash and cachedSkill.config and cachedSkill.config.speed ~= 0 then cachedSkill.config.speed = 0 end local currentTime = track.TimePosition if currentTime < lastTime then firedThisTrack = false end lastTime = currentTime local startWin = track:GetTimeOfKeyframe("Start") or 0.12 local endWin = track:GetTimeOfKeyframe("End") or 0.45 local adjustedStart = startWin - (LocalPlayer:GetNetworkPing() * 0.85) if not firedThisTrack and currentTime >= adjustedStart and currentTime <= endWin then firedThisTrack = true cachedSkill:fireEvent(true) task.delay(0.06, function() if _G.VergilEnabled and cachedSkill then cachedSkill:fireEvent(true) end end) end else firedThisTrack = false lastTime = 0 end end)