Limiteds free visual
Key RequiredUniversal

Limiteds free visual

Universal Script98719871 2.4K views 16.5K executesUpdated Apr 10, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•289 lines (8773 chars)
-- READ THE DESC READ THE DESC DON'T BEEE DUUUUUUMMMMMMBBBBB
-- READ THE DESC READ THE DESC DON'T BEEE DUUUUUUMMMMMMBBBBB
-- READ THE DESC READ THE DESC DON'T BEEE DUUUUUUMMMMMMBBBBB
-- READ THE DESC READ THE DESC DON'T BEEE DUUUUUUMMMMMMBBBBB
-- READ THE DESC READ THE DESC DON'T BEEE DUUUUUUMMMMMMBBBBB
-- READ THE DESC READ THE DESC DON'T BEEE DUUUUUUMMMMMMBBBBB
-- READ THE DESC READ THE DESC DON'T BEEE DUUUUUUMMMMMMBBBBB
-- READ THE DESC READ THE DESC DON'T BEEE DUUUUUUMMMMMMBBBBB
-- READ THE DESC READ THE DESC DON'T BEEE DUUUUUUMMMMMMBBBBB
-- READ THE DESC READ THE DESC DON'T BEEE DUUUUUUMMMMMMBBBBB


getgenv().Time = 0.1
getgenv().Head = {
    215718515,
    74891470,
    1744060292
}
getgenv().Torso = {
    0000000000
}
getgenv().Headless = true

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer

local activeAccessories = {}
local headlessConnection = nil
local isHeadlessActive = false

local function weldParts(part0, part1, c0, c1)
    for _, child in pairs(part1:GetChildren()) do
        if child:IsA("Weld") or child:IsA("WeldConstraint") or child.Name == "AccessoryWeld" then
            child:Destroy()
        end
    end
    
    local weld = Instance.new("Weld")
    weld.Name = "AccessoryWeld"
    weld.Part0 = part0
    weld.Part1 = part1
    weld.C0 = c0
    weld.C1 = c1
    weld.Parent = part0
    return weld
end

local function findAttachment(rootPart, name)
    if not rootPart then return nil end
    for _, descendant in pairs(rootPart:GetDescendants()) do
        if descendant:IsA("Attachment") and descendant.Name == name then
            return descendant
        end
    end
    return nil
end

local function safeGetObjects(assetId)
    local success, result = pcall(function()
        return game:GetObjects("rbxassetid://" .. tostring(assetId))
    end)
    if success and result and #result > 0 then
        return result[1]
    end
    return nil
end

local function addAccessoryToCharacter(accessoryId, parentPart, character)
    if not parentPart or not parentPart.Parent then 
        return 
    end
    
    local accessoryKey = tostring(accessoryId) .. "_" .. parentPart.Name
    if activeAccessories[accessoryKey] then
        activeAccessories[accessoryKey]:Destroy()
    end

    local accessory = safeGetObjects(accessoryId)
    if not accessory then return end
    
    accessory.Name = accessory.Name .. "_Custom"
    accessory.Parent = workspace

    local handle = accessory:FindFirstChild("Handle")
    if not handle then 
        accessory:Destroy()
        return 
    end

    if not handle:IsA("BasePart") then
        accessory:Destroy()
        return
    end

    local attachment = handle:FindFirstChildOfClass("Attachment")
    
    if attachment then
        local parentAttachment = findAttachment(parentPart, attachment.Name)
        if parentAttachment then
            weldParts(parentPart, handle, parentAttachment.CFrame, attachment.CFrame)
        else
            weldParts(parentPart, handle, CFrame.new(0, 0, 0), attachment.CFrame)
        end
    else
        local attachmentPoint = accessory:FindFirstChild("AttachmentPoint")
        local c1 = attachmentPoint and attachmentPoint.CFrame or CFrame.new()
        local offset = parentPart.Name == "Head" and CFrame.new(0, 0.5, 0) or CFrame.new(0, 0, 0)
        weldParts(parentPart, handle, offset, c1)
    end

    handle.CanCollide = false
    accessory.Parent = character
    activeAccessories[accessoryKey] = accessory
    
    accessory.AncestryChanged:Connect(function(_, parent)
        if parent == nil and character and character.Parent then
            task.delay(0.1, function()
                if character and character.Parent then
                    accessory.Parent = character
                end
            end)
        end
    end)
end

local function forceHeadless(head)
    head.Transparency = 1
    for _, child in pairs(head:GetChildren()) do
        if child:IsA("Decal") or child.Name == "face" then
            child.Transparency = 1
        end
    end
    
    local headMesh = head:FindFirstChildOfClass("SpecialMesh") or head:FindFirstChild("Mesh")
    if headMesh then
        headMesh.Scale = Vector3.new(0.001, 0.001, 0.001)
    end
end

local function showHead(head)
    head.Transparency = 0
    for _, child in pairs(head:GetChildren()) do
        if child:IsA("Decal") or child.Name == "face" then
            child.Transparency = 0
        end
    end
    
    local headMesh = head:FindFirstChildOfClass("SpecialMesh") or head:FindFirstChild("Mesh")
    if headMesh then
        headMesh.Scale = Vector3.new(1, 1, 1)
    end
end

local function removeHeadlessAccessory(character)
    for key, accessory in pairs(activeAccessories) do
        if key:find("headless") then
            if accessory and accessory.Parent then
                accessory:Destroy()
            end
            activeAccessories[key] = nil
        end
    end
end

local function applyHeadless(character)
    if headlessConnection then
        headlessConnection:Disconnect()
        headlessConnection = nil
    end
    
    local head = character:WaitForChild("Head", 3)
    if not head then return end
    
    if getgenv().Headless == true then
        isHeadlessActive = true
        forceHeadless(head)
        
        local headAccessory = safeGetObjects(134082579)
        if headAccessory then
            headAccessory.Name = "HeadlessHead"
            headAccessory.Parent = workspace
            local handle = headAccessory:FindFirstChild("Handle")
            if handle then
                handle.CanCollide = false
                handle.Transparency = 1
                handle.Size = Vector3.new(0.001, 0.001, 0.001)
                
                local mesh = handle:FindFirstChildOfClass("SpecialMesh") or handle:FindFirstChildOfClass("MeshPart")
                if mesh then
                    mesh.Scale = Vector3.new(0.001, 0.001, 0.001)
                end
                
                weldParts(head, handle, CFrame.new(0, 0, 0), CFrame.new())
                headAccessory.Parent = character
                activeAccessories["headless_" .. character.Name] = headAccessory
            else
                headAccessory:Destroy()
            end
        end
        
        headlessConnection = RunService.Heartbeat:Connect(function()
            if not isHeadlessActive then return end
            if character and character.Parent and head and head.Parent then
                if head.Transparency ~= 1 then
                    forceHeadless(head)
                end
                for _, child in pairs(head:GetChildren()) do
                    if (child:IsA("Decal") or child.Name == "face") and child.Transparency ~= 1 then
                        child.Transparency = 1
                    end
                end
            else
                headlessConnection:Disconnect()
                headlessConnection = nil
            end
        end)
    else
        isHeadlessActive = false
        showHead(head)
        removeHeadlessAccessory(character)
    end
end

local function onCharacterAdded(character)
    activeAccessories = {}
    
    if headlessConnection then
        headlessConnection:Disconnect()
        headlessConnection = nil
    end
    
    local head, torso
    local waited = 0
    local maxWait = 5
    
    repeat
        task.wait(0.05)
        waited = waited + 0.05
        head = character:FindFirstChild("Head")
        torso = character:FindFirstChild("UpperTorso") or character:FindFirstChild("Torso")
    until (head and torso) or waited >= maxWait
    
    if not head then
        return
    end
    
    task.wait(getgenv().Time)
    
    applyHeadless(character)
    
    for _, accessoryId in ipairs(getgenv().Head) do
        if accessoryId and accessoryId ~= 0 then
            task.spawn(function()
                addAccessoryToCharacter(accessoryId, head, character)
            end)
        end
    end

    for _, accessoryId in ipairs(getgenv().Torso) do
        if accessoryId and accessoryId ~= 0 then
            task.spawn(function()
                addAccessoryToCharacter(accessoryId, torso, character)
            end)
        end
    end
end

player.CharacterAdded:Connect(onCharacterAdded)

if player.Character then
    task.spawn(function()
        onCharacterAdded(player.Character)
    end)
end

player.CharacterRemoving:Connect(function()
    if headlessConnection then
        headlessConnection:Disconnect()
        headlessConnection = nil
    end
    
    for key, accessory in pairs(activeAccessories) do
        if accessory and accessory.Parent then
            accessory:Destroy()
        end
    end
    activeAccessories = {}
end)

Features & Information

VISSSSSSUUUAAAAALLLLL DON'T ASK Recommend auto execute if you plan to use #larp If headless boolean is set to true and you set to false respawn after execution on false reset again if you set it back to true Changes I made: added headless boolean false/true fixed a bug where when respawning sometimes or morphing deleted it Original post: https://scriptblox.com/script/Universal-Script-Free-limiteds-check-desc-17120
#Larp#Limiteds#Larping

Community Comments (1)

KhasKhasApr 23, 2026

lowk needa add a menu so u can change which ones you have equiped, over all w script tho

More Scripts for Universal Scripts