local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local Debris = game:GetService("Debris") local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local torso = character:WaitForChild("Torso") local hrp = character:WaitForChild("HumanoidRootPart") local isOnCooldown = false local cooldownTime = 5 local screenGui = Instance.new("ScreenGui") screenGui.Name = "BloodSkillUI" screenGui.Parent = player:WaitForChild("PlayerGui") local skillBarBG = Instance.new("Frame") skillBarBG.Size = UDim2.new(0, 250, 0, 25) skillBarBG.Position = UDim2.new(0.5, -125, 0.85, 0) skillBarBG.BackgroundColor3 = Color3.fromRGB(20, 20, 20) skillBarBG.BorderSizePixel = 2 skillBarBG.Parent = screenGui local skillBarFill = Instance.new("Frame") skillBarFill.Size = UDim2.new(1, 0, 1, 0) skillBarFill.BackgroundColor3 = Color3.fromRGB(150, 0, 0) skillBarFill.BorderSizePixel = 0 skillBarFill.Parent = skillBarBG local skillText = Instance.new("TextLabel") skillText.Size = UDim2.new(1, 0, 1, 0) skillText.BackgroundTransparency = 1 skillText.Text = "PIERCING BLOOD [E]" skillText.TextColor3 = Color3.fromRGB(255, 255, 255) skillText.Font = Enum.Font.SourceSansBold skillText.TextSize = 16 skillText.Parent = skillBarBG local function applySuperFling(targetPart) local bAngular = Instance.new("BodyAngularVelocity") bAngular.MaxTorque = Vector3.new(math.huge, math.huge, math.huge) bAngular.P = 10^6 bAngular.AngularVelocity = Vector3.new(0, 99999, 0) bAngular.Parent = targetPart local bVelocity = Instance.new("BodyVelocity") bVelocity.MaxForce = Vector3.new(math.huge, math.huge, math.huge) bVelocity.Velocity = Vector3.new(0, 500, 0) + (hrp.CFrame.lookVector * 1000) bVelocity.Parent = targetPart Debris:AddItem(bAngular, 0.4) Debris:AddItem(bVelocity, 0.4) end local function piercingBlood() if isOnCooldown then return end isOnCooldown = true local rs = torso:FindFirstChild("Right Shoulder") local ls = torso:FindFirstChild("Left Shoulder") if not rs or not ls then return end local oldRSC0 = rs.C0 local oldLSC0 = ls.C0 rs.C0 = rs.C0 * CFrame.Angles(0, 0, math.rad(90)) * CFrame.Angles(0, math.rad(90), 0) ls.C0 = ls.C0 * CFrame.Angles(0, 0, math.rad(-90)) * CFrame.Angles(0, math.rad(-90), 0) local sound1 = Instance.new("Sound", hrp) sound1.SoundId = "rbxassetid://139256846854084" sound1.Volume = 2 sound1:Play() Debris:AddItem(sound1, 2) local orbs = {} for i = 1, 4 do local orb = Instance.new("Part", workspace) orb.Shape, orb.Size = Enum.PartType.Ball, Vector3.new(0.5, 0.5, 0.5) orb.Color, orb.Material = Color3.fromRGB(120, 0, 0), Enum.Material.Neon orb.Anchored, orb.CanCollide = true, false table.insert(orbs, orb) end local chargeTime = 1 local startTime = tick() local connection connection = RunService.RenderStepped:Connect(function() local elapsed = tick() - startTime if elapsed >= chargeTime then connection:Disconnect() rs.C0, ls.C0 = oldRSC0, oldLSC0 for _, orb in ipairs(orbs) do orb:Destroy() end local sound2 = Instance.new("Sound", hrp) sound2.SoundId = "rbxassetid://117309911459587" sound2.Volume = 2.5 sound2:Play() Debris:AddItem(sound2, 3) local rayDirection = hrp.CFrame.LookVector * 200 local rayParams = RaycastParams.new() rayParams.FilterDescendantsInstances = {character} rayParams.FilterType = Enum.RaycastFilterType.Blacklist local rayResult = workspace:Raycast(hrp.Position, rayDirection, rayParams) if rayResult and rayResult.Instance then local targetModel = rayResult.Instance:FindFirstAncestorOfClass("Model") if targetModel and targetModel:FindFirstChild("Humanoid") then local targetHRP = targetModel:FindFirstChild("HumanoidRootPart") if targetHRP then hrp.CFrame = targetHRP.CFrame * CFrame.new(0, 0, -3.5) * CFrame.Angles(0, math.pi, 0) applySuperFling(targetHRP) end end end local laser = Instance.new("Part", workspace) laser.Anchored, laser.CanCollide = true, false laser.Material, laser.Color = Enum.Material.Neon, Color3.fromRGB(100, 0, 0) local dist = rayResult and rayResult.Distance or 150 laser.Size = Vector3.new(1.2, 1.2, dist) local lPos = hrp.CFrame.Position + (hrp.CFrame.LookVector * (dist/2)) + Vector3.new(0, 1, 0) laser.CFrame = CFrame.new(lPos, lPos + hrp.CFrame.LookVector) local tween = TweenService:Create(laser, TweenInfo.new(0.4), {Size = Vector3.new(0, 0, dist), Transparency = 1}) tween:Play() Debris:AddItem(laser, 0.4) return end for i, orb in ipairs(orbs) do local angle = (elapsed * 25) + (i * (math.pi/2)) local radius = 1.5 * (1 - elapsed) orb.CFrame = hrp.CFrame * CFrame.new(math.cos(angle)*radius, math.sin(angle)*radius + 1, -2.5) end end) skillBarFill.Size = UDim2.new(0, 0, 1, 0) TweenService:Create(skillBarFill, TweenInfo.new(cooldownTime), {Size = UDim2.new(1, 0, 1, 0)}):Play() task.delay(cooldownTime, function() isOnCooldown = false end) end UserInputService.InputBegan:Connect(function(i, p) if not p and i.KeyCode == Enum.KeyCode.E then piercingBlood() end end)