I’ve been trying to figure out the intricacies of hunter pet loyalty for many weeks now. It’s slow going, in part because building up and losing loyalty takes so bloody long. I haven’t gotten very far with it yet, but I have found out a couple of interesting and possibly useful bits of related information that I wanted to share.
First useful bit: A just-tamed pet that is never fed will stick around for 30 minutes before it runs away.
The level of the hunter doesn’t affect this time, nor does the level of the pet nor the family of pet. It doesn’t matter whether you spend that time fighting or sitting in town. It’s all the same to your new, unhappy, unfed pet. He’s going to stick around for 30 minutes with no food, and then he’s going to take off.
What does affect the amount of time your new pet is willing to stick around is whether or not he’s active — that is, out by your side. As you might expect, the timer stops when you log out and when you stash your new pet in the stable. And time that the pet spends dismissed doesn’t count either — whether he was dismissed explicitly with Dismiss Pet, or automatically (either when you got out of range or when you mounted up). Nor is the timer going when your new pet is dead.*
And although both dying and being dismissed will make your pet unhappy, neither one speeds up your pets departure. You can dismiss and recall a newly tamed pet over and over again, and it won’t run away any earlier. (In fact, it will take it a bit longer since the time it spends dismissed doesn’t count.) Likewise, you can let your new pet die and resurrect him as much as you like — even flagrant abuse like that won’t drive him off more quickly.
Why is this useful? Well, for one thing it means you can be a little more relaxed about the taming process. I know that I am constantly forgetting to take appropriate food with me when I go to tame a new pet, and then I get terribly nervous that I’m going to lose it and recall home and fumble around trying to find a vendor of the right type and basically freak out. But now I know that I have a goodly amount of time to find some food — and if I need to, I can use the new pet to help me get out of a sticky situation, then dismiss him or even let him die so I can go looking for food in a more leisurely fashion, with no harm done.
Now for the incipient theory. :>
I’ve been talking about this as a simple timer, but based on the data I have so far I am guessing that the running away behavior is actually controlled by loyalty — that a pet runs away when its loyalty reaches zero. My theory is that we can directly affect happiness (positively and negatively) and that happiness affects the rate of loyalty gain and loss in a fairly simple fashion. For example, I am guessing that an unhappy pet loses loyalty at a constant rate. So once your pet hits the bottom of the unhappiness scale, lowering his happiness by dismissing him or letting him die is immaterial — his loyalty is going to decrease at a constant rate, and when his loyalty hits zero he will run away. Of course, I have a lot more data to gather before I can prove that hypothesis, or even extend it to loyalty gain.
[EDIT: I have a lot more testing to do on the below dismiss-related bits (see the comments), so take it with a grain of salt for now.] Some other odd notes I discovered while I was testing this:
- If you dismiss and recall your pet, he comes back with about 60% of the health he had when you dismissed him. [EDIT: The percentage seems to be related to the pet family, but I need to investigate this more.] (Do this quickly, over and over, and your pet will soon be called with just a fraction of his health.) If you wait at least 60 seconds between dismissing and recalling him, however, he will heal up to his max health a tick later. [EDIT: If you look at your combat log, you see "You gain Dismiss Pet." when you first dismiss a pet, and one minute later: "Dismiss Pet fades from you." This is presumably a (mostly) invisible debuff that controls the instant-heal behavior.]
- If you tell your pet to stay and run out of his range so that he is automatically dismissed, and then immediately call him, he will appear with only a percentage of his health, as if he were dismissed, but he will heal up to max health on the next tick, regardless of how long it’s been since you left his range.
- This percentage loss of health does not affect your pet at all when you mount and remount quickly. When you dismount, your pet will reappear with the exact health that he had when you mounted.
Note that I did most of my testing on the PTR so I didn’t have to sacrifice any of my real pets (and so there were fewer people around to laugh at me). But I verified several of the experiments on the live servers this evening, and all the data matches, so I have no reason to believe that any of this has changed in this upcoming patch. But if your experiences are different please let me know.
* Yes, I tested all these different conditions as scientifically as I could. Yes, that meant that I spent a large portion of today sitting in-game with a stopwatch waiting for my pet to get fed up and run away. Yes, it was incredibly boring. But no, I wasn’t able to help myself — I just had to know. And yes, I am weird. *grin*