It prints out the first print & second.
the pet does not have any things named except for torso and head. does not have humanoidrootpart
http://prntscr.com/gff9p7 -- This is a visual representation
ReplicatedStorage.Events.PetFollow.OnServerEvent:connect(function(player,uniqueid)
while true do
wait(0.1)
print("WORK?!?")
game.Workspace.EZYPSystem[player.Name][uniqueid].Humanoid:MoveTo(((player.Character:WaitForChild("Torso").Position)+ Vector3.new(0.5, 0, 4)), player.Character.Torso)
print("ok")
end
end)

2 comments
You could use welds, maybe
I rather have it to delay a bit so it looks like it's following; not at a fixed position