• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • IS THIS SITE UGLY? Click "RG3" at the very bottom-left of this page to change it. To dismiss this notice, click the X --->

Question - Me.XT... numbers (1 Viewer)

Sep 27, 2020
Doing some testing for a Lua script (primarily to verify when I need to use extra parens), I encountered an unexpected set of values from the Me.XT... methods. I ran one of my characters over to Mistmoore since the mobs there aggro easily and couldn't harm them. Quickly gathered a few mobs to aggro and then started doing my testing.

Me.XTAggroCount returns 0. This makes sense based on the description (only counts mobs less than the aggro value; defaults to 100), but not from a functionality perspective. What's the reasoning behind "less than" as opposed to "less than or equal to"?

The other was Me.XTHaterCount. This value was always one less than the actual number of mobs on XTarget. Based on documentation elsewhere (see below), it appears that if one of the XTarget mobs is also the current target it isn't counted (I can't find documentation to explicitly substantiate this, though testing suggests it's true). Why?

XAssist has a couple methods to use instead. It's XTAggroCount allows for values above 100 (though still is only less than) and XTFullHaterCount doesn't care if the current target is also on the XTarget list. Should the documentation for the Me methods direct creators to the XAssist methods?


May 5, 2016
if you are looking for the number of mobs on xtarget i believe it is just me.xtarget, that's how i've always used it

intXTAggroCount[ N ]N is optional and defaults to 100.

Returns the number of AUTO-HATER mobs on the extended target window where your aggro is less than the optional parameter N. N must be between 1-100 inclusive or it will be set to 100 (the default value).
xtargetXTarget[ # ]Extended target data for the specified XTarget #. Note: Passing no index to this returns the number of current extended targets.

to answer your question i don't know why XTAggroCount is less than and not less than or equal to

patch notes said:
Dec 04 2017 by SwiftyMUSE
- Added new TLO member XTAggroCount to ${Me}
Usage: /echo ${Me.XTAggroCount} or ${Me.XTAggroCount[100]}
it returns the number of AUTO-HATER mobs on the extended
target window where your aggro is less than the optional
parameter N. N must be between 1-100 inclusive or it will be
set to 100 (the default value).
So, ${Me.XTAggroCount} and ${Me.XTAggroCount[100]} are identical.

mq2xassist did some "expanded" members

// Return the total number of AutoHater mobs in the XTarget window including the current target. Expansion of ${Me.XTHaterCount}
            case XTFullHaterCount:

// Return the total number of Autohater mobs less than the passed value -- uses an expanded range over ${Me.XTAggroCount}
            case XTXAggroCount:
                // Default to return 0

so yeah it feels a bit all over the place - i guess the *intent* was to be like "these mobs aren't aggro on ME rather than just aggro, probably why many of us just use Me.XTarget

the problem with "fixing" some of those "broken steps" situations, is that may be how it was designed/intended, and just lack of comments/naming and folks might actually use it that way which would break if it was changed

@Knightly probably has a thought which might be useful
Sep 27, 2020
Thanks. I've gone through all the documentation. I understand what these methods are supposed to do. I'm just looking for an understanding of why they were done that way.

The problem with Me.XTarget is it includes everything on XTarget. If I've got characters I'm watching for whatever reason (e.g., Clerics watching MTs) those are included in the count. I'm glad the other methods were added to XAssist as they can better fill the role I'm looking to satisfy.
Last edited:


Dec 29, 2017
Me.XTarget is able to access each XTarget by index, allowing you to filter manually by using something such as a for loop. Then you can use some of the members like TargetType to determine if you want to include it. Using this information you could make your own functions that returns what you want it to return as a count if you like. Otherwise, you also have access to .ID, .Name, and .PctAggro that you could use to determine if you should use this information.

I can't speak to the specific purpose that XTAggroCount would decide not to include your current target as one of the count. I do agree it is odd that one would include everything, and another would exclude anything.

This is one of the reasons I've made functions of my own so that the information is as accurate as I need it to be. I would recommend trying to create your own functions so that you too can be as specific as you like. TargetType for example could be autohater or something of the like. Then you could ensure that the ${Spawn[ for the ID returned is not a Player Character if you want to ignore player characters. Alternately you may want to cycle through the XTarget window and only return Player Characters during a heal/buff routine.

I would say the Me.XTarget gives you more freedom to customize. Where as XTAggroCount might have been created for a specific person/macro for which it is used.

Users who are viewing this thread