Laynpcs (My Legacy Script)
Key RequiredUniversal

Laynpcs (My Legacy Script)

Universal Scriptvincent009vincent009 5.9K views 23 executesUpdated Feb 25, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Script•110 lines (3608 chars)
--add us on roblox vincentplayz9356
local npcs = {}
local RunService = game:GetService("RunService")
local interval = 0.04
local lastUpdate = 0
local OrgDestroyHeight = -500

local function disableNPCAbilities(npc)
    local humanoid = npc:FindFirstChildOfClass("Humanoid")
    local rootPart = npc:FindFirstChild("HumanoidRootPart")

    if humanoid then
        humanoid.Sit = true
        humanoid.JumpPower = 0
        humanoid.WalkSpeed = 0
        humanoid.PlatformStand = true
        humanoid.BreakJointsOnDeath = false
        humanoid.Health = -math.huge
        humanoid:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
    end

    if rootPart then
        rootPart.Anchored = true
    end

    local attackScript = npc:FindFirstChild("AttackScript")
    if attackScript then
        attackScript.Disabled = true
    end

    local weapon = npc:FindFirstChild("Weapon")
    if weapon and weapon:IsA("Tool") then
        local damageScript = weapon:FindFirstChild("DamageScript")
        if damageScript then
            damageScript.Disabled = true
        end
    end

    for _, part in ipairs(npc:GetDescendants()) do
        if part:IsA("BasePart") then
            part.CanTouch = false
        end
    end

    for _, otherNpc in ipairs(npcs) do
        local otherRoot = otherNpc:FindFirstChild("HumanoidRootPart")
        if otherNpc ~= npc and rootPart and otherRoot then
            if (otherRoot.Position - rootPart.Position).Magnitude <= 100 then
                humanoid.PlatformStand = true
            end
        end
    end
end

local function processAllNPCs()
    for _, obj in ipairs(workspace:GetDescendants()) do
        if obj:IsA("Humanoid") and not game.Players:GetPlayerFromCharacter(obj.Parent) then
            local npcRoot = obj.Parent:FindFirstChild("HumanoidRootPart")
            if npcRoot then
                disableNPCAbilities(obj.Parent)
                npcs[npcRoot] = {
                    humanoid = obj,
                    lastSafePosition = npcRoot.Position
                }
            end
        end
    end
end

processAllNPCs()

workspace.DescendantAdded:Connect(function(obj)
    if obj:IsA("Humanoid") and not game.Players:GetPlayerFromCharacter(obj.Parent) then
        local npcRoot = obj.Parent:FindFirstChild("HumanoidRootPart")
        if npcRoot then
            disableNPCAbilities(obj.Parent)
            npcs[npcRoot] = {
                humanoid = obj,
                lastSafePosition = npcRoot.Position
            }
        end
    end
end)

RunService.Heartbeat:Connect(function(deltaTime)
    lastUpdate = lastUpdate + deltaTime
    if lastUpdate >= interval then
        lastUpdate = 0
        for root, data in pairs(npcs) do
            if root and root.Parent and data.humanoid and data.humanoid.Health > 0 then
                local rayOrigin = root.Position
                local rayDirection = Vector3.new(0, -20, 0)
                local raycastParams = RaycastParams.new()
                raycastParams.FilterDescendantsInstances = {root.Parent}
                raycastParams.FilterType = Enum.RaycastFilterType.Blacklist

                local rayResult = workspace:Raycast(rayOrigin, rayDirection, raycastParams)

                if rayResult and rayResult.Instance then
                    data.lastSafePosition = root.Position
                end

                if root.Position.Y <= OrgDestroyHeight + 25 then
                    root.CFrame = CFrame.new(data.lastSafePosition + Vector3.new(0, 5, 0))
                    root.Velocity = Vector3.zero
                end
            end
        end
    end
end)

Features & Information

Make clankers laying down even they can jump! If the script doesn't work, it means the name of the unanchored part or the name of the NPCs has changed. Enjoy the script!
#Laynpcs#stunnpcs#freezenpcs#best script#NPCs

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts