FE MOD GOKU HABILIDADES
Key RequiredUniversal

FE MOD GOKU HABILIDADES

Universal Scriptaxelxanimesrobloxaxelxanimesroblox 3.7K views 44.3K executesUpdated Jan 16, 2026
5.0/ 5(3 votes)
30100% Positive
Lua Script•1148 lines (38382 chars)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local CoreGui = game:GetService("CoreGui")
local SoundService = game:GetService("SoundService")
local Lighting = game:GetService("Lighting")
local TweenService = game:GetService("TweenService")

local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local hrp = character:WaitForChild("HumanoidRootPart")
local mouse = player:GetMouse()
local camera = Workspace.CurrentCamera

local allConnections = {}
local originalGravity = Workspace.Gravity

local ANIMATIONS = {
    Idle = 72492959889389,
    Run = 18537384940,
    
    
    
    
    
}
local LOOP_ANIMATION_IDS = {}
for _, id in pairs(ANIMATIONS) do
    LOOP_ANIMATION_IDS["rbxassetid://" .. id] = true
end

local animationReloadAttempts = 0
local maxAnimationReloadAttempts = 5
local animationTracks = {}

local FLIGHT_ANIM_ID = "120303626369803"
local FLIGHT_IDLE_EMOTE_ID = "118287320739937"
local TELEPORT_EMOTE_ID = "133631846764964"
local FLIGHT_FAST_SOUND_ID = 596046130
local JUMP_SOUND_ID = 90860337520096
local TELEPORT_CHARGE_SOUND_ID = 5066021887
local KAIOKEN_ANIMATION_ID = 132846696697494
local KAIOKEN_EXPLOSION_SOUND_ID = 18704549552

local scriptActive = true

local originalSwimSpeed = 16
local customAnimationsLoaded = false
local originalAnimations = {
    Idle1 = nil,
    Idle2 = nil,
    Walk = nil,
    Run = nil,
    Jump = nil,
    Fall = nil,
    Climb = nil,
    Swim = nil,
    SwimIdle = nil
}

local flying = false
local flightSpeed = 55
local flightSpeedMode = 1
local FLIGHT_SPEEDS = {55, 100, 250}
local FLIGHT_MAX_SPEED = 500
local moveState = {forward = 0, backward = 0, left = 0, right = 0, up = 0, down = 0}
local currentVelocity = Vector3.new(0, 0, 0)
local currentCF = nil
local currentRoll = 0
local maxRoll = 45
local flightConns = {}
local currentAnimTrack = nil
local flightFastAnimTrack = nil
local lastMoveTime = tick()
local AUTO_RESET_DELAY = 0.01
local flightFastSound = nil
local flightIdleTrack = nil
local flightEmoteActive = false
local flightEmoteCooldown = false

local teleporting = false
local teleportGui = nil
local lastJumpSoundTime = 0

local isKaiokenActive = false
local kaiokenAnimTrack = nil
local kaiokenExplosionSound = nil
local kaiokenConnections = {}
local KAIOKEN_DURATION = 300
local kaiokenTimer = 0
local kaiokenExplosion = nil
local kaiokenFlameAura = nil
local kaiokenFlameParticles = {}
local KAIOKEN_FLAME_COLOR = Color3.fromRGB(255, 50, 50)
local KAIOKEN_FLAME_SIZE = 30
local kaiokenExplosionActive = false
local originalWalkSpeed = 16
local originalJumpPower = 50
local originalJumpHeight = 7.2
local originalUseJumpPower = false
local kaiokenUpdateConnection = nil
local originalBodyColors = {}

local function connect(event, func)
    local conn = event:Connect(func)
    table.insert(allConnections, conn)
    return conn
end

local function createKaiokenExplosion()
    if not character or not hrp then return end
    
    kaiokenExplosion = Instance.new("Part")
    kaiokenExplosion.Name = "KaiokenExplosion"
    kaiokenExplosion.Size = Vector3.new(5, 5, 5)
    kaiokenExplosion.Shape = Enum.PartType.Ball
    kaiokenExplosion.Material = Enum.Material.Neon
    kaiokenExplosion.BrickColor = BrickColor.new("Really red")
    kaiokenExplosion.Transparency = 0.2
    kaiokenExplosion.CanCollide = false
    kaiokenExplosion.Anchored = true
    kaiokenExplosion.Locked = true
    kaiokenExplosion.Position = hrp.Position
    kaiokenExplosion.Parent = Workspace
    
    local explosionLight = Instance.new("PointLight")
    explosionLight.Name = "KaiokenExplosionLight"
    explosionLight.Brightness = 30
    explosionLight.Range = 60
    explosionLight.Color = Color3.fromRGB(255, 100, 100)
    explosionLight.Parent = kaiokenExplosion
    
    for i = 1, 40 do
        local particle = Instance.new("ParticleEmitter")
        particle.Name = "ExplosionParticle" .. i
        particle.Texture = "rbxassetid://242563111"
        particle.Lifetime = NumberRange.new(0.3, 1.2)
        particle.Rate = 150
        particle.Speed = NumberRange.new(30, 70)
        particle.Size = NumberSequence.new({
            NumberSequenceKeypoint.new(0, 2.0),
            NumberSequenceKeypoint.new(0.3, 3.5),
            NumberSequenceKeypoint.new(0.7, 2.0),
            NumberSequenceKeypoint.new(1, 0)
        })
        particle.Transparency = NumberSequence.new({
            NumberSequenceKeypoint.new(0, 0),
            NumberSequenceKeypoint.new(0.5, 0.2),
            NumberSequenceKeypoint.new(1, 1)
        })
        particle.Color = ColorSequence.new({
            ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 150, 150)),
            ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255, 100, 100)),
            ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 50, 50))
        })
        particle.Acceleration = Vector3.new(0, 40, 0)
        particle.Rotation = NumberRange.new(0, 360)
        particle.RotSpeed = NumberRange.new(-100, 100)
        particle.Parent = kaiokenExplosion
    end
    
    task.spawn(function()
        for i = 1, 10 do
            if kaiokenExplosion then
                kaiokenExplosion.Size = kaiokenExplosion.Size + Vector3.new(1.5, 1.5, 1.5)
                explosionLight.Brightness = explosionLight.Brightness + 2
                explosionLight.Range = explosionLight.Range + 5
            end
            task.wait(0.05)
        end
        local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
        local tween = TweenService:Create(kaiokenExplosion, tweenInfo, {Size = Vector3.new(20, 20, 20), Transparency = 1})
        tween:Play()
        
        local lightTween = TweenService:Create(explosionLight, tweenInfo, {Brightness = 0, Range = 0})
        lightTween:Play()
    end)
end

local function applyKaiokenBuffs()
    if not humanoid then return end
    humanoid.WalkSpeed = 100
    humanoid.JumpHeight = 55
end

local function createKaiokenVisuals()
    if not character or not hrp then return end
    
    local bc = character:FindFirstChildWhichIsA("BodyColors")
    if bc then
        originalBodyColors = {
            Head = bc.HeadColor3,
            LArm = bc.LeftArmColor3,
            RArm = bc.RightArmColor3,
            LLeg = bc.LeftLegColor3,
            RLeg = bc.RightLegColor3,
            Torso = bc.TorsoColor3
        }
        local kColor = Color3.fromRGB(255, 150, 150)
        bc.HeadColor3 = kColor
        bc.LeftArmColor3 = kColor
        bc.RightArmColor3 = kColor
        bc.LeftLegColor3 = kColor
        bc.RightLegColor3 = kColor
        bc.TorsoColor3 = kColor
    end

    local highlight = Instance.new("Highlight")
    highlight.Name = "KaiokenHighlight"
    highlight.Adornee = character
    highlight.FillColor = Color3.fromRGB(255, 0, 0)
    highlight.OutlineColor = Color3.fromRGB(255, 0, 0)
    highlight.FillTransparency = 0.5
    highlight.OutlineTransparency = 0
    highlight.Parent = character

    local light = Instance.new("PointLight")
    light.Name = "KaiokenLight"
    light.Color = Color3.fromRGB(255, 0, 0)
    light.Brightness = 4
    light.Range = 16
    light.Parent = hrp
end

local function removeKaiokenBuffs()
    if not humanoid then return end
    humanoid.WalkSpeed = originalWalkSpeed
    humanoid.JumpPower = originalJumpPower
    humanoid.JumpHeight = originalJumpHeight
    humanoid.UseJumpPower = originalUseJumpPower
end

local function cleanupKaioken()
    if isKaiokenActive then
        removeKaiokenBuffs()
        
        if character:FindFirstChild("KaiokenHighlight") then
            character.KaiokenHighlight:Destroy()
        end
        if hrp:FindFirstChild("KaiokenLight") then
            hrp.KaiokenLight:Destroy()
        end
        
        local bc = character:FindFirstChildWhichIsA("BodyColors")
        if bc and originalBodyColors.Head then
            bc.HeadColor3 = originalBodyColors.Head
            bc.LeftArmColor3 = originalBodyColors.LArm
            bc.RightArmColor3 = originalBodyColors.RArm
            bc.LeftLegColor3 = originalBodyColors.LLeg
            bc.RightLegColor3 = originalBodyColors.RLeg
            bc.TorsoColor3 = originalBodyColors.Torso
        end
        
        if kaiokenAnimTrack then
            kaiokenAnimTrack:Stop(0.1)
            kaiokenAnimTrack = nil
        end
        if kaiokenExplosionSound then
            kaiokenExplosionSound:Stop()
            kaiokenExplosionSound:Destroy()
            kaiokenExplosionSound = nil
        end
        if kaiokenExplosion then
            kaiokenExplosion:Destroy()
            kaiokenExplosion = nil
        end
        for _, conn in ipairs(kaiokenConnections) do
            if conn and conn.Connected then
                pcall(function() conn:Disconnect() end)
            end
        end
        kaiokenConnections = {}
        isKaiokenActive = false
        kaiokenTimer = 0
        kaiokenExplosionActive = false
    end
end

local function cleanupEverything()
    scriptActive = false

    if flying then
        if flightFastSound then
            flightFastSound:Stop()
            flightFastSound:Destroy()
        end
        Workspace.Gravity = originalGravity
        if humanoid then
            humanoid.PlatformStand = false
        end
        if hrp then
            if hrp:FindFirstChild("FlyGyro") then hrp.FlyGyro:Destroy() end
            if hrp:FindFirstChild("FlyVelocity") then hrp.FlyVelocity:Destroy() end
        end
        if currentAnimTrack then currentAnimTrack:Stop(0.1) currentAnimTrack = nil end
        if flightFastAnimTrack then flightFastAnimTrack:Stop() flightFastAnimTrack = nil end
        if flightIdleTrack then flightIdleTrack:Stop() flightIdleTrack = nil end
    end

    for _, conn in ipairs(flightConns) do
        if conn and conn.Connected then
            pcall(function() conn:Disconnect() end)
        end
    end
    flightConns = {}
    moveState = {forward=0, backward=0, left=0, right=0, up=0, down=0}

    if teleportGui then
        teleportGui:Destroy()
        teleportGui = nil
    end

    cleanupKaioken()

    for _, conn in ipairs(allConnections) do
        if conn and conn.Connected then
            pcall(function() conn:Disconnect() end)
        end
    end
    allConnections = {}

    if humanoid then
        humanoid.WalkSpeed = 16
        humanoid.JumpPower = 50
        humanoid.UseJumpPower = true
        humanoid.PlatformStand = false

        local animate = character:FindFirstChild("Animate")
        if animate then animate.Disabled = false end
    end

    if customAnimationsLoaded then
        local character = player.Character
        if character then
            local animate = character:FindFirstChild("Animate")
            if animate then animate.Disabled = false end
        end
        customAnimationsLoaded = false
    end
    
    for _, track in pairs(animationTracks) do
        if track then
            pcall(function() track:Stop() end)
        end
    end

    flying = false
    teleporting = false
    isKaiokenActive = false
end

local function restoreOriginalAnimations()
    if not customAnimationsLoaded then return end
    local character = player.Character
    if not character then return end
    local animate = character:FindFirstChild("Animate")
    if not animate then return end

    if originalAnimations.Idle1 then
        local anim1 = animate.idle:FindFirstChild("Animation1")
        if anim1 then anim1.AnimationId = originalAnimations.Idle1 end
    end
    if originalAnimations.Idle2 then
        local anim2 = animate.idle:FindFirstChild("Animation2")
        if anim2 then anim2.AnimationId = originalAnimations.Idle2 end
    end
    if originalAnimations.Walk then
        local walkAnim = animate.walk:FindFirstChild("WalkAnim")
        if walkAnim then walkAnim.AnimationId = originalAnimations.Walk end
    end
    if originalAnimations.Run then
        local runAnim = animate.run:FindFirstChild("RunAnim")
        if runAnim then runAnim.AnimationId = originalAnimations.Run end
    end
    if originalAnimations.Jump then
        local jumpAnim = animate.jump:FindFirstChild("JumpAnim")
        if jumpAnim then jumpAnim.AnimationId = originalAnimations.Jump end
    end
    if originalAnimations.Fall then
        local fallAnim = animate.fall:FindFirstChild("FallAnim")
        if fallAnim then fallAnim.AnimationId = originalAnimations.Fall end
    end
    if originalAnimations.Climb then
        local climbAnim = animate.climb:FindFirstChild("ClimbAnim")
        if climbAnim then climbAnim.AnimationId = originalAnimations.Climb end
    end
    if originalAnimations.Swim then
        local swimAnim = animate.swim:FindFirstChild("Swim")
        if swimAnim then swimAnim.AnimationId = originalAnimations.Swim end
    end
    if originalAnimations.SwimIdle then
        local swimIdleAnim = animate.swimidle:FindFirstChild("SwimIdle")
        if swimIdleAnim then swimIdleAnim.AnimationId = originalAnimations.SwimIdle end
    end

    animate.Enabled = false
    task.wait(0.05)
    animate.Enabled = true
    customAnimationsLoaded = false
end

local function waitForAnimate(character, timeout)
    timeout = timeout or 1
    local startTime = tick()
    while tick() - startTime < timeout do
        local animate = character:FindFirstChild("Animate")
        if animate and animate:FindFirstChild("run") and animate:FindFirstChild("idle") then
            return animate
        end
        task.wait(0.1)
    end
    return nil
end

local function setAnimation(animationType, animationId, animate)
    if not animate or not animationId then return false end
    local success = pcall(function()
        local idStr = "rbxassetid://" .. tostring(animationId)
        if animationType == "Idle" then
            local anim1 = animate.idle:FindFirstChild("Animation1")
            local anim2 = animate.idle:FindFirstChild("Animation2")
            if anim1 then anim1.AnimationId = idStr end
            if anim2 then anim2.AnimationId = idStr end
        elseif animationType == "Walk" then
            local walkAnim = animate.walk:FindFirstChild("WalkAnim")
            if walkAnim then walkAnim.AnimationId = idStr end
        elseif animationType == "Run" then
            local runAnim = animate.run:FindFirstChild("RunAnim")
            if runAnim then runAnim.AnimationId = idStr end
        elseif animationType == "Jump" then
            local jumpAnim = animate.jump:FindFirstChild("JumpAnim")
            if jumpAnim then jumpAnim.AnimationId = idStr end
        elseif animationType == "Fall" then
            local fallAnim = animate.fall:FindFirstChild("FallAnim")
            if fallAnim then fallAnim.AnimationId = idStr end
        elseif animationType == "Climb" then
            local climbAnim = animate.climb:FindFirstChild("ClimbAnim")
            if climbAnim then climbAnim.AnimationId = idStr end
        elseif animationType == "Swim" and animate:FindFirstChild("swim") then
            local swimAnim = animate.swim:FindFirstChild("Swim")
            if swimAnim then swimAnim.AnimationId = idStr end
        elseif animationType == "SwimIdle" and animate:FindFirstChild("swimidle") then
            local swimIdleAnim = animate.swimidle:FindFirstChild("SwimIdle")
            if swimIdleAnim then swimIdleAnim.AnimationId = idStr end
        end
    end)
    return success
end

local function saveOriginalAnimations(animate)
    if not animate then return end
    originalAnimations = {
        Idle1 = nil,
        Idle2 = nil,
        Walk = nil,
        Run = nil,
        Jump = nil,
        Fall = nil,
        Climb = nil,
        Swim = nil,
        SwimIdle = nil
    }

    if animate.idle then
        local anim1 = animate.idle:FindFirstChild("Animation1")
        local anim2 = animate.idle:FindFirstChild("Animation2")
        if anim1 then originalAnimations.Idle1 = anim1.AnimationId end
        if anim2 then originalAnimations.Idle2 = anim2.AnimationId end
    end
    if animate.walk then
        local walkAnim = animate.walk:FindFirstChild("WalkAnim")
        if walkAnim then originalAnimations.Walk = walkAnim.AnimationId end
    end
    if animate.run then
        local runAnim = animate.run:FindFirstChild("RunAnim")
        if runAnim then originalAnimations.Run = runAnim.AnimationId end
    end
    if animate.jump then
        local jumpAnim = animate.jump:FindFirstChild("JumpAnim")
        if jumpAnim then originalAnimations.Jump = jumpAnim.AnimationId end
    end
    if animate.fall then
        local fallAnim = animate.fall:FindFirstChild("FallAnim")
        if fallAnim then originalAnimations.Fall = fallAnim.AnimationId end
    end
    if animate.climb then
        local climbAnim = animate.climb:FindFirstChild("ClimbAnim")
        if climbAnim then originalAnimations.Climb = climbAnim.AnimationId end
    end
    if animate:FindFirstChild("swim") then
        local swimAnim = animate.swim:FindFirstChild("Swim")
        if swimAnim then originalAnimations.Swim = swimAnim.AnimationId end
    end
    if animate:FindFirstChild("swimidle") then
        local swimIdleAnim = animate.swimidle:FindFirstChild("SwimIdle")
        if swimIdleAnim then originalAnimations.SwimIdle = swimIdleAnim.AnimationId end
    end
end

local function waitForCharacter()
    local character = player.Character or player.CharacterAdded:Wait()
    local humanoid = character:WaitForChild("Humanoid", 10)
    return character, humanoid
end

local function stopAllAnimations(hum)
    if not hum then return end
    for _, track in ipairs(hum:GetPlayingAnimationTracks()) do
        track:Stop(0)
    end
end

local function reloadAnimationsWithRetry()
    if not scriptActive then return false end
    
    for attempt = 1, maxAnimationReloadAttempts do
        local success = loadAnimations()
        if success then
            animationReloadAttempts = 0
            return true
        end
        
        if attempt < maxAnimationReloadAttempts then
            task.wait(0.5)
        end
    end
    
    animationReloadAttempts = animationReloadAttempts + 1
    if animationReloadAttempts >= 3 then
        return false
    end
    
    return false
end

local function loadAnimations()
    local character, humanoid = waitForCharacter()
    if not character or not humanoid then return false end
    local animate = waitForAnimate(character)
    if not animate then return false end

    saveOriginalAnimations(animate)
    stopAllAnimations(humanoid)
    task.wait(0.1)
    local animTypes = {"Idle", "Walk", "Run", "Jump", "Fall", "Climb", "Swim", "SwimIdle"}
    for _, animType in ipairs(animTypes) do
        if ANIMATIONS[animType] then
            setAnimation(animType, ANIMATIONS[animType], animate)
        end
    end
    animate.Enabled = false
    task.wait(0.1)
    animate.Enabled = true
    
    local function refreshState()
        if humanoid and humanoid.Parent then
            humanoid:ChangeState(Enum.HumanoidStateType.Landed)
            task.wait(0.05)
            humanoid:ChangeState(Enum.HumanoidStateType.Freefall)
        end
    end
    refreshState()
    
    customAnimationsLoaded = true
    return true
end

local function makeHumanoidInvisible()
    for _, part in ipairs(character:GetDescendants()) do
        if part:IsA("BasePart") or part:IsA("Decal") then
            part.Transparency = 1
        end
    end
end

local function makeHumanoidVisible()
    for _, part in ipairs(character:GetDescendants()) do
        if part:IsA("BasePart") then
            if part ~= hrp then
                part.Transparency = 0
            end
        elseif part:IsA("Decal") then
            part.Transparency = 0
        end
    end
end

local function disableFootstepSounds()
    for _, descendant in ipairs(character:GetDescendants()) do
        if descendant:IsA("Sound") and descendant.Name:lower():find("step") then
            descendant.Volume = 0
            if descendant.Playing then descendant:Stop() end
        end
    end
end

local function enableFootstepSounds()
    for _, descendant in ipairs(character:GetDescendants()) do
        if descendant:IsA("Sound") and descendant.Name:lower():find("step") then
            descendant.Volume = 1
        end
    end
end

local function playAnimation(animId, startTime, speed, loop)
    if not scriptActive then return end
    if not character or not humanoid then return end
    if currentAnimTrack then
        currentAnimTrack:Stop(0.1)
        currentAnimTrack = nil
    end
    for _, track in ipairs(humanoid:GetPlayingAnimationTracks()) do
        track:Stop()
    end
    local anim = Instance.new("Animation")
    anim.AnimationId = "rbxassetid://" .. tostring(animId)
    currentAnimTrack = humanoid:LoadAnimation(anim)
    currentAnimTrack.Looped = loop or false
    currentAnimTrack:Play()
    currentAnimTrack.TimePosition = startTime or 0
    currentAnimTrack:AdjustSpeed(speed or 1)
    animationTracks[animId] = currentAnimTrack
end

local function stopAnimation()
    if not humanoid then return end
    if currentAnimTrack then
        currentAnimTrack:Stop(0.1)
        currentAnimTrack = nil
    end
    for _, track in ipairs(humanoid:GetPlayingAnimationTracks()) do
        track:Stop()
    end
end

local function disableDefaultAnimate()
    if not character then return end
    local animate = character:FindFirstChild("Animate")
    if animate then animate.Disabled = true end
end

local function enableDefaultAnimate()
    if not character then return end
    local animate = character:FindFirstChild("Animate")
    if animate then animate.Disabled = false end
end

local function playFlightFastAnimation()
    if not scriptActive then return end
    if not humanoid then return end
    if flightFastAnimTrack then
        flightFastAnimTrack:Stop(0.1)
        flightFastAnimTrack = nil
    end
    local anim = Instance.new("Animation")
    anim.AnimationId = "rbxassetid://" .. FLIGHT_ANIM_ID
    flightFastAnimTrack = humanoid:LoadAnimation(anim)
    flightFastAnimTrack:Play()
    flightFastAnimTrack:AdjustSpeed(1.5)
end

local function stopFlightFastAnimation()
    if flightFastAnimTrack then
        flightFastAnimTrack:Stop(0.1)
        flightFastAnimTrack = nil
    end
end

local function playFlightIdleEmote()
    if flightIdleTrack then 
        flightIdleTrack:Stop() 
        flightIdleTrack = nil
    end
    
    if not humanoid or not flying then return end
    
    local anim = Instance.new("Animation")
    anim.AnimationId = "rbxassetid://" .. FLIGHT_IDLE_EMOTE_ID
    flightIdleTrack = humanoid:LoadAnimation(anim)
    flightIdleTrack.Priority = Enum.AnimationPriority.Action4
    flightIdleTrack:Play()
    flightIdleTrack.Looped = true
end

local function stopFlight()
    if not flying then return end
    flying = false
    
    for _, conn in ipairs(flightConns) do
        if conn and conn.Connected then
            pcall(function() conn:Disconnect() end)
        end
    end
    flightConns = {}
    moveState = {forward=0, backward=0, left=0, right=0, up=0, down=0}
    Workspace.Gravity = originalGravity
    if humanoid then
        humanoid.PlatformStand = false
    end
    stopAnimation()
    enableDefaultAnimate()
    stopFlightFastAnimation()
    if humanoid then
        humanoid.Jump = true
    end
    if hrp and hrp:FindFirstChild("FlyGyro") then hrp.FlyGyro:Destroy() end
    if hrp and hrp:FindFirstChild("FlyVelocity") then hrp.FlyVelocity:Destroy() end
end

local function startFlight()
    if not scriptActive then return end
    if flying or not character or not hrp or not humanoid then return end
    flying = true
    originalGravity = Workspace.Gravity
    Workspace.Gravity = 192.2
    humanoid.PlatformStand = true
    playAnimation(113420763488155, 4, 1, true)
    disableFootstepSounds()
    
    local gyro = Instance.new("BodyGyro")
    gyro.Name = "FlyGyro"
    gyro.Parent = hrp
    gyro.P = 90000
    gyro.MaxTorque = Vector3.new(9e9, 9e9, 9e9)
    gyro.CFrame = hrp.CFrame
    local bv = Instance.new("BodyVelocity")
    bv.Name = "FlyVelocity"
    bv.Parent = hrp
    bv.MaxForce = Vector3.new(9e9, 9e9, 9e9)
    bv.Velocity = Vector3.new(0, 0, 0)
    currentVelocity = Vector3.new(0, 0, 0)
    local lastUpdate = tick()
    lastMoveTime = tick()
    local flightUpdate = connect(RunService.RenderStepped, function(deltaTime)
        if not scriptActive then
            flightUpdate:Disconnect()
            return
        end
        if not character or not hrp or not humanoid then return end
        local cam = Workspace.CurrentCamera
        local now = tick()
        local delta = now - lastUpdate
        lastUpdate = now
        local fwd = moveState.forward - moveState.backward
        local side = moveState.right - moveState.left
        local moveDirection = Vector3.new(0, 0, 0)
        if fwd ~= 0 then
            moveDirection = moveDirection + (cam.CFrame.LookVector * fwd)
        end
        if side ~= 0 then
            moveDirection = moveDirection + (cam.CFrame.RightVector * side)
        end
        if moveDirection.Magnitude > 0 then
            moveDirection = moveDirection.Unit
        end
        local vertical = 0
        if moveState.up > 0 then
            vertical = 1
        elseif moveState.down > 0 then
            vertical = -1
        end
        local desiredVelocity = Vector3.new(0, 0, 0)
        if moveDirection.Magnitude > 0 then
            desiredVelocity = desiredVelocity + (moveDirection * flightSpeed)
        end
        if vertical ~= 0 then
            desiredVelocity = desiredVelocity + Vector3.new(0, vertical * flightSpeed * 0.6, 0)
        end
        local isMoving = desiredVelocity.Magnitude > 0.1
        if isMoving then
            lastMoveTime = now
            currentVelocity = currentVelocity:Lerp(desiredVelocity, 0.15)
            local desiredCF
            if fwd > 0 then
                desiredCF = cam.CFrame * CFrame.Angles(math.rad(0), 0, math.rad(currentRoll * 0.5))
            elseif fwd < 0 then
                desiredCF = cam.CFrame * CFrame.Angles(math.rad(30), 0, math.rad(currentRoll * 0.5))
            else
                desiredCF = cam.CFrame
            end
            if currentCF then
                currentCF = currentCF:Lerp(desiredCF, 0.25)
            else
                currentCF = desiredCF
            end
            gyro.CFrame = currentCF
        else
            currentVelocity = currentVelocity:Lerp(Vector3.new(0, 0, 0), 0.3)
            if now - lastMoveTime > AUTO_RESET_DELAY then
                flightSpeed = FLIGHT_SPEEDS[1]
            end
        end
        bv.Velocity = currentVelocity
    end)
    table.insert(flightConns, flightUpdate)
    local function onFlyInputBegan(input, gameProc)
        if not scriptActive then return end
        if gameProc then return end
        if input.UserInputType == Enum.UserInputType.Keyboard then
            local key = input.KeyCode
            if key == Enum.KeyCode.W then
                moveState.forward = 1
                if flightSpeed >= 100 then
                    playFlightFastAnimation()
                else
                    playAnimation(106345021112927, 15, 1, true)
                end
            elseif key == Enum.KeyCode.S then
                moveState.backward = 1
                playAnimation(132783162476851, 4, 1, true)
            elseif key == Enum.KeyCode.A then
                moveState.left = 1
            elseif key == Enum.KeyCode.D then
                moveState.right = 1
            elseif key == Enum.KeyCode.Space then
                moveState.up = 1
            elseif key == Enum.KeyCode.LeftControl then
                moveState.down = 1
            end
        end
    end
    local flyBegan = UserInputService.InputBegan:Connect(onFlyInputBegan)
    table.insert(flightConns, flyBegan)
    table.insert(allConnections, flyBegan)
    local function onFlyInputEnded(input, gameProc)
        if not scriptActive then return end
        if input.UserInputType == Enum.UserInputType.Keyboard then
            local key = input.KeyCode
            if key == Enum.KeyCode.W then
                moveState.forward = 0
                playAnimation(113420763488155, 4, 1, true)
            elseif key == Enum.KeyCode.S then
                moveState.backward = 0
                playAnimation(113420763488155, 4, 1, true)
            elseif key == Enum.KeyCode.A then
                moveState.left = 0
            elseif key == Enum.KeyCode.D then
                moveState.right = 0
            elseif key == Enum.KeyCode.Space then
                moveState.up = 0
            elseif key == Enum.KeyCode.LeftControl then
                moveState.down = 0
            end
        end
    end
    local flyEnded = UserInputService.InputEnded:Connect(onFlyInputEnded)
    table.insert(flightConns, flyEnded)
    table.insert(allConnections, flyEnded)
end

local function createTeleportGui()
    if teleportGui then teleportGui:Destroy() end
    
    teleportGui = Instance.new("ScreenGui", player.PlayerGui)
    teleportGui.Name = "TeleportGui"
    
    local mainFrame = Instance.new("Frame", teleportGui)
    mainFrame.Size = UDim2.new(0.3, 0, 0.5, 0)
    mainFrame.Position = UDim2.new(0.35, 0, 0.25, 0)
    mainFrame.BackgroundColor3 = Color3.fromRGB(255, 165, 0)
    mainFrame.BorderSizePixel = 0
    Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0, 12)
    
    local scroll = Instance.new("ScrollingFrame", mainFrame)
    scroll.Size = UDim2.new(1, -20, 1, -20)
    scroll.Position = UDim2.new(0, 10, 0, 10)
    scroll.BackgroundTransparency = 1
    scroll.ScrollBarThickness = 6
    
    local listLayout = Instance.new("UIListLayout", scroll)
    listLayout.Padding = UDim.new(0, 8)
    
    for _, p in ipairs(Players:GetPlayers()) do
        if p ~= player then
            local btn = Instance.new("TextButton", scroll)
            btn.Size = UDim2.new(1, 0, 0, 40)
            btn.BackgroundColor3 = Color3.fromRGB(230, 230, 230)
            btn.TextColor3 = Color3.new(0, 0, 0)
            btn.Text = p.Name
            btn.Font = Enum.Font.GothamBold
            btn.TextSize = 14
            Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 8)
            
            btn.MouseButton1Click:Connect(function()
                if teleporting then return end
                teleporting = true
                teleportGui:Destroy()
                teleportGui = nil
                
                local emoteAnim = Instance.new("Animation")
                emoteAnim.AnimationId = "rbxassetid://" .. TELEPORT_EMOTE_ID
                local emoteTrack = humanoid:LoadAnimation(emoteAnim)
                emoteTrack:Play()
                
                local chargeSound = Instance.new("Sound")
                chargeSound.SoundId = "rbxassetid://" .. TELEPORT_CHARGE_SOUND_ID
                chargeSound.Volume = 0.8
                chargeSound.Parent = hrp
                chargeSound:Play()
                
                local camera = Workspace.CurrentCamera
                local originalCameraType = camera.CameraType
                local originalCameraCFrame = camera.CFrame
                camera.CameraType = Enum.CameraType.Scriptable
                
                task.wait(0.5)
                
                local originalCFrame = hrp.CFrame
                makeHumanoidInvisible()
                hrp.CFrame = CFrame.new(0, 10000, 0)
                
                camera.CFrame = originalCameraCFrame
                
                task.wait(1)
                
                local targetChar = p.Character
                if targetChar and targetChar:FindFirstChild("HumanoidRootPart") then
                    hrp.CFrame = targetChar.HumanoidRootPart.CFrame * CFrame.new(0, 0, -5)
                else
                    hrp.CFrame = originalCFrame
                end
                
                makeHumanoidVisible()
                camera.CameraType = originalCameraType
                emoteTrack:Stop()
                teleporting = false
                
                if teleportGui then teleportGui:Destroy() teleportGui = nil end
            end)
        end
    end
end

local function getVehicleMass(model)
    if not model then return 0 end
    local totalMass = 0
    for _, part in ipairs(model:GetDescendants()) do
        if part:IsA("BasePart") then
            totalMass = totalMass + (part.AssemblyMass or part:GetMass())
        end
    end
    return math.max(totalMass, 1)
end

local function playKaiokenAnimation()
    if not scriptActive then return end
    if not character or not humanoid then return end
    if isKaiokenActive then return end
    
    originalWalkSpeed = humanoid.WalkSpeed
    originalJumpPower = humanoid.JumpPower
    originalJumpHeight = humanoid.JumpHeight
    originalUseJumpPower = humanoid.UseJumpPower
    
    humanoid.WalkSpeed = 0
    humanoid.JumpPower = 0
    humanoid.JumpHeight = 0
    
    stopAllAnimations(humanoid)
    if currentAnimTrack then
        currentAnimTrack:Stop(0.1)
        currentAnimTrack = nil
    end
    
    local camera = Workspace.CurrentCamera
    local originalCameraType = camera.CameraType
    
    camera.CameraType = Enum.CameraType.Scriptable
    local targetCFrame = CFrame.lookAt(hrp.Position + (hrp.CFrame.LookVector * 18) + Vector3.new(0, 5, 0), hrp.Position)
    local tween = TweenService:Create(camera, TweenInfo.new(1.5, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {CFrame = targetCFrame})
    tween:Play()

    local anim = Instance.new("Animation")
    anim.AnimationId = "rbxassetid://" .. tostring(KAIOKEN_ANIMATION_ID)
    kaiokenAnimTrack = humanoid:LoadAnimation(anim)
    kaiokenAnimTrack.Looped = false
    kaiokenAnimTrack:Play()
    kaiokenAnimTrack:AdjustSpeed(2,5)
    
    task.wait(0.5)
    
    createKaiokenExplosion()
    
    if not kaiokenExplosionSound then
        kaiokenExplosionSound = Instance.new("Sound")
        kaiokenExplosionSound.SoundId = "rbxassetid://" .. tostring(KAIOKEN_EXPLOSION_SOUND_ID)
        kaiokenExplosionSound.Volume = 1.0
        kaiokenExplosionSound.Looped = false
        kaiokenExplosionSound.Parent = hrp or character
    else
        kaiokenExplosionSound.Looped = false
    end
    kaiokenExplosionSound:Play()
    
    local explosionDuration = 1
    task.wait(explosionDuration)
    
    if kaiokenExplosion then
        kaiokenExplosion:Destroy()
        kaiokenExplosion = nil
    end
    
    if kaiokenExplosionSound then
        kaiokenExplosionSound:Stop()
        task.wait(0.1)
        kaiokenExplosionSound:Destroy()
        kaiokenExplosionSound = nil
    end
    
    camera.CameraType = originalCameraType

    applyKaiokenBuffs()
    createKaiokenVisuals()
    
    kaiokenTimer = KAIOKEN_DURATION
    isKaiokenActive = true
    kaiokenExplosionActive = true
    
    local animate = character:FindFirstChild("Animate")
    if animate then
        animate.Disabled = true
        task.wait(0.1)
        animate.Disabled = false
    end
    
    task.wait(0.5)
    kaiokenExplosionActive = false

    if flying then
        playAnimation(113420763488155, 4, 1, true)
    end
end

local function startKaioken()
    if not scriptActive then return end
    if isKaiokenActive then return end
    playKaiokenAnimation()
end

local function stopKaioken()
    cleanupKaioken()
end

local function updateKaiokenTimer(deltaTime)
    if isKaiokenActive and kaiokenTimer > 0 then
        kaiokenTimer = kaiokenTimer - deltaTime
        if kaiokenTimer <= 0 then
            stopKaioken()
        end
    end
end

local function createTools()
    local backpack = player:WaitForChild("Backpack")
    
    -- Vuelo (1)
    local flightTool = Instance.new("Tool")
    flightTool.Name = "vuelo"
    flightTool.TextureId = "rbxassetid://138393727967636"
    flightTool.RequiresHandle = false
    flightTool.Parent = backpack
    
    flightTool.Equipped:Connect(function()
        if flying then
            stopFlight()
        else
            startFlight()
        end
    end)

    -- Teletransporte (2)
    local tpTool = Instance.new("Tool")
    tpTool.Name = "teletransportacion"
    tpTool.TextureId = "rbxassetid://77738072756366"
    tpTool.RequiresHandle = false
    tpTool.Parent = backpack
    
    tpTool.Equipped:Connect(function()
        createTeleportGui()
    end)
    tpTool.Unequipped:Connect(function()
        if teleportGui then teleportGui:Destroy() teleportGui = nil end
    end)
    
    -- Kaio-ken (3)
    local kaiokenTool = Instance.new("Tool")
    kaiokenTool.Name = "kaioken (invisible)"
    kaiokenTool.TextureId = "rbxassetid://81438887708519"
    kaiokenTool.RequiresHandle = false
    kaiokenTool.Parent = backpack
    
    kaiokenTool.Equipped:Connect(function()
        if isKaiokenActive then
            stopKaioken()
        else
            startKaioken()
        end
    end)
end

connect(humanoid.StateChanged, function(_, newState)
    if newState == Enum.HumanoidStateType.Freefall then
        local currentTime = tick()
        local jumpSound = Instance.new("Sound")
        jumpSound.SoundId = "rbxassetid://" .. JUMP_SOUND_ID
        jumpSound.Volume = 0.7
        jumpSound.Parent = hrp
        jumpSound:Play()
        game.Debris:AddItem(jumpSound, 3)
        lastJumpSoundTime = currentTime
    end
end)

player.CharacterAdded:Connect(function(newChar)
    if not scriptActive then return end
    cleanupEverything()
    character = newChar
    humanoid = character:WaitForChild("Humanoid")
    hrp = character:WaitForChild("HumanoidRootPart")
    task.wait(0.5)
    reloadAnimationsWithRetry()
    createTools()
end)

humanoid.Died:Connect(function()
    cleanupEverything()
end)

connect(RunService.Heartbeat, function(deltaTime)
    if not scriptActive then return end
    
    if humanoid then
        for _, track in ipairs(humanoid:GetPlayingAnimationTracks()) do
            if track.Animation and LOOP_ANIMATION_IDS[track.Animation.AnimationId] and not track.Looped then
                track.Looped = true
            end
        end
    end
    
    if isKaiokenActive then
        updateKaiokenTimer(deltaTime)
    end
end)

createTools()
loadAnimations()

Features & Information

habilidades de goku solo selecciona el item y activaras dicha habilidad
#goku#dbz#mods#roblox

Community Comments (14)

KILOmanKILOmanJan 16, 2026

the flames are not visual but still cool

Replying to @KILOman
axelxanimesrobloxaxelxanimesrobloxJan 16, 2026

@BlackSun What happens is that the kaioken itself is an invisible ability, I say this because of the Namek thing, and by the way, I updated the kaioken, try again, although it's obvious that you won't see it in the kaioken xD because in the Frieza saga Goku used it invisibly.

Replying to @axelxanimesroblox
Monster_trio08Monster_trio08Jan 16, 2026

What you yapping for? Anyway I didn't unde what you said 😕

zue223zue223Jan 16, 2026

for what game

Replying to @zue223
axelxanimesrobloxaxelxanimesrobloxJan 16, 2026

@zue223 for any type

Replying to @axelxanimesroblox
zue223zue223Jan 16, 2026

@axelxanimesroblox is it FE or client sided, and do we need sum certain hats equiped? like on our avatar

Monster_trio08Monster_trio08Jan 16, 2026

R15/r6?

Replying to @Monster_trio08
axelxanimesrobloxaxelxanimesrobloxJan 16, 2026

@Monster_trio08 R15

Replying to @axelxanimesroblox
Monster_trio08Monster_trio08Jan 16, 2026

@axelxanimesroblox ok thanks

axelxanimesrobloxaxelxanimesrobloxJan 16, 2026

@someoneithink Yes, but make sure it's with R15

axelxanimesrobloxaxelxanimesrobloxJan 16, 2026

for any type

Monster_trio08Monster_trio08Jan 16, 2026

It's not working on jjsploit 🗿

Replying to @Monster_trio08
Monster_trio08Monster_trio08Jan 16, 2026

Well it worked 😀I just accused that didn't work anyways it worked on all executor but if the script didn't work it's signal problem

Monster_trio08Monster_trio08Jan 16, 2026

Pls do something I want to test it

More Scripts for Universal Scripts