Pets summoned from the action bar are not saved for restore
Maeyra opened this issue · 10 comments
I've fiddled with all available options, and most everything yields the same results currently.
I currently have the pool to all pets, no character favorites, yet every time I lose a pet and then land after flying, it only resummons my... mechanical chicken? I cannot get it to properly track or replace the correct pet I was last using before it despawned? Apologies if this isn't explained well, Thank you again for this lovely addon, I just hope I can figure out what Im doing wrong, if so!!
I believe the core issue was using hotbar’d pets
Yep. Now that you mention it, I stumbled across this a while back, but didn’t dig into it (probably because I rarely summon a pet from the action bar 🙄 )
PetWalker hooks into the SummonPetByGUID
function and saves a pet after this function has been called. This function is used when you summon a pet…
- from the Pet Journal (pet right click)
- via macro
/summonpet <petname>
or/sp <petname>
- from an OPie button; possibly also from similar button-providing addons
- via addons like PetWalker or similar ones (since this is the only programmatic way to summon a pet from the Journal)
However, the function is not used when a pet is summoned…
- via the “Summon Random Favorite Pet” button in the Pet Journal
- via macro
/randompet
- by slotting it into a pet battle team (it gets force-summoned then)
- or … from an action bar button
PetWalker before version 2.0.0 (2023-04-28) would have saved the summoned pets in your use case (from the action bar). This is because the old version of PW simply listened for every COMPANION_UPDATE(“CRITTER”)
event and saved a pet 0.2s after the event.
I have abandoned this method for two reasons:
- The event can also be triggered by other players nearby (minor problem)
- It made it impossible to reliably restore your “correct” pet after a pet battle (since a team-slotted pet gets unintentionally summoned); major problem
So I made saving a pet dependent of the SummonPetByGUID function call, as a reliable indicator that the pet was really intentionally summoned by the user.
But, of course, summoning a pet from the action bar is also a 100% intentional summon, uncaught by PetWalker.
I’ll have to see if I can come up with a better method. But, the unintentionally summoned pets in the context of a pet battle are a real challenge. And I think it is very important to get the “correct” (i.e previous) pet back when the pet battle is over.
I have something in mind, but this needs testing…
apologies for not solving that sooner, my mistake entirely
No, it's not your mistake. It is not at all obvious that summoning a pet from the action bar uses different mechanics than other summoning methods. And: PetWalker should catch these pets just as well as other manually summoned pets (e.g. from the Pet Journal).
Have you checked if there are any filters set in the Pet Journal? The filters (or a text in the search box) are actually defining the “all pets” pool. See the 3rd point of the FAQ, or in detail in this issue.
For example, what you are describing would happen if you had the text “mechanical chicken” in the Pet Journal search box.(As this excludes all pets that do not have “mechanical chicken” in their name.) Please note that I’m referring to the filters and search box of the Pet Journal, not the one of Rematch.
Nope, no filters within the journal, even clean relogs it continues to only be the mechanical chicken.
random summon is disabled, set to 0:00
pet pool is set to All pets, Elidgible pets : 1014
per character favorites are disabled
Thanks for the precise infos.
Unfortunately I cannot reproduce the issue. Exactly using your settings…
…and I do have 3 of the Mechanical Chicken (species 83) in the collection, but it correctly re-summons my last pet after landing (tested with a couple different pets). I also summoned the Mechanical Chicken and then went back to a different pet, but it still restores the correct pet after landing.
A few questions:
-
You are using PetWalker on WoW Retail (TWW), right?
-
The issue happens with different "correct" pets, right? (I.e. it is not just one specific pet that always gets erroneously replaced by the Mechanical Chicken.)
-
What happens when you summon a new random pet manually? (via
/pw n
or your hotkey) Does this also always summon the Mechanical Chicken, or does this work correctly (= different random pet with each command)? -
What happens when you summon the previous pet? (via
/pw p
or your hotkey)
Could you upload your PetWalker.lua SavedVariables files (the global one and one char specific)?
The global one is located at
.../World of Warcraft/_retail_/WTF/Account/<accountNumber>/SavedVariables/PetWalker.lua
The char-specific one is at
.../World of Warcraft/_retail_/WTF/Account/<accountNumber>/<realmName>/<charName>/SavedVariables/PetWalker.lua
To upload, simply zip the files and drag the zip archive into a post here. (The zipping is needed because the page does not accept .lua files. If you don't have a zip program, you can also change the file extensions from ".lua" to ".txt".)
If the issue happens in each and every session, you can just grab the currently saved SavedVariables (PetWalker.lua) files. If it does not happen always, then please do this:
- Start a WoW session and verify that the issue is present.
- Log out or reload UI. (Important, as this saves the current state to the files.)
- Now upload the 2 SavedVariables files.
-correct
-any pet would be replaced*
-this appears to have fixed it, partially? and after testing any pet I summon via right click from my journal DO save, but a lot of the hotbar'd pets I had simply dont register, I think that was a big source of the problem
-this also, works as intended now, bringing the previous out
I can still upload the info if you'd like but I believe the core issue was using hotbar'd pets and it was restoring the mechanical chicken, which was either my last manual journal summon, or brought out through /pw n, apologies for not solving that sooner, my mistake entirely.
I have pushed a beta that fixes the action-bar summoning issue. You can also download the beta from CurseForge.
This is still a relatively raw attempt and glitches are to be expected. If you have the time, please do some real-game testing and let me know how it works for you.
If doing so, please pay special attention to the behavior after pet battles: about 15 seconds after a pet battle, your ‘correct’ pet (the one you had out before the pet battle) should be re-summoned by PetWalker. Is this working as reliable as it did before? Are there any other situations where a pet is not correctly saved (wrong pet is restored)?
Update: beta2 here
Thanks for calling my game-changing addon “niche” 😉. I’m pretty sure for the niche players who seriously collect pets it’s not niche at all 😉. (I mean, I’m not collecting thousands of pets just to have them despawn every 30 seconds…)
thorough testing
BTW, the perfect pet for testing is the Disgusting Oozeling, as it turns your toon very visibly green while it is out. So, if your toon loses its green tint for more than a few seconds1, it means there is a problem with PetWalker.
Footnotes
-
Assuming you are not in combat, flying, in pet battle, M+, arena, vehicle, stealthed, dead or some other situations. ↩
Please use beta3. Beta2 had a serious bug (not saving pets at all).
Will do my best to give it thorough testing and get back to you. Thank you for putting so much work into such a niche addon, sorry for any troubles!
Well, after 2 days with the beta, I had exactly one issue where PW did not restore the correct pet after a pet battle. But that was the first test with beta1, and I have not been able to reproduce the problem since. (I tend to think that I loaded the addon files with partially unsaved edits and this messed up stuff.)
@Maeyra, @trilobots, have you come across any problems or anomalies with 2.3.0-beta1 or beta3? (beta2 doesn't count, as it was bugged)
If not, I'll turn beta3 into a normal release.