Bakugou FE
Key RequiredUniversal

Bakugou FE

Universal ScriptFeeyyyFeeyyy 1.3K views 58 executesUpdated Apr 1, 2026
4.0/ 5(5 votes)
4180% Positive
Lua Script•253 lines (11649 chars)
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local RunService = game:GetService("RunService")
local Debris = game:GetService("Debris")
local Players = game:GetService("Players")
local Lighting = game:GetService("Lighting")
local player = Players.LocalPlayer
local camera = workspace.CurrentCamera
local cooldowns = { E = false, Q = false, R = false }
local isOverdriveActive = false
local function screenShake(intensity, duration)
    local start = tick()
    local conn
    conn = RunService.RenderStepped:Connect(function()
        local elapsed = tick() - start
        if elapsed > duration then conn:Disconnect() return end
        local fade = 1 - (elapsed/duration)
        local cur = intensity * fade
        camera.CFrame = camera.CFrame * CFrame.Angles(
            math.rad((math.random()-0.5)*cur), 
            math.rad((math.random()-0.5)*cur), 0)
    end)
end

local function impactFrame(color, duration, transparency)
    local gui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui"))
    gui.IgnoreGuiInset = true
    local frame = Instance.new("Frame", gui)
    frame.Size = UDim2.new(1, 0, 1, 0)
    frame.BackgroundColor3 = color
    frame.BackgroundTransparency = transparency or 0
    TweenService:Create(frame, TweenInfo.new(duration, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundTransparency = 1}):Play()
    Debris:AddItem(gui, duration + 0.1)
end

local function createExpandingRing(pos, color, endSize, duration, orientation)
    local ring = Instance.new("Part", workspace)
    ring.Shape = Enum.PartType.Cylinder
    ring.Material = Enum.Material.Neon
    ring.Color = color
    ring.Size = Vector3.new(0.5, 2, 2)
    ring.Position = pos
    ring.Orientation = orientation or Vector3.new(0, 0, 90)
    ring.Anchored = true
    ring.CanCollide = false
    TweenService:Create(ring, TweenInfo.new(duration, Enum.EasingStyle.Quint, Enum.EasingDirection.Out), {Size = Vector3.new(0.1, endSize, endSize), Transparency = 1}):Play()
    Debris:AddItem(ring, duration + 0.1)
end

local function createFloatingDebris(pos, amount, power)
    for i = 1, (amount or 8) do
        local rock = Instance.new("Part", workspace)
        rock.Size = Vector3.new(math.random(1,4)/2, math.random(1,4)/2, math.random(1,4)/2)
        rock.Material = Enum.Material.Slate
        rock.Color = Color3.fromRGB(50, 50, 50)
        rock.Position = pos + Vector3.new(math.random(-5, 5), -2, math.random(-5, 5))
        rock.Anchored = true
        rock.CanCollide = false
        local upTween = TweenService:Create(rock, TweenInfo.new(1, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out), {
            Position = rock.Position + Vector3.new(0, math.random(10, power or 25), 0), Transparency = 1,
            Orientation = Vector3.new(math.random(-180, 180), math.random(-180, 180), math.random(-180, 180))
        })
        upTween:Play()
        Debris:AddItem(rock, 1.2)
    end
end
local function createKineticUI()
    if player:WaitForChild("PlayerGui"):FindFirstChild("KineticUI") then player.PlayerGui.KineticUI:Destroy() end
    local gui = Instance.new("ScreenGui", player.PlayerGui)
    gui.Name = "KineticUI"
    gui.ResetOnSpawn = false
    local mainFrame = Instance.new("Frame", gui)
    mainFrame.Size = UDim2.new(0, 260, 0, 150)
    mainFrame.Position = UDim2.new(1, -280, 0.5, -75)
    mainFrame.BackgroundColor3 = Color3.fromRGB(20, 10, 10)
    mainFrame.BorderSizePixel = 3
    mainFrame.BorderColor3 = Color3.fromRGB(255, 50, 0)
    local layout = Instance.new("UIListLayout", mainFrame)
    layout.SortOrder = Enum.SortOrder.LayoutOrder
    layout.Padding = UDim.new(0, 5)
    local function createSkillRow(key, name)
        local row = Instance.new("Frame", mainFrame)
        row.Size = UDim2.new(1, 0, 0, 38)
        row.BackgroundColor3 = Color3.fromRGB(40, 15, 15)
        row.BorderSizePixel = 0
        local keyLabel = Instance.new("TextLabel", row)
        keyLabel.Size = UDim2.new(0, 45, 1, 0)
        keyLabel.BackgroundTransparency = 1
        keyLabel.Text = "[" .. key .. "]"
        keyLabel.TextColor3 = Color3.fromRGB(255, 100, 0)
        keyLabel.Font = Enum.Font.GothamBlack
        keyLabel.TextSize = 20
        local nameLabel = Instance.new("TextLabel", row)
        nameLabel.Size = UDim2.new(1, -50, 1, 0)
        nameLabel.Position = UDim2.new(0, 50, 0, 0)
        nameLabel.BackgroundTransparency = 1
        nameLabel.Text = name
        nameLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
        nameLabel.Font = Enum.Font.GothamBold
        nameLabel.TextSize = 15
        nameLabel.TextXAlignment = Enum.TextXAlignment.Left
    end
    createSkillRow("E", "Heat Overdrive (Toggle)")
    createSkillRow("Q", "Sonic Impact (Dash)")
    createSkillRow("R", "World Stillness (Hyper)")
end
local overdriveAura, overdriveConn
local function toggleHeatOverdrive(character)
    local root = character:FindFirstChild("HumanoidRootPart")
    local humanoid = character:FindFirstChild("Humanoid")
    if not root or not humanoid then return end
    if isOverdriveActive then
        isOverdriveActive = false
        humanoid.WalkSpeed = 16
        if overdriveAura then overdriveAura:Destroy() end
        if overdriveConn then overdriveConn:Disconnect() end
        TweenService:Create(camera, TweenInfo.new(0.5), {FieldOfView = 70}):Play()
        return
    end
    isOverdriveActive = true
    humanoid.WalkSpeed = 60 
    impactFrame(Color3.fromRGB(255, 50, 0), 0.1, 0.5)
    screenShake(3, 0.3)
    TweenService:Create(camera, TweenInfo.new(0.5), {FieldOfView = 90}):Play()
    overdriveAura = Instance.new("Attachment", root)
    local fire = Instance.new("ParticleEmitter", overdriveAura)
    fire.Texture = "rbxassetid://284205403"
    fire.Color = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 200, 0)), ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 0, 0))})
    fire.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 2), NumberSequenceKeypoint.new(1, 0)})
    fire.Rate = 100
    fire.Speed = NumberRange.new(5, 10)
    fire.Lifetime = NumberRange.new(0.5)
    fire.EmissionDirection = Enum.NormalId.Top
    local lastFootstep = 0
    overdriveConn = RunService.Heartbeat:Connect(function()
        if root.AssemblyLinearVelocity.Magnitude > 20 and tick() - lastFootstep > 0.1 then
            lastFootstep = tick()
            createFloatingDebris(root.Position, 2, 10)
            local scorch = Instance.new("Part", workspace)
            scorch.Size = Vector3.new(3, 0.1, 3)
            scorch.Position = root.Position - Vector3.new(0, 2.5, 0)
            scorch.Anchored = true
            scorch.CanCollide = false
            scorch.Material = Enum.Material.Neon
            scorch.Color = Color3.fromRGB(255, 50, 0)
            TweenService:Create(scorch, TweenInfo.new(0.5), {Transparency = 1, Size = Vector3.new(0,0,0)}):Play()
            Debris:AddItem(scorch, 0.6)
        end
    end)
end
local function castSonicImpact(character)
    local root = character:FindFirstChild("HumanoidRootPart")
    local humanoid = character:FindFirstChild("Humanoid")
    if not root or not humanoid then return end
    local startPos = root.Position
    local dashDir = root.CFrame.LookVector
    local dashDistance = 80
    local machCone = Instance.new("Part", workspace)
    machCone.Size = Vector3.new(5, 5, 5)
    machCone.CFrame = root.CFrame * CFrame.Angles(math.rad(90), 0, 0)
    machCone.Material = Enum.Material.Neon
    machCone.Color = Color3.fromRGB(255, 255, 255)
    machCone.Anchored = true
    machCone.CanCollide = false
    local mesh = Instance.new("SpecialMesh", machCone)
    mesh.MeshType = Enum.MeshType.FileMesh
    mesh.MeshId = "rbxassetid://1033714" -- Cone Mesh
    mesh.Scale = Vector3.new(3, 10, 3)
    TweenService:Create(machCone, TweenInfo.new(0.3, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out), {
        CFrame = machCone.CFrame + (dashDir * dashDistance),
        Transparency = 1,
        Size = Vector3.new(10, 10, 10)
    }):Play()
    Debris:AddItem(machCone, 0.4)
    createExpandingRing(startPos, Color3.fromRGB(255, 100, 0), 40, 0.3)
    createFloatingDebris(startPos, 15, 30)
    screenShake(8, 0.3)
    impactFrame(Color3.fromRGB(255, 255, 255), 0.1)
    local targetCFrame = root.CFrame + (dashDir * dashDistance)
    local rayParams = RaycastParams.new()
    rayParams.FilterDescendantsInstances = {character}
    local hit = workspace:Raycast(startPos, dashDir * dashDistance, rayParams)
    if hit then targetCFrame = root.CFrame + (dashDir * (hit.Distance - 3)) end
    root.Anchored = true
    local dashTween = TweenService:Create(root, TweenInfo.new(0.15, Enum.EasingStyle.Linear), {CFrame = targetCFrame})
    dashTween:Play()
    dashTween.Completed:Connect(function()
        root.Anchored = false
        root.AssemblyLinearVelocity = Vector3.zero
        createExpandingRing(root.Position, Color3.fromRGB(255, 50, 0), 60, 0.4)
        createFloatingDebris(root.Position, 20, 40)
        screenShake(10, 0.4)
    end)
end
local function castWorldStillness(character)
    local root = character:FindFirstChild("HumanoidRootPart")
    local humanoid = character:FindFirstChild("Humanoid")
    if not root or not humanoid then return end
    impactFrame(Color3.fromRGB(255, 255, 255), 0.2, 0)
    screenShake(12, 0.5)
    createExpandingRing(root.Position, Color3.fromRGB(255, 255, 0), 200, 1)
    local cc = Instance.new("ColorCorrectionEffect", Lighting)
    cc.Saturation = -1 
    cc.Contrast = 0.5
    cc.Brightness = -0.2
    cc.TintColor = Color3.fromRGB(255, 255, 150)
    local origSpeed = humanoid.WalkSpeed
    humanoid.WalkSpeed = 150 
    local lightningAtt = Instance.new("Attachment", root)
    local lightning = Instance.new("ParticleEmitter", lightningAtt)
    lightning.Texture = "rbxassetid://284205403"
    lightning.Color = ColorSequence.new(Color3.fromRGB(255, 255, 0))
    lightning.Size = NumberSequence.new(4, 0)
    lightning.Speed = NumberRange.new(50, 150)
    lightning.Drag = 3
    lightning.SpreadAngle = Vector2.new(360, 360)
    lightning.Lifetime = NumberRange.new(0.2, 0.4)
    lightning.Squash = NumberSequence.new(5)
    lightning.Rate = 200
    local origFOV = camera.FieldOfView
    TweenService:Create(camera, TweenInfo.new(0.3), {FieldOfView = 110}):Play()
    task.delay(5, function()
        humanoid.WalkSpeed = origSpeed
        lightning:Destroy()
        lightningAtt:Destroy()
        TweenService:Create(cc, TweenInfo.new(1), {Saturation = 0, Contrast = 0, Brightness = 0, TintColor = Color3.fromRGB(255,255,255)}):Play()
        TweenService:Create(camera, TweenInfo.new(0.5), {FieldOfView = origFOV}):Play()
        Debris:AddItem(cc, 1.2)
        createExpandingRing(root.Position, Color3.fromRGB(255, 255, 255), 100, 0.5)
        screenShake(5, 0.3)
    end)
end
createKineticUI()
UserInputService.InputBegan:Connect(function(input, gameProcessed)
    if gameProcessed then return end
    local character = player.Character
    if not character then return end
    if input.KeyCode == Enum.KeyCode.E and not cooldowns.E then
        cooldowns.E = true
        toggleHeatOverdrive(character)
        task.delay(1, function() cooldowns.E = false end)
    end
    if input.KeyCode == Enum.KeyCode.Q and not cooldowns.Q then
        cooldowns.Q = true
        castSonicImpact(character)
        task.delay(4, function() cooldowns.Q = false end) 
    end
    if input.KeyCode == Enum.KeyCode.R and not cooldowns.R then
        cooldowns.R = true
        castWorldStillness(character)
        task.delay(12, function() cooldowns.R = false end) 
    end
end)

Features & Information

Best vfx test i have ever made, self-made not AI and please read this before you comment. alos gimme 1 like pls.

Community Comments (1)

Piranha17Piranha17Apr 2, 2026

*ing cool bro

More Scripts for Universal Scripts