So I have been trying to add glasses, hair and the like to a randomly generated NPC in my game, but I have not been able to do it successfully.
My code goes like this:
room = script.Parent.Parent.Parent.Parent
enums = {"The names I wrote"}
enums2 = {BrickColor.new("Pastel brown"),BrickColor.new("Brick yellow"),BrickColor.new("Pine Cone"),BrickColor.new("Dirt brown"),BrickColor.new("Wheat")}
script.Parent.ClickDetector.MouseClick:connect(function()
if not room.Human:FindFirstChildOfClass("Model") then
local color = enums2[math.random(1,#enums2)]
script.Parent.Sound:Play()
local human = game.Lighting.Human:Clone()
for i,v in pairs(human:GetChildren()) do
if v:IsA("Part") then
v.BrickColor = color
end
end
human.Name = enums[math.random(1,#enums)]
human.Parent = room.Human
human:MakeJoints()
human.HumanoidRootPart.CFrame = room.Hspawn.CFrame
wait(0.5)
room.Ground.hit:Play()
end
end)
This code was salvaged from a friends game, but we fell out of contact.
Im very new to scripting, and have tried to create a new part with a special mesh in it, with the mesh and texture ID of a pair of glasses from the catalog.
I tried this both in the above script and in its own script:
local human = script.Parent.Parent.Parent.Parent.Human:FindFirstChildOfClass("Model")
script.Parent.ClickDetector.MouseClick:connect(function()
wait(1)
if human.Name("Name") then
local hat = Instance.new("Part",human.Head)
hat.Name = "accessory"
local mesh = Instance.new("SpecialMesh")
mesh.Name = "glasses"
mesh.Scale = Vector3.new(1,1,1)
mesh.MeshID = "rbxassetid://4850101059"
mesh.TextureID = "rbxassetid://4850106355"
mesh.Parent = human.Head.hat
hat:SetPrimaryPartCFrame(human.Head)
local Weld = Instance.new("WeldConstraint",human.Head)
Weld.Part0 = human.Head
Weld.Part1 = human.Head.hat
end
if not human.Name("Name") then
return nil
end
end)
Im at a loss and as Im very inexperienced, Im sure theres a huge glaring issue somewhere in these two scripts, and Id like a bit of help in figuring this out. I like to think i wrote it "fine" but I dont know why it wont work.
