Chaos Legend Hydra
Key RequiredUniversal

Chaos Legend Hydra

Universal Scriptsjjsksjsnnnsnssjjsksjsnnnsns 611 views 2.6K executesUpdated Sep 22, 2026
5.0/ 5(2 votes)
20100% Positive
Lua Script•228 lines (11747 chars)
--[[ 
   the model is saved by Dex ReContinued ;) 
   (absolute best dex project, you should try it)
]]

--[[ 
 GitHub Script Link: 
 https://raw.githubusercontent.com/Ahma174/Misc-Scripts/refs/heads/main/Secret%20Chaos%20Sorcerer.luau
]]

-- Code

if isfile("Chaos Legend Hydra.rbxm") then
  print("File Already Exists")
else
  local linkvar = "https://github.com/Ahma174/Assets/raw/refs/heads/main/ScriptAseets/Models/Chaos%20Legend%20Hydra.rbxm"
  local request = request({
     Url = linkvar,
     Method = "GET"
  })
 writefile("Chaos Legend Hydra.rbxm", request.Body)
end

local model = getcustomasset("Chaos Legend Hydra.rbxm")
local GetObjects = game:GetObjects(model)

local model2 = GetObjects[1]
model2.Parent = game.Players.LocalPlayer.Character

local base = model2.realBase
base.Anchored = false

local RunService = game:GetService("RunService")
local humanoid = game.Players.LocalPlayer.Character.Humanoid
local rootPart = game.Players.LocalPlayer.Character.HumanoidRootPart

task.wait(0.05)

-- Vibecoded Part --

-- Anim is now universal and works in every game
-- and this keyframe player is made by Claude ofc and modified some stuff to make it properly work
local animation = {
        {
                Time = 0,
                Poses = {
                        realBase = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        Base = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        Base2 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        Base3 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        LegPart1 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        LegPart2 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        LegPart3 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        LegPart4 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        LegPart5 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        LegPart6 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        LegPart7 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        LeftHorn4 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        LeftHorn5 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        RightHorn2 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        RightHorn3 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                }
        },
        {
                Time = 0.65,
                Poses = {
                        realBase = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        Base = CFrame.new(-4.98812156e-08,-0.799999356,5.11109829e-06,1,6.33108428e-08,-1.5162982e-11,-6.23516385e-08,0.98480773,-0.173648402,-1.09788942e-08,0.173648402,0.98480773),
                        Base2 = CFrame.new(0,0,0,0.682369113,-0.72311604,-0.107124329,0.247065052,0.366056234,-0.897196591,0.687990725,0.585752547,0.42844218),
                        Base3 = CFrame.new(0,0,0,0.619554162,0.784312069,0.0317371152,-0.581402957,0.485683024,-0.652750015,-0.52737391,0.38596195,0.756908298),
                        LegPart2 = CFrame.new(-0.071300894,0.121334687,-0.142100036,0.613420308,0.768090606,0.183718115,-0.702449143,0.636956394,-0.31757161,-0.360944211,0.065752238,0.930266619),
                        LegPart4 = CFrame.new(0,0,0,0.980251372,-0.141988188,-0.137646809,0.151647195,0.9864645,0.0623774603,0.126926824,-0.082019344,0.988515258),
                        LegPart5 = CFrame.new(0.0382393822,-0.171178535,-0.0960925221,0.698135972,-0.702039301,-0.140523985,0.644416273,0.530620635,0.550608218,-0.311983675,-0.47495535,0.822850883),
                        LegPart6 = CFrame.new(0,0,0,0.982754946,0.123737514,-0.137410924,-0.13742885,0.985940456,-0.0950510651,0.123717606,0.112296127,0.98594296),
                }
        },
        {
                Time = 0.7,
                Poses = {
                        realBase = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        Base = CFrame.new(-4.98812156e-08,-0.799999356,5.11109829e-06,1,6.33108428e-08,-1.5162982e-11,-6.23516385e-08,0.98480773,-0.173648402,-1.09788942e-08,0.173648402,0.98480773),
                        Base2 = CFrame.new(0,0,0,0.682369113,-0.72311604,-0.107124329,0.247065052,0.366056234,-0.897196591,0.687990725,0.585752547,0.42844218),
                        Base3 = CFrame.new(0,0,0,0.619554162,0.784312069,0.0317371152,-0.581402957,0.485683024,-0.652750015,-0.52737391,0.38596195,0.756908298),
                        LegPart2 = CFrame.new(-0.071300894,0.121334687,-0.142100036,0.613420308,0.768090606,0.183718115,-0.702449143,0.636956394,-0.31757161,-0.360944211,0.065752238,0.930266619),
                        LegPart4 = CFrame.new(0,0,0,0.980251372,-0.141988188,-0.137646809,0.151647195,0.9864645,0.0623774603,0.126926824,-0.082019344,0.988515258),
                        LegPart5 = CFrame.new(0.0382393822,-0.171178535,-0.0960925221,0.698135972,-0.702039301,-0.140523985,0.644416273,0.530620635,0.550608218,-0.311983675,-0.47495535,0.822850883),
                        LegPart6 = CFrame.new(0,0,0,0.982754946,0.123737514,-0.137410924,-0.13742885,0.985940456,-0.0950510651,0.123717606,0.112296127,0.98594296),
                }
        },
        {
                Time = 1.7,
                Poses = {
                        Base2 = CFrame.new(0,0,0,0.972744465,0.0331436098,-0.229498684,-0.145275921,0.858516753,-0.491776139,0.18072921,0.511713207,0.839932442),
                        Base3 = CFrame.new(0,0,0,0.98480773,0.0301536545,0.171010077,0,0.984807789,-0.17364797,-0.173648179,0.171009868,0.969846308),
                        LegPart1 = CFrame.new(-0.187938556,0,0.0684039518,0.939692736,0,0.342019737,0,1,0,-0.342019737,0,0.939692736),
                        LegPart2 = CFrame.new(0,0,0,0.939692438,0,-0.342020571,0,1,0,0.342020571,0,0.939692438),
                        LegPart3 = CFrame.new(0,0,0,0.98480773,0,0.173648179,0,1,0,-0.173648179,0,0.98480773),
                        LegPart4 = CFrame.new(0,0,0,0.984807789,0,0.17364797,0,1,0,-0.17364797,0,0.984807789),
                        LegPart5 = CFrame.new(0,0,0,0.939692616,0,-0.342020124,0,1,0,0.342020124,0,0.939692616),
                        LegPart6 = CFrame.new(0,0,0,0.984807789,0,0.17364797,0,1,0,-0.17364797,0,0.984807789),
                        LegPart7 = CFrame.new(0,0,0,0.984807789,0,0.17364797,0,1,0,-0.17364797,0,0.984807789),
                        LeftHorn4 = CFrame.new(0.196961552,-0.0347296372,0,0.98480773,0.171010062,0.0301536899,-0.173648179,0.969846249,0.171010062,0,-0.173648179,0.98480773),
                        LeftHorn5 = CFrame.new(0.196961552,-0.0342020169,0.0060307309,0.98480773,0.173648179,0,-0.171010077,0.969846308,0.17364797,0.0301536545,-0.171009868,0.984807789),
                        RightHorn2 = CFrame.new(0.196961552,-0.0347296372,0,0.98480773,0.171010062,-0.0301536899,-0.173648179,0.969846249,-0.171010062,0,0.173648179,0.98480773),
                        RightHorn3 = CFrame.new(0.196961552,-0.0347296372,0,0.98480773,0.171010077,-0.0301536545,-0.173648179,0.969846308,-0.171009868,0,0.17364797,0.984807789),
                }
        },
        {
                Time = 1.8,
                Poses = {
                        realBase = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        Base = CFrame.new(0,1.20000005,-1.49011612e-08,1,0,0,0,0.98480773,0.173648179,0,-0.173648179,0.98480773)
                }
        },
        {
                Time = 1.85,
                Poses = {
                        realBase = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        Base = CFrame.new(0,1.20000005,-1.49011612e-08,1,0,0,0,0.98480773,0.173648179,0,-0.173648179,0.98480773)
                }
        },
        {
                Time = 2.5,
                Poses = {
                        realBase = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        Base = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        Base2 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        Base3 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        LegPart1 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        LegPart2 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        LegPart3 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        LegPart4 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        LegPart5 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        LegPart6 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        LegPart7 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        LeftHorn4 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        LeftHorn5 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        RightHorn2 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                        RightHorn3 = CFrame.new(0,0,0,1,0,0,0,1,0,0,0,1),
                }
        },
}

local joints = {}
for _, obj in ipairs(model2:GetDescendants()) do
        if obj:IsA("Motor6D") and obj.Part1 then
                joints[obj.Part1.Name] = obj
        end
end

local tracks = {}
local duration = 0
for _, kf in ipairs(animation) do
        duration = math.max(duration, kf.Time)
        for name, cf in pairs(kf.Poses) do
                tracks[name] = tracks[name] or {}
                table.insert(tracks[name], {Time = kf.Time, CFrame = cf})
        end
end

local function sample(list, time)
        if time <= list[1].Time then
                return list[1].CFrame
        end
        for i = 2, #list do
                local a = list[i - 1]
                local b = list[i]
                if time <= b.Time then
                        local span = b.Time - a.Time
                        if span <= 0 then
                                return b.CFrame
                        end
                        return a.CFrame:Lerp(b.CFrame, (time - a.Time) / span)
                end
        end
        return list[#list].CFrame
end

local animationTime = 0
local animationSpeed = 1

RunService.RenderStepped:Connect(function(dt)
        animationTime = (animationTime + dt * animationSpeed) % duration

        for name, joint in pairs(joints) do
                local list = tracks[name]
                if list then
                        joint.Transform = sample(list, animationTime)
                end
        end
end)

local bodyPos = Instance.new("BodyPosition")
bodyPos.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
bodyPos.P = 20000
bodyPos.Position = rootPart.Position
bodyPos.Parent = base

local bodyGyro = Instance.new("BodyGyro")
bodyGyro.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
bodyGyro.CFrame = rootPart.CFrame
bodyGyro.Parent = base

local flyingOffset = CFrame.new(5, 1.25, -3)
local bobUp = false
local bobT = 0
local bobSpeed = 0.01
local bobMax = 1
local tiltAngle = 5

RunService.RenderStepped:Connect(function()
        if not bobUp then
                bobT = bobT + bobSpeed
                if bobT >= bobMax then bobUp = true end
                if tiltAngle < 5 then tiltAngle = tiltAngle + 0.1 end
        else
                bobT = bobT - bobSpeed
                if bobT <= 0 then bobUp = false end
                if tiltAngle > -5 then tiltAngle = tiltAngle - 0.1 end
        end
        local targetPos = (rootPart.CFrame * flyingOffset).p
        bodyPos.Position = Vector3.new(targetPos.X, targetPos.Y + bobT, targetPos.Z)
        if humanoid.MoveDirection == Vector3.new(0, 0, 0) then
                bodyGyro.CFrame = CFrame.new(base.Position, Vector3.new(rootPart.Position.X, base.Position.Y, rootPart.Position.Z)) * CFrame.Angles(math.rad(tiltAngle), 0, 0)
        else
                bodyGyro.CFrame = rootPart.CFrame * CFrame.Angles(math.rad(tiltAngle), 0, 0)
        end
end)

Features & Information

Chaos Legend Hydra Custom Ninja Legends Pet.

Community Comments (9)

Joooaaoooo22332Joooaaoooo22332Sep 23, 2026

Can you make a free gamepass for nds please?

Replying to @Joooaaoooo22332
sjjsksjsnnnsnssjjsksjsnnnsnsSep 25, 2026

@Joooaaoooo22332 I already did it

Replying to @sjjsksjsnnnsns
Joooaaoooo22332Joooaaoooo22332Sep 25, 2026

@sjjsksjsnnnsns where i cant find it?

Replying to @Joooaaoooo22332
sjjsksjsnnnsnssjjsksjsnnnsnsSep 26, 2026

@Joooaaoooo22332 Here loadstring(game:HttpGet("https://raw.githubusercontent.com/Ahma174/Tool/refs/heads/main/RedApple.luau"))() loadstring(game:HttpGet("https://raw.githubusercontent.com/Ahma174/Tool/refs/heads/main/GreenBalloon.luau"))()

Replying to @sjjsksjsnnnsns
Joooaaoooo22332Joooaaoooo22332Sep 26, 2026(edited)

@sjjsksjsnnnsns thanks but can you make yellow comp* too please?

Replying to @Joooaaoooo22332
sjjsksjsnnnsnssjjsksjsnnnsnsSep 26, 2026(edited)

@Joooaaoooo22332 loadstring(game:HttpGet("https://raw.githubusercontent.com/Ahma174/Tool/refs/heads/main/YellowComp*.luau"))() Add this in Change the * to a s s without the spaces cuz of the ScriptBlox filters

Replying to @sjjsksjsnnnsns
Joooaaoooo22332Joooaaoooo22332Sep 26, 2026

@sjjsksjsnnnsns THANKSSSS DUDEEEEE :))))))))))

Replying to @sjjsksjsnnnsns
Joooaaoooo22332Joooaaoooo22332Sep 27, 2026

@sjjsksjsnnnsns not asking too much but can you also make blue hammer for mobile too?

Replying to @Joooaaoooo22332
sjjsksjsnnnsnssjjsksjsnnnsnsOct 4, 2026(edited)

@Joooaaoooo22332 Here add it to the script Only works in nds loadstring(game:HttpGet("https://raw.githubusercontent.com/Ahma174/Tool/refs/heads/main/BlueHammer.luau"))()

More Scripts for Universal Scripts