Nightmare r15
Key RequiredUniversal

Nightmare r15

Universal ScriptJustahackertwinJustahackertwin 2.5K views 773 executesUpdated Jan 10, 2026
5.0/ 5(2 votes)
20100% Positive
Lua Script•166 lines (5212 chars)
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local playerGui = player:WaitForChild("PlayerGui")
local animator = humanoid:WaitForChild("Animator")

if character:FindFirstChild("Animate") then
    character.Animate.Disabled = true
end


local animations = {
    spawn   = {id="rbxassetid://74150244741613", loop=false, speed=1},
    idle    = {id="rbxassetid://85141122321737", loop=true, speed=999999},
    walk    = {id="rbxassetid://109817439333419", loop=true, speed=999999},
    run     = {id="rbxassetid://73093555127023", loop=true, speed=999999},
    button1 = {text="Am i fine?", id="rbxassetid://84645813674648", loop=true, speed=999999},
    button2 = {text="Head break", id="rbxassetid://82923062885632", loop=true, speed=999999},
    button3 = {text="Am i...", id="rbxassetid://91910474477134", loop=true, speed=999999},
    button4 = {text="YOU CANT RUN", id="rbxassetid://134411626334329", loop=true, speed=999999, walkSpeed=35},
    button5 = {text="Clone tall", id="rbxassetid://100023547039593", loop=true, speed=999999},
}


local screenGui = Instance.new("ScreenGui")
screenGui.Parent = playerGui

local toggleBtn = Instance.new("TextButton")
toggleBtn.Size = UDim2.new(0, 120, 0, 40)
toggleBtn.Position = UDim2.new(0, 20, 0, 10)
toggleBtn.Text = "Toggle GUI"
toggleBtn.BackgroundColor3 = Color3.fromRGB(70,70,70)
toggleBtn.TextColor3 = Color3.fromRGB(255,255,255)
toggleBtn.Parent = screenGui

local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 250, 0, 350)
frame.Position = UDim2.new(0, 20, 0, 50)
frame.BackgroundColor3 = Color3.fromRGB(30,30,30)
frame.Active = true
frame.Draggable = true
frame.Parent = screenGui


local buttonObjects = {}
local yPos = 10
for i = 1,5 do
    local btn = Instance.new("TextButton")
    btn.Size = UDim2.new(0, 230, 0, 40)
    btn.Position = UDim2.new(0, 10, 0, yPos)
    btn.Text = animations["button"..i].text
    btn.BackgroundColor3 = Color3.fromRGB(50,50,50)
    btn.TextColor3 = Color3.fromRGB(255,255,255)
    btn.Parent = frame
    yPos = yPos + 50
    buttonObjects[i] = btn
end


local cancelBtn = Instance.new("TextButton")
cancelBtn.Size = UDim2.new(0, 230, 0, 40)
cancelBtn.Position = UDim2.new(0, 10, 0, yPos)
cancelBtn.Text = "Cancel Animation"
cancelBtn.BackgroundColor3 = Color3.fromRGB(200,50,50)
cancelBtn.TextColor3 = Color3.fromRGB(255,255,255)
cancelBtn.Parent = frame


local function playAnim(animId, loop, speed, priority)
    local anim = Instance.new("Animation")
    anim.AnimationId = animId
    local track = animator:LoadAnimation(anim)
    track.Priority = priority or Enum.AnimationPriority.Action
    track.Looped = loop
    track:Play()
    track:AdjustSpeed(speed)
    return track
end

local currentDance = nil
local currentAnimId = nil
local movementTrack = nil


local function updateMovement()
    if currentDance then return end
    if movementTrack then movementTrack:Stop() end
    local vel = character:FindFirstChild("HumanoidRootPart") and character.HumanoidRootPart.Velocity.Magnitude or 0
    if vel < 1 then
        movementTrack = playAnim(animations.idle.id, animations.idle.loop, animations.idle.speed, Enum.AnimationPriority.Core)
    elseif vel < humanoid.WalkSpeed then
        movementTrack = playAnim(animations.walk.id, animations.walk.loop, animations.walk.speed, Enum.AnimationPriority.Core)
    else
        movementTrack = playAnim(animations.run.id, animations.run.loop, animations.run.speed, Enum.AnimationPriority.Core)
    end
end

humanoid.Running:Connect(updateMovement)
humanoid.Jumping:Connect(updateMovement)
humanoid.StateChanged:Connect(updateMovement)


local function playDance(animTable)
    
    if currentAnimId == animTable.id then
        if currentDance then currentDance:Stop() end
        currentDance = nil
        currentAnimId = nil
        humanoid.WalkSpeed = 16
        updateMovement()
        return
    end

    
    if currentDance then
        currentDance:Stop()
        humanoid.WalkSpeed = 16
    end

    
    currentDance = playAnim(animTable.id, animTable.loop, animTable.speed, Enum.AnimationPriority.Action)
    currentAnimId = animTable.id

    
    humanoid.WalkSpeed = animTable.walkSpeed or 16

    currentDance.Stopped:Connect(function()
        if currentDance == currentDance then
            currentDance = nil
            currentAnimId = nil
            humanoid.WalkSpeed = 16
            updateMovement()
        end
    end)
end


for i, btn in ipairs(buttonObjects) do
    btn.MouseButton1Click:Connect(function()
        playDance(animations["button"..i])
    end)
end


cancelBtn.MouseButton1Click:Connect(function()
    if currentDance then
        currentDance:Stop()
        currentDance = nil
        currentAnimId = nil
        humanoid.WalkSpeed = 16
        updateMovement()
    end
end)


toggleBtn.MouseButton1Click:Connect(function()
    frame.Visible = not frame.Visible
end)


local spawnTrack = playAnim(animations.spawn.id, animations.spawn.loop, animations.spawn.speed, Enum.AnimationPriority.Action)
spawnTrack.Stopped:Connect(updateMovement)


updateMovement()

Features & Information

uh no ai bro sorry for making a troll script ngl just a gui moveable toggle and untoggle reset if you want the animation to disappear and there some bugs if you're using a animation don't use YOU CANT RUN it will bug you

Community Comments (1)

ThedemonThedemonJan 13, 2026

You have more haters because of the troll script.

More Scripts for Universal Scripts