-- 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)
Comments
No comments yet
Be the first to share your thoughts!