Pet Following System Troubles

I am trying to make a system where a pet will follow you even if it is a model. My current problem is the system I have now only works on one part or union. Any help would be great!

local Workspace = game:GetService("Workspace")

local pet = script.Parent:GetChildren() 
local localplayer = game.Players.PlayerAdded

local pet = script.Parent

function givePet (player)
 if player then
  local character = player.Character
  if character then
   local humRootPart = character.HumanoidRootPart
   local newPet = pet:Clone ()
   newPet.Parent = character
   local bodyPos ="BodyPosition", newPet)
   bodyPos.MaxForce =, math.huge, math.huge)
   local bodyGyro ="BodyGyro", newPet)
   bodyGyro.MaxTorque =, math.huge, math.huge)
   while wait() do
    bodyPos.Position = humRootPart.Position +, 2, 3)
    bodyGyro.CFrame = humRootPart.CFrame

1 Like

You can just weld the other parts to the main part or use SetPrimaryPartCFrame:

Are all of the parts unanchored and welded? If not, do that and then it will work. (atleast that’s what i did for my pet following system)

You can also do this to keep it in the same position:

bodyPos.Position = (humRootPart.CFrame *, 2, 3)).p

.p Pretty much transfers CFrame to Position which is very useful.

Alright I’ll try it out. Thanks

1 Like

All my parts are unanchored and welded

I tried to use SetPrimaryPartCFrame and your method but nothing worked since it is not staying with the player.

Hm, that’s really weird. What do you get in the output?
BTW, I didn’t used math.huge for my BodyPos MaxForce, i did like 10000?

I can try that

Very interesting