targetAssist
Anyone else miss MainAssist? targetAssist is my attempt to recreate the basic functionality of that wonderful addon.
targetAssist provides unit frames that track tanks and main assists in your party or raid, along with their current targets. You can position the frames by dragging the header bar. Targeting buttons can be arranged above or below the header (see the Appearance section of the configuration options):

Right click on the header bar to bring up a context menu that will allow you to select the tracked party/raid members and configure the addon:

Left click on party/raid members or their targets to target those units. Right clicking on the party/raid member buttons brings up a menu that allows you to change the order in which they appear:

Right click on a party/raid member target to change the raid icon on that unit:

The interface options panel allows you to customize the visual appearance and behavior of the addon:

In addition to setting up the addon to automatically track tanks and main assists set through the default UI, you can also broadcast your current settings to other members of your party/raid who are running the addon:

Version History
1.4.2
- Updated TOC version
A note about development of the addon: the addon is in "maintenance release" mode for the time being, meaning that I'll fix bugs that get submitted, but it's unlikely that big new features will be added in the near future. If anyone is interested in getting involved in development of the addon, please feel free to send me a PM!
1.3 (last stable 1.3)
New Features:
- Updated the appearance of the addon when showing target-of-target buttons.
- Added an option to hide the header bar until you mouse over it (enabled by default). However, the header bar will automatically un-hide when there are no targeting buttons being shown, so you don't loose track of where the addon is on the screen.
- Buttons associated with friendly or hostile targets can now be colored based on the character's class.
- You can show the percentage health for friendly or hostile targets.
Squashed Bugs:
- Changes to the appearance of the header bar should now apply immediately (and not lead to abandoned UI elements floating around).
- Added an option (enabled by default) that will remove tanks and mainassists that were picked up automatically if those targets disappear from the MT/MA lists when the roster updates. There are edge cases where this can lead to unexpected results: if you have manually added a tank, which is also picked up on a MT list and then subsequently removed from the MT list, the tank (originally added by you manually) will disappear from your assist list. If this bugs you, disable this new option on the features panel.
Deprecated Settings:
- Width of the targeting buttons is now set explicitly and the header bar sized accordingly (as opposed to the inverse in previous versions). However, the addon now includes logic for automatically migrating settings from previous versions of the configuration database, so the change over should happen automatically whenever you load a profile for the first time.
1.2 (last stable 1.2.2)
New Features:
- Improved key binding support for assist, assist target, and assist target of target frames. This feature is now implemented using LibKeyBound, which should be familiar to anyone who has used Bartender4 or other popular Ace mods. The new implementation allows you to map key bindings to any number of buttons. To set bindings open the configuration panel and click the "Targeting Keybinds" button or use the /kb chat command.
- A key binding has been added which will clear all current assists (this can be set through built-in key bindings panel).
- The configuration panels have been updated to try to make options easier to find (usability feedback welcome).
Squashed Bugs:
- Changes in configuration, the group roster, and showing/hiding the add-on should be much smoother visually (no more button flickering and blinking), even at slow update intervals
- The add-on now correctly updates when your pet changes or the pets of your party/raid members change
- Targeting key bindings should continue to work even after configuration changes and updates to the group roster (previously odd behaviors occurred until the UI was reloaded)
- Changes to the header appearance should now correctly apply immediately without a UI reload
Deprecated Settings:
- Any previously set targeting key bindings will need to be reconfigured using the new interface (use the chat command /kb)
1.1 (last stable 1.1.2)
New Features:
- Added an option to show target of target (see "Optional Features" on the configuration panel)
- Added support for using pets as MAs/MTs. Enable "Show Pets" in the "Optional Features" section of the configuration panel. Uncheck "Hide addon when not in group" in the "Button Header" section to use your pet as a MA when playing solo.
- Added a variety of chat window slash commands. See /targetAssist or /ta for details.
- Added a number of key bindings for the add-on. See the built-in Keybindings window for details.
- Added options to add your current target as an MA. You can do this through the header bar context menu, with the "/ta add target" slash command, or new keybinds. Add arbitrary party/raid members with the "/ta add player NAME" command (where NAME is the name of the player).
- You can now have button rows grow upwards from the header bar instead of downwards. Select "Advance buttons upwards" in the "Fonts & Styles" section of the configuration panel.
- Added options to track not only the most popular hostile target, but also the most popular friendly target, and options to show counters summarizing the number of raid/party members targeting each.
- Added support for Clique casting and pulling tanks from oRA2 and oRA3.
Squashed Bugs:
- When in a raid the add-on should now correctly update with new MA's and MT's set by raid leaders through the Blizzard user interface, /mainassist or /maintank commands, or with oRA2. Please file a ticket if you are still having problems with this feature.
Deprecated Settings:
- If you changed the vertical spacing setting for target buttons, your settings will have reverted to the defaults.
1.0 (last stable 1.0)
Description:
- Initial release to gage interest and solicit feature requests
Bug Reports and Feature Requests
Please submit bug reports here: http://wow.curseforge.com/addons/targetassist/tickets/. Feature requests are also welcome. If you are interested in helping to develop this mod, or if you would like to help with localization efforts, please contact me here via PM or at sonora.kirintor@gmail.com.
Facts
- Date created
- Nov 12, 2010
- Categories
- Last update
- Sep 06, 2012
- Development stage
- Release
- Language
- enUS
- License
- GNU General Public License version 3 (GPLv3)
- Curse link
- targetAssist
- Downloads
- 90,225
- Recent files
Relationships
- Optional dependency
- Clique
- oRA2
- oRA3
- SharedMedia
- Embedded library
- Ace3
- AceGUI-3.0-SharedMediaWidgets
- CallbackHandler-1.0
- LibKeyBound-1.0
- LibSharedMedia-3.0
- LibStub
- Reply
- #17
Morgalm Dec 30, 2011 at 00:01 UTC - 0 likesNot sure what has changed but tank behavior seems to be broken atm. It isnt (always) detecting when I add/remove tanks using the blizz tanks (ie promote them to tank) Also I had 2 tanks up then one just disappeared. I checked and under custom tanks it had tank1 and tank2 both checked but only tank1 was showing. If I unchecked tank2 tank1 disappeared. Could never get tank2 to appear. Seems to be new behavior in last month or so.
- Reply
- #16
Sonora Apr 27, 2011 at 21:57 UTC - 0 likes@Morgalm: Go
Just caught that - fixed in 1.4.1.
- Reply
- #15
Morgalm Apr 27, 2011 at 00:38 UTC - 0 likesYour comm name is too long can only be 16 chars now.
- Reply
- #14
Sonora Dec 06, 2010 at 03:01 UTC - 0 likesMore great suggestions!
(a) patch included in 1.2 (b) patch included in 1.2 (thanks, I hadn't stumbled on these API calls before) (c) Most flickering and blinking should be fixed in 1.2. Your suggestions for replacing the previous kludge with a cleaner implementation inspired me to take a larger pass over the drawing/updating functions.
- Reply
- #13
Dridzt Nov 30, 2010 at 12:36 UTC - 0 likesYou shouldn't encourage me... but you just did so.. :-P
A couple last things if I may.
a. One more convenience key-bind for "Clear All"
Use case: Works nicely as a quick refresh when you have "automatically add tanks".
Setting a tank through oRA or Blizzard interface adds it to targetAssist targets.
Removing it (because next encounter doesn't need 2 or 3 or because it was a ranged tank for particular encounter etc) doesn't also remove it from targetAssist.
A quick "clear all" refreshes the list since current tanks are automatically re-added.
There's also a little typo in the print for combat lockdown in add target binding ('durring' instead of 'during')
b. In gui.lua a small typo in broadcasts menu item:
'Recieved broadcasts' instead of 'Received broadcasts'.
In the same section the functions for broadcasting to raid/party/guild need some checks in place so you don't get the dreaded "player x / you are not in a raid/party/guild" system message spam.
Using the GetRealNum* function variants as the plain GetNumParty|RaidMembers() versions will return true in BGs but trying to sendcomm in 'RAID' or 'PARTY' distribution will fail and produce the usual system error messages.
The GetRealNum* functions only return true party/raid members.
c. Finally.
Tested the disable functionality.
It is working better than before i.e no stuck assistbuttons but they do occasionally 'flicker' in existence briefly and immediately hide again.
I'm thinking this flickering will be more noticeable the slower frequency updates the user has selected (barely noticeable at 0.1 the default, more visible at 0.2 that I have it set, quite visible at 0.5)
It would help down the road if you made use of AceAddon-3.0 :OnEnable() and :OnDisable() api to split your initialization to SV stuff in OnInit and event registration/callbacks etc in OnEnable so OnDisable can shut the addon down cleanly.
Same if you decide to make 'disable' a persistent value instead of a session variable.
(although I think it makes perfect sense as you have it not persisting a reload)
Anyway getting carried away :)
That would require some refactoring.
The next best thing and quite simple is with these minimal changes:
1. In core.lua in OnInitialize() function storing the timer handle when it's created
2. In core.lua again a new function added
I put it just under OnInitialize() block.
3. A little further down core.lua remove that workaround from onUpdate() as it's no longer needed and just leave the original hide check.
4. In gui.lua updating the 'Disable' gui option and the '/ta hide' '/ta show' respectively to:
gui options
/ta hide
/ta show
Sorry for the humongous wall of text.
Went to the source to find the reason for the flickering so I don't keep bothering you for the same thing with no new info and kinda bumped into these :)
- Reply
- #12
Sonora Nov 30, 2010 at 02:03 UTC - 0 likes@Dridzt - another great suggestion! Fixed in 1.1.2.
Feature suggestions, accompanied by clean & simple implementations? Feel free to bug me all you want!
- Reply
- #11
Dridzt Nov 29, 2010 at 05:00 UTC - 0 likesGreat, I'll get back to you after I've tested :)
I have another little suggestion.
It's never been an issue on my tank but noticed it on the healer.
I'm using Clique for click-casting.
There's a small non-breaking problem in that targetAssist doesn't check for modifiers
so you can only use modified-leftclick and middle or modified-middle click to click cast.
Doing a shift-right click or ctrl-right click will do the cast but will also popup the targetAssist menu.
Maybe checking IsModifierKeyDown() in OnMouseUp handler to avoid popping up the menu and only do it on plain right click.
Sorry to keep bugging you :P
- Reply
- #10
Sonora Nov 29, 2010 at 02:59 UTC - 0 likesThanks - this bug should be fixed in 1.1.1!
- Reply
- #9
Dridzt Nov 29, 2010 at 01:04 UTC - 0 likesversion 1.1 works pretty well but I still have the problem with disable.
Some more info.
I have the embedded libs version installed on enGB client.
I definitely wasn't in-combat when I tested it this time.
Steps to reproduce from my end:
1. Open targetAssist options tick "Disable"
Header and any assists bars hide as you'd expect.
2. Cross a loading screen (like a raid portal for example)
A "ghost" bar re-appears.
Open options and check/uncheck "Disable" again.
Header and assist bars hide again.
3. Have the RL or yourself if you have permission do a promote, set tanks, basically anything that would fire a RAID_ROSTER_UPDATE.
Ghost bar re-appears.
This is how it looks in-game
Attaching the saved variables for the character affected just in case there's some corruption there.
Still zero lua errors (have them enabled and using BugGrabber/BugSack) but I can move this to a ticket if you prefer it there.
- Reply
- #8
Sonora Nov 28, 2010 at 03:39 UTC - 0 likes@Dridzt Thank you for all of your thoughtful feedback!
Hide bug: I still haven't been able to recreate the bug. My guild isn't raiding these days so my only test environment for raid groups is battlegrounds; my failure to recreate the bug might be due to some odd difference between the two. If you see the problem again, try this (and let me know what happens): Use the chat command "/ta hide".
Including self as MA: I'm sold! In 1.1rc1 (or the actual release if I don't end up syndicating the release candidate), you'll find a new option on the configuration panel to include yourself on the add-on's roster of possible main assist targets.
I hope the EU servers are up and working for you despite the holiday here in the US!