RoleIcons
RoleIcons is a tiny UI mod that adds Blizzard's party/raid role icons (tank/heal/dps) in several useful places in your UI, and provides several other related features.
Role icons are added to:
- The Blizzard raid tab. The role icons replace the level field for max level players.
- Game tooltip when you mouse over a player or raid frame
- Target frame
- HealBot unit frames
- HealBot and Vuhdo tooltip when you mouse over a raid frame
- Party/Raid chat (Blizzard chat frames, Prat, Chatter, WIM)
- NEW in 4.2: System messages that mention group members
- NEW in 4.3: Player popup context menus
- NEW in 4.4: Group member tooltips on map and minimap
Other features:
- Enhances the Blizzard Raid tab with role summary counts and class summary counts
- Adds a role-check button to the Raid tab
- Blizzard Raid tab can now be left-clicked to target a raid member
- Blizzard Raid tab can now be middle-clicked to set a raid member's role
- Automatically sets your role based on your spec when joining a raid or respeccing
- Automatically replies to role checks from the raid leader based on your spec
- Adds a tooltip showing the tier token breakdown for the current raid members
- NEW in 4.0: Displays the "hosting" realm name while in cross-realm groups, showing when it changes and why
- All features are optional and can be toggled using /ri
Basic Usage:
- Install as usual
- It Just Works! (tm)
Command Line Usage:
- /ri help - Get info on command-line options
- /ri check, /rolecheck - perform a Role Check (must be leader or raid assistant)
Featured in a Curse Addon Spotlight!!!
Bug reports or feature requests
Forum thread for general discussion
That would be an addon really cool to have in WotLK.
Anyone got it working for 3.4.1+ ?
Thanks UppyDan for trying to fix this but neither of the changes have made difference for me. Previous one with blocking a whole bunch of lines still popped an error at the start and the error was gone after changing the line # 1024. But as soon as joined a party (created a group in LFG since it marks you as being in a party group), another error appeared and no role icons on any portraits. I am also using Shadowed Unit Frames addon and pretty sure that one has support for Role Icons function calling out from this one. Here's the new error that appears when joining a party.
22x RoleIcons/RoleIcons.lua:1227: attempt to call global 'UpdateTarget' (a nil value)
[string "@RoleIcons/RoleIcons.lua"]:1227: in function <RoleIcons/RoleIcons.lua:1202>
Locals:
frame = RoleIconsHiddenFrame {
0 = <userdata>
}
event = "PLAYER_REGEN_ENABLED"
name = nil
(*temporary) = nil
(*temporary) = "target"
(*temporary) = "attempt to call global 'UpdateTarget' (a nil value)"
string = <table> {
split = <function> defined =[C]:-1
match = <function> defined =[C]:-1
gmatch = <function> defined =[C]:-1
upper = <function> defined =[C]:-1
gsub = <function> defined =[C]:-1
format = <function> defined =[C]:-1
utf8sub = <function> defined @Outfitter/Libraries/UTF8/utf8.lua:183
lower = <function> defined =[C]:-1
sub = <function> defined =[C]:-1
len = <function> defined =[C]:-1
utf8lower = <function> defined @Outfitter/Libraries/UTF8/utf8.lua:276
gfind = <function> defined =[C]:-1
join = <function> defined =[C]:-1
rep = <function> defined =[C]:-1
utf8len = <function> defined @Outfitter/Libraries/UTF8/utf8.lua:158
char = <function> defined =[C]:-1
rtgsub = <function> defined @FrameXML/RestrictedInfrastructure.lua:618
utf8upper = <function> defined @Outfitter/Libraries/UTF8/utf8.lua:266
reverse = <function> defined =[C]:-1
byte = <function> defined =[C]:-1
trim = <function> defined =[C]:-1
utf8reverse = <function> defined @Outfitter/Libraries/UTF8/utf8.lua:286
find = <function> defined =[C]:-1
}
addonName = "RoleIcons"
debug = <function> defined @RoleIcons/RoleIcons.lua:84
settings = <table> {
hbicon = true
map = true
debug = false
chat = true
raid = true
classbuttons = true
popup = true
system = true
state = <table> {
}
trimserver = true
autorole = true
focus = true
target = true
serverinfo = true
tooltip = true
rolebuttons = true
}
pairs = <function> defined =[C]:-1
defaults = <table> {
hbicon = <table> {
}
debug = <table> {
}
map = <table> {
}
popup = <table> {
}
tooltip = <table> {
}
serverinfo = <table> {
}
chat = <table> {
}
system = <table> {
}
trimserver = <table> {
}
autorole = <table> {
}
focus = <table> {
}
target = <table> {
}
raid = <table> {
}
classbuttons = <table> {
}
rolebuttons = <table> {
}
}
addon = <table> {
unitstatus = <table> {
}
ServerChatString = <function> defined @RoleIcons/RoleIcons.lua:402
svnrev = <table> {
}
SetupVersion = <function> defined @RoleIcons/RoleIcons.lua:1284
UpdateRGF = <function> defined @RoleIcons/RoleIcons.lua:432
UpdateServers = <function> defined @RoleIcons/RoleIcons.lua:588
version = "r183"
formatToon = <function> defined @RoleIcons/RoleIcons.lua:785
trimServer = <function> defined @RoleIcons/RoleIcons.lua:145
L = <table> {
}
revision = 183
}
RegisterHooks = <function> defined @RoleIcons/RoleIcons.lua:1007
InCombatLockdown = <function> defined =[C]:-1
UnitGroupRolesAssigned = <function> defined =[C]:-1
myDefaultRole = <function> defined @RoleIcons/RoleIcons.lua:190
Another fix for DragonFlight (for the "OnTooltipSetUnit" error):
In RoleIcons.lua, around line 1024, replace this line ...
GameTooltip:HookScript("OnTooltipSetUnit", UpdateTT)
with this line ...
TooltipDataProcessor.AddTooltipPostCall(Enum.TooltipDataType.Unit, function(tooltip, data) UpdateTT(tooltip) end)
In reply to UppyDan:
I`ll test also.
Author hasn't logged in for about 4 years. Hopefully someone takes over this great addon or is it dead for good? :(
There are a couple of other Unit Frame addons that use this one for role icons too.
Fix for DragonFlight - In RoleIcons.lua, comment out all the lines in the function UpdateTarget(). (See below.) I'm not sure what it breaks, but seems to work good enough.
local function UpdateTarget(frame)
-- local Frame = frame:gsub("^(.)",string.upper)
-- addon.frametex = addon.frametex or {}
-- local tex = addon.frametex[frame]
-- if tex then tex:Hide() end
-- if not settings[frame] or not UnitIsPlayer(frame) or not _G[Frame.."Frame"]:IsVisible() then return end
-- local role = UnitGroupRolesAssigned(frame)
-- if role == "NONE" then return end
-- if not tex then
-- tex = _G[Frame.."FrameTextureFrame"]:CreateTexture(addonName..Frame.."FrameRole","OVERLAY")
-- tex:ClearAllPoints()
-- tex:SetPoint("BOTTOMLEFT", _G[Frame.."FrameTextureFrameName"], "TOPRIGHT",0,-8)
-- tex:SetTexture(role_tex_file)
-- tex:SetSize(20,20)
-- addon.frametex[frame] = tex
-- end
-- tex:SetTexCoord(getRoleTexCoord(role))
-- tex:Show()
end
Tentative fix - Open up RoleIcons.lua and go to line 29, looks like this:
local maxlvl = MAX_PLAYER_LEVEL_TABLE[#MAX_PLAYER_LEVEL_TABLE]
Replace it with this:
local maxlvl = GetMaxLevelForLatestExpansion()
YMMV, caveat updater, etc and so forth. Theoretically future-proofed?
In reply to Veyska:
I came here to post this same fix. I mean, what could go wrong?
Hey thanks for this.
it still was working until 9.0 any chance of getting a fix?
See https://www.wowace.com/projects/roleicons?comment=80
Gonna miss this
It looks like a user got it working:
https://www.wowace.com/projects/roleicons?comment=80
please update
Update please for BfA
Doesn't work anymore since BFA :(
If you don't want the addon to announce on every talent change, delete or comment out line 207:
frame:RegisterEvent("ACTIVE_TALENT_GROUP_CHANGED");
Legion update is needed
Is the author still around and pay attention to any tickets created on the wowace page?
Some sort of response always goes a long way :)
Is this going to be updated for legion?