
Key RequiredUniversal

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()



the flames are not visual but still cool
@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.
What you yapping for? Anyway I didn't unde what you said 😕
for what game
@zue223 for any type
@axelxanimesroblox is it FE or client sided, and do we need sum certain hats equiped? like on our avatar
R15/r6?
@Monster_trio08 R15
@axelxanimesroblox ok thanks
@someoneithink Yes, but make sure it's with R15
for any type
It's not working on jjsploit 🗿
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
Pls do something I want to test it