
Key RequiredUniversal

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)



w script
Even tho it's client sided it's still fun to use
no animation but it is really fun, if the aim was adjustable and it was FE then it would be the best script i have ever used