
KeylessUniversal

local PRIVATE_MODEL_ID = "Noli Milestone 4"
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local Player = Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
local Humanoid = Character:WaitForChild("Humanoid")
local Root = Character:WaitForChild("HumanoidRootPart")
local Camera = Workspace.CurrentCamera
local WALK_SPEED = 7.5
local RUN_SPEED = 27.5
local RunMode = false
local currentAnim
local UsingAbility = false
local ObservantActive = false
local BlockingAnimation = false -- blocks Idle/Walk/Run overrides
-- Animator6D
if not getgenv().Animator6DLoadedPro then
loadstring(game:HttpGet(
"https://raw.githubusercontent.com/gObl00x/Stuff/refs/heads/main/Animator6D.lua"
))()
repeat task.wait() until getgenv().Animator6DLoadedPro
end
local model = game:GetObjects(getcustomasset(PRIVATE_MODEL_ID..".rbxmx"))[1]
local Animations = {}
local function scan(obj)
if obj:IsA("KeyframeSequence") then
table.insert(Animations,obj)
end
for _,v in ipairs(obj:GetChildren()) do
scan(v)
end
end
scan(model)
local Idle, Walk, Run, Stab, Nova
local VoidStart, VoidLoop, VoidEnd, StartDashCombo, EndDashNonChar
local ObservantStart, ObservantLoop, ObservantTeleport
for _,anim in ipairs(Animations) do
local n = anim.Name:lower()
if n:find("idle") then Idle = anim
elseif n:find("walk") then Walk = anim
elseif n:find("run") or n:find("sprint") then Run = anim
elseif n:find("stab") then Stab = anim
elseif n == "nova" then Nova = anim
elseif n == "voidrushstart" then VoidStart = anim
elseif n == "loopdashinit" then VoidLoop = anim
elseif n == "voidrushend" then VoidEnd = anim
elseif n == "startdashcombo" then StartDashCombo = anim
elseif n == "enddashnonchar" then EndDashNonChar = anim
elseif n == "observantstart" then ObservantStart = anim
elseif n == "observantloop" then ObservantLoop = anim
elseif n == "observantteleport" then ObservantTeleport = anim
end
end
Idle = Idle or Animations[1]
Walk = Walk or Animations[1]
local function Play(anim, looped)
if currentAnim == anim then return end
getgenv().Animator6DStop()
task.wait(0.03)
getgenv().Animator6D(anim,1,looped~=false)
currentAnim = anim
end
local function GetAnimLength(anim)
local length = 0
for _,kf in ipairs(anim:GetKeyframes()) do
if kf.Time > length then length = kf.Time end
end
return length
end
local function UpdateSpeed()
Humanoid.WalkSpeed = RunMode and RUN_SPEED or WALK_SPEED
end
local gui = Instance.new("ScreenGui", Player.PlayerGui)
local runBtn = Instance.new("TextButton", gui)
runBtn.Size = UDim2.new(0,160,0,45)
runBtn.Position = UDim2.new(0.02,0,0.2,0)
runBtn.Text = "RUN: OFF"
runBtn.BackgroundColor3 = Color3.fromRGB(30,30,30)
runBtn.TextColor3 = Color3.new(1,1,1)
runBtn.Active = true
runBtn.Draggable = true
Instance.new("UICorner", runBtn)
runBtn.MouseButton1Click:Connect(function()
RunMode = not RunMode
UpdateSpeed()
runBtn.Text = RunMode and "RUN: ON" or "RUN: OFF"
end)
local stabBtn = Instance.new("TextButton", gui)
stabBtn.Size = UDim2.new(0,160,0,45)
stabBtn.Position = UDim2.new(0.02,0,0.27,0)
stabBtn.Text = "STAB"
stabBtn.BackgroundColor3 = Color3.fromRGB(50,20,20)
stabBtn.TextColor3 = Color3.new(1,1,1)
stabBtn.Active = true
stabBtn.Draggable = true
Instance.new("UICorner", stabBtn)
stabBtn.MouseButton1Click:Connect(function()
if not Stab or UsingAbility then return end
UsingAbility = true
BlockingAnimation = true
Play(Stab,false)
task.delay(GetAnimLength(Stab)+0.05,function()
UsingAbility=false
BlockingAnimation=false
end)
end)
local novaBtn = Instance.new("TextButton", gui)
novaBtn.Size = UDim2.new(0,160,0,45)
novaBtn.Position = UDim2.new(0.02,0,0.34,0)
novaBtn.Text = "NOVA"
novaBtn.BackgroundColor3 = Color3.fromRGB(20,20,60)
novaBtn.TextColor3 = Color3.new(1,1,1)
novaBtn.Active = true
novaBtn.Draggable = true
Instance.new("UICorner", novaBtn)
novaBtn.MouseButton1Click:Connect(function()
if not Nova or UsingAbility then return end
UsingAbility = true
BlockingAnimation = true
Play(Nova,false)
task.delay(GetAnimLength(Nova)+0.05,function()
UsingAbility=false
BlockingAnimation=false
end)
end)
local voidBtn = Instance.new("TextButton", gui)
voidBtn.Size = UDim2.new(0,160,0,45)
voidBtn.Position = UDim2.new(0.02,0,0.41,0)
voidBtn.Text = "VOID RUSH"
voidBtn.BackgroundColor3 = Color3.fromRGB(60,0,80)
voidBtn.TextColor3 = Color3.new(1,1,1)
voidBtn.Active = true
voidBtn.Draggable = true
Instance.new("UICorner", voidBtn)
voidBtn.MouseButton1Click:Connect(function()
if UsingAbility then return end
if not (VoidStart and VoidLoop and VoidEnd and StartDashCombo and EndDashNonChar) then return end
UsingAbility = true
BlockingAnimation = true
local function Dash(speed,duration)
local hitDetected = false
local startTime = tick()
local conn
conn = RunService.RenderStepped:Connect(function()
if tick()-startTime >= duration or hitDetected then
conn:Disconnect()
return
end
local look = Camera.CFrame.LookVector
local flatLook = Vector3.new(look.X,0,look.Z).Unit
Root.CFrame = CFrame.new(Root.Position, Root.Position + flatLook)
Root.Velocity = speed * flatLook
end)
local touchConn
touchConn = Root.Touched:Connect(function(hit)
local hum = hit.Parent and hit.Parent:FindFirstChild("Humanoid")
if hum and hit.Parent ~= Character then
hitDetected = true
touchConn:Disconnect()
end
end)
while tick()-startTime < duration and not hitDetected do task.wait(0.03) end
conn:Disconnect()
if touchConn.Connected then touchConn:Disconnect() end
return hitDetected
end
Play(VoidStart,false)
task.wait(GetAnimLength(VoidStart))
Play(VoidLoop,true)
local firstHit = Dash(60,4)
if firstHit then
task.wait(1)
Play(StartDashCombo,false)
task.wait(GetAnimLength(StartDashCombo))
local secondHit = false
local startTime2 = tick()
Play(VoidLoop,true)
local conn2
conn2 = RunService.RenderStepped:Connect(function()
if tick()-startTime2 >=4 then conn2:Disconnect() return end
local look = Camera.CFrame.LookVector
local flatLook = Vector3.new(look.X,0,look.Z).Unit
Root.CFrame = CFrame.new(Root.Position, Root.Position + flatLook)
Root.Velocity = (secondHit and 80 or 110) * flatLook
end)
local touchConn2
touchConn2 = Root.Touched:Connect(function(hit)
local hum = hit.Parent and hit.Parent:FindFirstChild("Humanoid")
if hum and hit.Parent ~= Character then
secondHit = true
Play(EndDashNonChar,false)
task.wait(GetAnimLength(EndDashNonChar))
if conn2.Connected then conn2:Disconnect() end
if touchConn2.Connected then touchConn2:Disconnect() end
end
end)
while tick()-startTime2 <4 and not secondHit do task.wait(0.03) end
if conn2.Connected then conn2:Disconnect() end
if touchConn2.Connected then touchConn2:Disconnect() end
else
Play(VoidEnd,false)
task.wait(GetAnimLength(VoidEnd))
end
UsingAbility=false
BlockingAnimation=false
end)
local observantBtn = Instance.new("TextButton", gui)
observantBtn.Size = UDim2.new(0,160,0,45)
observantBtn.Position = UDim2.new(0.02,0,0.48,0)
observantBtn.Text = "OBSERVANT"
observantBtn.BackgroundColor3 = Color3.fromRGB(20,60,20)
observantBtn.TextColor3 = Color3.new(1,1,1)
observantBtn.Active = true
observantBtn.Draggable = true
Instance.new("UICorner", observantBtn)
local teleporting = false
local HasTeleported = false
local ObservantMouseConn
observantBtn.MouseButton1Click:Connect(function()
ObservantActive = not ObservantActive
HasTeleported = false
if ObservantActive then
BlockingAnimation = true -- recommend to not set to false
Play(ObservantStart,false)
task.wait(GetAnimLength(ObservantStart))
spawn(function()
while ObservantActive and not teleporting do
Play(ObservantLoop,true)
task.wait(0.1)
end
end)
local mouse = Player:GetMouse()
if ObservantMouseConn then ObservantMouseConn:Disconnect() end
ObservantMouseConn = mouse.Button1Down:Connect(function()
if teleporting or HasTeleported or not ObservantActive then return end
teleporting = true
HasTeleported = true
local targetPos = mouse.Hit.Position
Play(ObservantTeleport,false)
task.delay(1.45,function()
Root.CFrame = CFrame.new(targetPos + Vector3.new(0,3,0))
end)
task.delay(GetAnimLength(ObservantTeleport),function()
teleporting = false
BlockingAnimation = false
end)
end)
else
if ObservantMouseConn then ObservantMouseConn:Disconnect() end
BlockingAnimation = false
end
end)
RunService.RenderStepped:Connect(function()
if BlockingAnimation then return end
local moving = Humanoid.MoveDirection.Magnitude > 0
if moving then
if RunMode and Run then Play(Run,true) else Play(Walk,true) end
else
Play(Idle,true)
end
end)
Player.CharacterAdded:Connect(function(c)
Character = c
Humanoid = c:WaitForChild("Humanoid")
Root = c:WaitForChild("HumanoidRootPart")
UpdateSpeed()
end)
Humanoid.WalkSpeed=WALK_SPEED
![[KEYLESS] Moondiety Script | 17+ supported Games](https://scriptblox.com/images/sb/0-1753093706828.png)


where's the rbxmx download link?
@WhyAreYouReadingThi https://scriptblox.com/script/Forsaken-Get-noli-anims-153661
how to use it i cant find the gui