How to make pet/model with multiple parts be behind player?

Hi,
I have a pet and he has multiple parts:
Screenshot_176
And heres how im making pet be behind player:

local char = script.Parent.Parent
while true do
    script.Parent.PrimaryPart.CFrame = char:WaitForChild("Humanoid").RootPart.CFrame * CFrame.new(0,0,5)
    wait()
end

But this script only makes Handler (part) be behind player. How can i make all parts be behind player?

You can just weld all the parts to the Handler.

You could use a weld script. Like a qPerfectionWeld script.

i tryed but its brokes everything wait a second i will show what i mean

Are they all set to CanCollide = false?

with script:

without it:

yes – (i neeeed 30 charactersssss so its random text)

Try to individually weld them? It’s time consuming but it might work??

Is the part anchored? (30charsss)

yes every part anchored. I tryed add in script all parts so all parts will be behind player but heres what i got:

Anchoring just makes it worse. Weld it to the Handler part and not anchor any of the parts(except the Handler I think).

aww that makes a pet like in screenshot i posted above :frowning:

do you mean a weld system or something like that?
i have made one not so long ago, i made a quick example with a backpack and a part in front of you:

WeldSystem.rbxlx (186.4 KB)
(script located in StarterPlayer > StarterCharacterScripts)

1 Like

i just want to make my all parts be behind me in the right orientation, not like showed above.
Maybe anyone know how can i make this all parts only 1 part? i tryed make a union but then face part become visible

there:

local char = script.Parent.Parent

for i, v in pairs(script.Parent:GetDescendants()) do

if v:IsA("BasePart") then

if v ~= script.Parent.PrimaryPart then

local weld = Instance.new("WeldConstraint",workspace)
weld.Part0 = script.Parent.PrimaryPart
weld.Part1 = v

v.Anchored = false
v.CanCollide = false
v.Massless = true

end

end

end
local lastWeld = Instance.new("WeldConstraint",char:WaitForChild("HumanoidRootPart"))
lastWeld.Part0 = char.HumanoidRootPart
lastWeld.Part1 = script.Parent.PrimaryPart

let me know if it doesn’t work, its pretty hard to do a script without testing at all

1 Like

i noticed that my script makes pets all parts orientation 0 and that why all part are a bit weird. Is there a way i can make it do not reset a orientation?

i cant move with this script for some reason

well you can use my weld engine that i shown you mins ago
it keeps orientation, here’s another example but this time with a face.


you can see that the eyebrows keep its orientation

1 Like

In my game, I individually welded them. Time consuming but it works.
imageimage

Instead of

while true do
    script.Parent.PrimaryPart.CFrame = char:WaitForChild("Humanoid").RootPart.CFrame * CFrame.new(0,0,5)
    wait()
end

do

while true do
    script.Parent:SetPrimaryPartCFrame(char:WaitForChild("Humanoid").RootPart.CFrame * CFrame.new(0,0,5))
    wait()
end