Development Notes

1. Introduction

Over the years of developing Xu-Fu's Pet Guide, many ideas and suggestions accumulated.

All that info is now hosted on a Trello board for Xu-Fu!

You will find all ongoing tasks, bugs, suggestions etc. there.

The dev notes here will stay and will show the larger new features that are planned as well as a summary of already completed new features.

2. Upcoming Project: New Ready-Check Tool (5%)

The Legion Ready Checker was one of the most popular tools on Xu-Fu. The addition of user strategies and breeds made this tool non-functional. To bring this back, a new tool showing the list of ALL pets could be created, showing how often the pet appears in each fight, broken down by breed. This could automatically cross-check with the saved collection. In a second step, a selector or sliders could be used to apply the table only on specific battling sections.

3. Upcoming Project: Rematch Mass Export (0%)

One of the most requested features is to mass export strategies to Rematch. Rematch can already import multiple strategies at once, but XuFu currently has no such export feature. That is mostly due to the existance of alternatives. Until user strategies and favourites, the page had no way of knowing which strategy is the best for you. This new tool will make use of those features and give you options from which section you cant to export strategies from, and if only your favourites or also the top pick for you should be exported.

4. Upcoming Project: Pet Trading Tool (0%)

A tool that combines a couple of ideas and suggestions - compare collections between users or look for people who have duplicates of pets you are missing. Ideas from:
Irayna: When viewing other peoples collection, add a column for your own pets to compare the collections.
Grainne: A tool similar to Rufa's tables http://web.archive.org/web/20150405233814/http://signature.neflin.net/wowpets/pets.php

5. Finished Projects

5.1 Pet Cards (Finished June 27, 2021)

Xu-Fu already has a database of all available pets with their skills, stats and additional info. This could be used to replace wowhead tooltips with built-in Xu-Fu pet tooltips that show more details about each pet, reduce loading times and give additional value to the tooltips.

5.2 Database Restructure (Finished February 27, 2021)

The database supporting Xu-Fu's different categories and menus is very old and is not set up properly. It is very difficult to create features with it, like for example the possibilty to move strategies, or some of the other future projects here including rematch mass export or a new ready-check tool.

5.3 New Pet Tables in Articles (Finished July 28, 2020)

Every category article (like "Legion world quests") has a table on it that shows the required pets. This table is not using the new alternatives system and is therefore outdated.
This project is to create a new table that picks the best strategy for each fight in the category, based on the same criteria as the alternatives tooltip (favourite, ratings, tags..) and lists those pets. This should also include required or missing breeds. The table will most likely have a longer loading time and should therefore be hidden behind a "Load Pet Table" button that dynamically loads the table only on request.
Suggestion by Remte: tooltip showing which battles the pet appears in, make this interactable and the list of fights clickable to the respective strategy page

5.4 Collection Comparison Tool (Finished April 10, 2020)

The tool can be used to easily compare two collections for missing/dupes/tradeable etc.

5.5 News 2.0 (finished October 18, 2019)

The news section now supports different topics and different users posting news. It shows a quick overview and is more easily searchable. Articles can be edited with the article editor for news writers and each article opens up in a separate page showing the full view + comments.

5.6 Article Editor (finished April 16, 2018)

The page hosts many different articles and supports localization into 9 languages. This editor makes it easy for other users to add, edit or translate articles.
It is fully integrated into the user system, UAC, and allows on-page editing.

5.7 Battletable 2.0 (finished June 02, 2018)

The battle tables were the first thing created on Xu-Fu. They are mostly static and not up to the standards of the current page.
This project was to fully re-create them, to integrate the user system, user collections and to add many more features such as breeds, coordinates, new Rematch formatting, an automated substitute finder and the option to record your attempts to make the strategy more accurate through crowd intelligence.

The substitute finder uses this logic:
no requirements => all substitutes are fine, based on skills and family
only a breed => creator pet, only show the selected breed(s). For substitutes, ignore breeds
only a stat => use the stat to determine which creator pet breed is OK. and use the stat for substitutes and their breeds
breed and stats => for the creators pet, only show the breed he activated. for substitutes, use the stat to show them or not.

5.8 Project: Dynamic Alternatives (finished July 01, 2018)

There should not be a limit to the amount of alternatives saved for any given fight. They should not have a fixed order either. The order should be dynamic and follow a logic that could include user settings, if the pets are in your collection, strategy upvotes, favourites, amount of pageviews, records of successful attempts or other factors.
The interface should use AJAX to reduce loading times and give a clear preview of the pets used.

The order in which strategies are shown is determined by 4 factors. Each factor supercedes the next. From top to bottom:

1. Favourited by user
If you set a strategy as favourite, it will be shown on top always

2. Pets missing from collection
The sorting will prioritize based on how many pets from the strategy you do not have in your saved collection:
No pets missing > one pet missing > two pets missing > three pets missing

3. Tags - optional
In the user settings, you can set the order of importance for all tags. Preferred tags move the strategy up, unfavored tags move it down in priority.

4. Rating and Favourites
Ratings and Favourites are calculated together into one single score. The calculation is:
- One favourite counts exactly the same as one 5* rating
- The stars are transformed into the numerical sequence -2, -1, 0, 1, 2
- The average is calculated and multiplied by a factor that is determined on the amount of votes+ratings:
1-10 ratings: Factor = 0.5
11-20 ratings: Factor = 0.8
20+ ratings: Factor = 1
This calculation makes sure that a single 5* vote on a strategy is not counted more important than an average of 4.8* from a large amount of voters, for example.
Likewise, a strategy that received many below average votes will be considered worse than one that received only a single 1* rating.

The first three factors only apply to registered users. If you are visiting without a user account, only factor 4 decides the sorting.

5.9 User Strategies (finished August 01, 2018)

Users should be able to add and edit their own strategies. The editing options should be integrated into the Battletables without adding more pages. Most if not all options should be dynamic using AJAX to minimize page reloading.


wrote on 2022-01-10 00:19:35

I don't know if I'm the only one experiencing this bug, but alot of times the buttons to copy the rematch string / TD script, doesn't work, i tracked it down to https://code.jquery.com/jquery-2.1.4.min.js not retuning anything 7/10 of the times (with ad blocker off, it will eventually load after 10 or so refreshes, would it be possible to use a different CDN for jquery instead? Never had this jquery issue on other sites, just this site.

https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js

is some alternative CDNs.

Not sure if its related, but I got a dual homed PC, with both IPv4 and IPv6, but something is off using the code from jquery.com, but not the other CDNs.



wrote on 2022-05-09 11:41:11

Sorry for late reply. Do you still experience this issue? I host jquery now directly and use cloudflare as CDN.


wrote on 2022-02-04 22:49:30

i had a thought about comparing pet collections here. i don't know how hard it would be or if there is even a call for it. I was wondering about being able to sort or somehow easily see the pets that a collection is missing compared to another? if there is a way in the current comparison i am not finding it thanks again for all your work!

edit: i just saw the upcoming project that may be related to my idea. my bad (edited)


wrote on 2022-05-09 11:39:42

Saw this comment way too late - what you ask is already done :D



wrote on 2021-11-29 17:32:05

Hi. Much thanks for this absolutely invaluable site!!! I hope this is an ok place to post a suggestion: Would it be possible for the "pet substitution" thingy to sort by pet level so your level 25 pets show up first? I run into this mostly on the Rabbits and Snails where I have like 16 of them but only 3-4 leveled fully so I have to hit the arrow a dozen times to find a leveled one.
It'd also be helpful to show the pet levels when you have more than 1 pet. So you could tell without hovering if you have all level 1s, or possibly a level 25 in there. I guess for space reasons maybe a level range would work. E.g. "Your pet: 3* (1-25)". Hope that makes sense. Thanks!


wrote on 2021-12-01 06:51:44

This is a perfect place to leave feedback and make suggestions ^^

The substitutes were supposed to behave exactly like you say, with pets you have leveled to 25 and rare showing up first, others later. I took a look at that and found a bug that caused this to not work properly. It should be fixed now, have a look please and tell me if that's what you were looking for :)

I could add the level range in brackets as well but don't feel that it's needed because of the color coding. If you have at least one of the duplicates on 25 rare, the bar will be green and that should be enough to do the strategy. Otherwise it's yellow. This also takes into account multiple uses of pets (e.g. a strategy asking for 2 or 3x the same pet).
What do you think, does that do the trick or do you still think the level range would help?


wrote on 2021-12-01 13:20:14

Thanks so much for looking into this!

I'm not always seeing the sorting. For instance, on this one, the rabbits still seem pretty random, with the blue 25s actually being last:

However, on this one with snails, the sorting is better:
The first alternates there for me are rare 25s which is good. Then a 1 green, 6 gray, then 23 white (so kinda random) but then the last 2 are missing which seems correct. Maybe you aren't sorting the non-25s but descending level would be nice as you can then use stones to level or make blue.

I think you are right about the level range not being needed. The color coding (which I didn't exactly realize there) and the level sorting should do the trick!

One last thing: when viewing alternate strategies I'll see Red/yellow for missing/low level pets even when I might have a great substitute. Not sure what to suggest about this. Maybe a checkbox in the Strategy Alternates Browser to show substitutes? Or maybe automatically show substitutes if the specific pet isn't leveled, but with an asterisk in the corner? Not sure what is possible or best but thought I'd mention it. Thanks! (edited)


wrote on 2021-12-01 13:35:10

Looking more... maybe it's just the rabbits that aren't putting 25s first? Everything else does indeed seem to be putting the 25s as the first substitutes. (A full descending level sort would be best but maybe that adds more server load.)

Edit: Well this one does rabbits fine, but others still seem off:
https://www.wow-petguide.com/Strategy/4455/Crab_People-Critter (edited)


wrote on 2021-12-02 06:01:53

I've had another look and you're right. The sorting works now but only takes into consideration if you A) have the pet in rare 25, B) have the pet but it's not 25 rare or C) do not have the pet.
All pets in category B) are in a random order, meaning sometimes level 1 pets come before level 25 because both are not rare quality.
I'll see if I can optimize that to prioritize lvl 25 pets to be first there :)

EDIT: Done, better now?


Substitues for alternatives are a very tricky topic.
I can't add that by default, because substitutes are in most cases no perfect match. For example, a creator might select a HS breed pet because it needs exactly >280 speed. A substitute with HS breed might only have 278 speed, making the strategy always fail. From the information the creator gives me (this pet in HS), I can't know what speed *exactly* is needed and which substitutes would need to be excluded.

This would be solved by strategy creators adding hard requirements (>280 speed instead of "HS breed") but most don't do that, or even know the exact requirement.

I see two options to improve this:
- Check if substitute pets are *exactly* the same. Not the case very often, some rabbits, snakes and so on but as long as they have really exactly the same stats, no problem. The sub finder currently doesn't do that
- An advanced setting as you suggest to regulate how strict/lenient the sub finder is. Something that likely not many would use :D

Both are... quite heavy in dev time so I haven't really dabbled with that, so far :S (edited)


wrote on 2021-12-03 12:43:20

I'm really loving even just seeing the 25s first!!! Great improvement. I'm still getting some weirdness... like the first link above still has two blue 25s almost last for some reason (Olivetail Hare, Tolai Hare Pup) but in most other places I've looked those two correctly sort first. While I still think descending level order is ideal, it's certainly good enough now!

And it does seem to favor descending level order a lot of the time. I've been doing Family Familiar where leveling is possible and it's very satisfying to pick an alternate lvl 23 pet and still have it work (though it is risky... most reliable for the 3rd slot pet). A lot easier now.

I appreciate your thoughts on substitutes. Dev time vs usefulness is very understandable! The sub finder seems to already classify subs as green/yellow (based on abilities/speed I assume). I would say just tapping into that is good enough. Just to be able to see that when viewing all strats at once to know which ones already have green subs available. But dev time is always a consideration.

Thanks again for all your work!

Wh15k3y_ wrote on 2020-09-27 08:35:36

when i try to login, no window appears. just all screen faded. how can i login now?


wrote on 2020-09-27 15:50:00

There was an error on the webpage. It should be all back to normal now. Sorry for that!

Wh15k3y_ wrote on 2020-11-30 10:15:49

it comes back again. (but on my other pc it works fine, even they has the same version of Chrome) :(


wrote on 2020-11-30 12:08:07

Hey! In another comment area someone found out that adblockers cause this. No idea why because the script I'm using for these overlays is usually well accepted :-(
Best I can offer is trying without adblocker on the page and if that works it, perhaps just whitelist the page. When you are logged in, 99% of the ads are hidden anyway.

Beardsly wrote on 2020-09-07 09:52:02

Forgive me if I missed it, Will there be a Rematch and TDbattle scripts functional during Prepatch/Shadowlands? While I see mass exporting isn't a thing, will there at least be a functional addon to put in the updated strats? Thank you for all that you do.


wrote on 2020-09-07 11:39:24

there already is a version for rematch working in SL. tdscript is being worked on


wrote on 2020-09-07 13:57:52

The Mass Rematch tool mentioned here is not going to happen before Shadowlands, but there is a mass rematch export already possible for each section :)
Just go to a section and hit the blue Load Pet Table button - once loaded, a rematch export button is available


wrote on 2020-06-20 15:10:06

My collection doesn't get updated properly. Here it says I have 539 pets at max level, and 25 uncommon pets, while when checking my collection on warcraftpets website it tells me I have 555 at max level and 18 uncommon pets. Any idea why it's like this? I use the same char for updating both profiles.

EDIT: Am leveling battle pets atm, so the numbers mentioned above are no longer correct. There does remain a difference of 16 pets at max level between both sites, as well as a difference of 7 uncommon pets. (edited)


wrote on 2020-06-17 15:30:25

The hyperlinks to the legion quests in the new Powerleveling widget don't work.


wrote on 2020-06-17 16:05:34

Working for me, which one exactly and where does it lead you to?


wrote on 2020-06-17 16:27:30

I get

Sir Galveston https://wow-petguide.com/8361
Jarrun https://wow-petguide.com/5043

Ahhh. US vs EU.

I had the US page up when I saw those. On EU I get the right pages. (edited)


wrote on 2020-06-17 19:27:31

Any link from the widget sends me to what appears to be a 404 page in German. Would also like to mention that last night, the widget's date was off as well for me. It was showing the date as the 17th when it was still the 16th here in the US. As Grainne said, it probably has problems between EU/US.


wrote on 2020-06-18 04:44:40

Aaah found it!
Both of these should be fixed now :) Thanks for bringing it up!


wrote on 2020-04-03 23:18:25

love the site and want to submit my bug report. I am not sure where to post this bug report so this post might need to be moved or removed. Here is my problem: When I am looking at a strategy on my touch screen device, in Google Chrome for Android 80.0.3987.162 and click on the alternatives. A menu comes up, but if there are too many alternatives on the menu I cannot scroll down the list. If I try to scroll down it reacts to the first touch and immediately closes the menu even if I press directly on the scroll bar. It does the same thing even if I request the desktop site version in my browser.Very annoying because I cannot see all the alternatives. Thank you. (edited)


wrote on 2020-04-04 05:59:20

Hey! Absolutely the right place for this type of feedback :)

The sad but simple answer, though, is: There is no mobile version of the page. It was never designed to support mobile :/ I try to make tweaks here and there but lack the knowledge (and time) to make it really mobile friendly.
I'll log a bug ticket for me to look into the alternatives tab a bit more, maybe I can come up with a solution. Thanks for reporting it and sorry I don't have a better answer for you!


wrote on 2020-04-04 10:00:40

it's not like i haven't annoyed him before with it. glad i'm not the only one now ;)


wrote on 2020-04-04 10:52:29

I'm honestly bemused by requests for mobile-friendliness in this context.

The only time these strats are useful is when you are actually at your PC. Why would people use a mobile browser when sitting at their keyboard? What's the condition I'm not seeing?


wrote on 2020-04-04 12:36:38

changing/working on your strategies and strategy curating in general


wrote on 2020-04-04 15:31:16

Some people also don't like to alt + tab if they only have one monitor. I know for me, half the time I don't remember what I was looking at when I move to a different screen. Imagine trying to do some of the strats on here, and alt-tabbing for each step.


wrote on 2020-04-04 16:25:05

ok boomer


wrote on 2020-04-04 16:25:25

I don't have to imagine; that's what I do when I'm checking a strat out. (I really should bring down my second monitor and find the adaptor and set it up again.) What I can't imagine is the awkwardness of trying to use a phone screen instead. But OK, if people do that, then they do, I guess.


wrote on 2020-04-04 16:31:46

when i'm not at home during the week (which is usually the case if not for the current quarantine stuff) and not always have access to a pc or tablet i'm sometimes forced to do strategy reworking on my phone... and that really isn't pleasant at all


wrote on 2020-04-05 04:26:07

Only thing I can say to that is: Sorry!
I'm in the very, very early stages of learning how to do mobile friendliness :/


wrote on 2020-01-14 06:28:50

Hi, are you aware of a bug that is effecting the site's Export Team feature? The error message below seems to be injecting itself into the export, also every line now includes a BR HTML tag in addition to newline markup tag.

Error messages:

This error message: "Use of undefined constant language - assumed 'language' (this will throw an Error in a future version of PHP) in /kunden/426045_85652/webseiten/Petguide/classes/ajax/bt_rmsteps.php on line 152

This error message: "Use of undefined constant language - assumed 'language' (this will throw an Error in a future version of PHP) in /kunden/426045_85652/webseiten/Petguide/classes/ajax/bt_rmsteps.php on line 179


wrote on 2020-01-15 03:42:26

This should be fixed, thanks for the heads-up!


wrote on 2020-01-16 16:03:37

Yes it is fixed, hurrah! You are amazing!


wrote on 2020-01-17 11:48:08



wrote on 2019-12-05 03:21:42

I don't know if something like this is possible, but a suggestion -

For the pet dungeons, instead of just spitting out the optimal strategy for each encounter based on our pet list, make a dungeon optimal strategy list all at once? What I mean is I look up, let's say, Gnomeregon, and it tells me for optimal strategies to use the same pet in 5 fights. Maybe something where it starts at the last fight and works backwards, so your best pets are used for the last fight (let's say it's fight #10), then it goes back to fight 9 and looks for an optimal strategy that doesn't use the 3 pets you'll be using in the final fight unless you have 2+ of one of them. This way you don't get to fight 8 and it says to use Ikky, but all 3 are either dead or too wounded from fights 2, 4 and 5 to be used again.


wrote on 2019-12-05 13:17:43

Hey JestersTear!

That's definitely planned :) It's currenty listed as "Upcoming Project: New Dungeon Tool" and what you are suggesting is *exactly* what I'm planning to do ^^
Hope I'll be through this current database rework soon so I can jump on cooler stuff like this one.
Thanks for the suggestion! If you have any other ideas, always happy to hear them


wrote on 2019-12-05 16:25:54

Thanks, your hard work is definitely appreciated!


wrote on 2019-09-07 21:36:11

i have a question. when i was looking at my strat it said OP what does that mean?


wrote on 2019-09-07 21:37:24

OP = Original Poster, which as the poster of the strat, refers to you.


wrote on 2019-05-20 14:15:45

I would suggest GitHub or GitLab for maintaining and developing this project. These 2 tools are no overkil for this "small project" as you called it in the beginning. Both offer free code versioning for private repositories, Issue Tracking and more. Personally I prefer GitLab as it has more features.


wrote on 2019-05-21 05:31:12

Hey ragath!
I know about both and what they do, but have never used them to work on a software product. I'm very much a novice in this field and in the creation of this page I made many mistakes that make it very hard to move it to a repository, mostly security details (hardcoded passwords yay!). The effort to make everything ready for such a move is probably quite high, and a big unknown to me. So it's part not wanting to invest the time and part not wanting people to see the code behind this page that keeps me from doing it ^^'


wrote on 2019-05-21 20:15:48

I'm a professional software developer and I work with GitHub everyday. So in case you are interested in learnig how to get to a "new Level" I could give you some tips. With private repositories your code is not public and not visible to others. In case of hard-coded passwords and stuff there are simple methods how to handle it, e.g. using .env files or simple array files. But I also understand that it's a bit of work to migrate this project to GitLab etc


wrote on 2019-03-20 01:40:39

I’d like to report a bug, hope this is the right place. A linked group of similar crabs, starting with Kelp Scuttler, does not have their abilities aligned. For example, if the Kelp Scuttler is listed with the skills 1 1 2, when you scroll through the rest of the group, they are all listed as skills 2 2 2, while they should be the same as the first one. You can see it in this strategy:


Would also like to add that this site is amazing! I’m very impressed with both how it looks and especially how well done the coding behind it! Thank you!


wrote on 2019-03-20 02:58:56

Thank you for your kind words :)
I reuploaded the pet and told our master tinkerer, and it seems it's okay now. Hopefully it was not a signal of something more severe ^^


wrote on 2019-03-20 19:45:07

Thank you for a quick fix! It works fine now :)


wrote on 2018-12-28 12:53:36

Wondering - now that they changed the way pet battles work, would it be doable to add the pet trainer names in brackets beside the quest name? Not everyone knows the WQ name if it isnt up, but the trainer name is easy to reference.


wrote on 2018-12-30 11:43:38

Meaning stuff like Family Battler - IE: Zuldazar quest for "Small Beginnings" - Show it as either "Zujai - Small Beginnings", or "Small Beginnings (Zujai)"


wrote on 2018-12-06 14:30:06

Not too soon: To avoid duplicates, any achievement-specific (Plushie, Family and as it was suggested The Longest Day) strategy could be automatically linked in the "global" encounter list (still redirecting to family section after clicking). To prevent clutter, they could be displayed only via user input to show more.
If this is not worth it, just expand the duplicate warning to all sections of the page… though it could be problem when someone decides to apply a strat the other way i.e. from globals to specific ones :P


wrote on 2018-10-16 08:14:47

I love the "Incl. Steps" toggle. if somehow "Incl. TD Script" would be possible, my life would be almost complete :)


wrote on 2018-10-20 06:51:03

I was flipping this back and forth to see what changed and didn't notice anything. What does the Incl. Steps toggle do?


wrote on 2018-10-21 06:53:45

On the website, you can see the steps it takes to defeat the tamer. If you flip this before importing the Team into the game, you will see these steps in pet battle (in a note)

New Comment: