Inspect request throttling explained

If you haven't already heard among the throngs of vuvuzela-esque cries of "Gearscore is dead," Blizzard has decided to add a throttling time limitation to inspect requests that some addons use to quickly check to see what a character has equipped and what class that character is. The most notorious addons that use these inspection requests are "mouseover" addons that pull data about a character into a tooltip and Gearscore.

There have been a lot of misconceptions about Blizzard's change, so it would be beneficial to clear those misconceptions up.

First, here is the original blue post as well as the follow up clarifications:

According to WoWAce, Blizz is going to start throttling inspection requests, thus limiting addons like Gearscore's ability to generate on-the-fly GS of a player's equipment.

It's important to understand that the throttling that is being done isn't intended to break any functionality of add-ons, but merely to control the amount of queries that are being sent to the server at any given time. (Thus throttling the queries.) The queries will still occur, it just won't happen as quickly as they currently seem to. You can read the statements that WoW Ace and WoW Interface have up for a bit more information on these changes. We wanted to give mod authors a heads-up prior to making the change so that they could make any adjustments they needed to on their mods.

I just wanted to reiterate that the original information on this change was meant to help add-on authors more than anything so that they could adjust accordingly. Unless the add-ons you use are requesting a lot of data, there isn't going to be any particular change in regard to the amount of latency you might be experiencing in the game.

It's important to understand that this wasn't really the fault of addon authors. This needed to be fixed because we were allowing something we really shouldn't have. Many addons pull Inspect data when mousing over characters and there was nothing on our end to throttle the rate at which that data could be pulled. So if you're standing in Dalaran with one of these mods and slide your mouse across the screen and over several characters within a very small amount of time, your client is spamming the database with Inspect queries. We're correcting that issue on our end.

Will this change make it so we have a "1 inspect per 5 seconds" system? Or will it only throttle your requests if you are sending a massive number of requests within a small time frame?

We're starting by capping the number of Inspects that can be sent in a 10-second time frame. It'll likely be 5 Inspects, but that could change in either direction.

Keep in mind that this change is intended to help those using addons which are sending a lot of these requests from lagging or disconnecting. If you're not actually using such addons, and therefore not sending a large number of queries to our database, the change won't affect you either way. You're not lagging or disconnecting because someone else in a raid or major city is unknowingly spamming such requests.

Not intended to break

The first thing to understand about this change is that Blizzard is not intending to break any addon functionality. They plainly state that fact right up front. While many of us would love to see Gearscore go the way of the dinosaurs, you know deep within your hearts that the type of addon Gearscore represents is never going away. It was nice to have that fleeting moment, but ultimately remember that addon creators are craftier than that. I do not want this to become a discussion about the merits of Gearscore, so that's the last I will discuss of it on a purely functional level.

Blizzard rarely intends to break addons with updates to the way addons are used. There are many exceptions to that of course, some of the most famous being the original Decursive, Healbot and the more recent AVR. This change is purely on the backend, changing the way addons can request /inspect data.

What is throttling and what does it affect?

It's helpful to first understand, in very simple terms, what is going on here. In the very basic sense, an addon asks the Blizzard servers for information. Imagine the addon is having a conversation with the server, thusly:

"Hey, World of Warcraft, I am compiling a list of the gear on this particular character using the /inspect feature. Would you do me a favor and give me that data?"

"Sure," says the server. "Here it is!"

"Thank you, server. Now, do it again for the entire raid I'm with. I'll need twenty-four more of those requests, and can you make it snappy? I haven't got all day."

"Uh, sure."

A noticeable problem presents itself -- the number of these requests on the servers are plentiful, and the outbound data requested by the client is hefty. With the throttling, the conversation changes. A bottleneck is placed on certain requests that addons make of the server, limiting the number of requests an addon can make. So now, the conversation goes:

"Hey, World of Warcraft, get me that player's data through the /inspect feature."

"Here you go!"

"Now do it again."

"Whoa, slow down there buddy. You have to wait some time before you do that again."

"Fine. But what do I tell the player?"

"You need to know now that sometimes you won't get this information on demand. It might take a little while. Ask me again soon."

"Alright, how about now?"

"Not listening."





Gear-checking and /inspect requests in large raids will take much more time. Imagine the bottleneck presented of 5 requests every 10 seconds. That's 40 seconds of wait time for an entire raid check. Obviously this is just a proposed number, but the time between requests is the concept. Addons will have to have a way to tell the player that data is not available yet. These notifications by Blizzard were, in fact, released to give addon authors a heads up so they could make said adjustments and changes.

What does it mean, then?

Some addons are functionally broken by Blizzard because they exploit the game, change encounters or are against the spirit of the proverbial addon law. This change, however, is meant to control the amount of requests on the server, thereby lowering the strain on the client. Remember when Gearscore went rampant around the servers, and it became the first banned addon back in 2009, and subsequently unbanned after the problems were dealt with? That is on the far end of the spectrum of things going on here.

This change means, for addons developers, that they must add in a way for their addons to let the players know that data is unavailable or being requested. For the players, it probably won't mean much from a performance standpoint, but data will not be as on demand through addons as it is now. You may be waiting for certain types of information. For the Blizzard servers, this will lighten the load on requests from addons which, at the moment, is immense.

So there you have it, a barebones understanding of what this change means for addons going forward. You know how when you do a /who, and information comes up, but then you do another /who and nothing comes up for awhile? That's because /who requests are throttled to prevent addons and people from making too many zone checks and /who requests. The same thing is being implemented here for /inspect and a few other calls. It is not as nefarious as you would believe.