This project is abandoned.

Whether this project is out of date or its author marked it as abandoned, this project is no longer maintained.

If you wish to take this project over, please report it and state your intentions.

Main Screen


Re-Write of the original HeadCount. This rewrite is to move to Ace3 and WoW 4.0

HeadCount2 is a configurable World of Warcraft add-on that automatically tracks raid attendance, loot, and boss kills.

HeadCount2 answers the following questions:

  • How long is a player active in a raid?
  • How long is a player on standby for a raid?
  • How long is a player offline during a given raid?
  • What loot dropped during a raid and who received it?
  • What boss kills occurred during a given raid and who was there for the kill?



  • Raid creation: Automatically creates a new raid as you join or start a raid.
  • Raid finalization: Automatically ends an existing raid as you leave a raid.
  • Raid management: The user can end raids, remove raids, or remove all raids on demand.
  • Raid zone tracking: Zone name are automatically added to raids as you zone into a raid instance for the first time.

Player attendance

  • Player tracking: Players are tracked based on their timed participation in the raid. Players can be tracked based on configurable raid groups for raid list activity (active raiding players) and wait list players (queue/standby players).
  • Player removal: The user can remove tracked information for specific players on demand.
  • Player history: View specific player history for a raid to see how and when a player moved from activity to standby to offline and back during a raid.
  • No list tracking: Players can be tracked as non-raid list and non-standby players as needed. Players that go offline are automatically taken out of the raid and wait list groups for tracking purposes.
  • Integrated wait list: Receive whispers from members outside of the raid group in order to track them.

Boss kills

  • Boss kill tracking: Tracks the world bosses killed during the course of a raid and the raid list members present for the kill.
  • Boss kill removal: The user can remove tracked boss kills on demand.
  • Manual boss kill: The user can add a boss kill to the current raid at the current time with the current roster via the config UI


  • Loot tracking: Tracks loot received during a raid based on configurable item level quality (default: Epic item level or higher)
  • Loot removal: The user can remove specific pieces of loot on demand.
  • Loot exclusion: The user can manage loot exclusion which will prevent certain pieces of loot from being tracked during a raid.


  • Export: Users can export current raid attendance and received loot information to one of a number of formats (CSV, XML, Text, EQdkp XML string, phpBB forum post, phpBB with ItemStats forum post).


  • Boss kill broadcast: The user can optionally broadcast when the raid kills a boss to a configurable chat channel.
  • Loot broadcast: The user can optionally broadcast when a player receives a valid piece of loot to a configurable chat channel.


  • Fault tolerance: If the mod owner quits WoW, restarts WoW, or reloads their UI during a raid and returns to the game, HeadCount2 will attempt to gracefully recover from the outage to continue tracking the active raid.
  • Attendance delay: Configure how often HeadCount should manage attendance updates to increase or decrease performance and/or accuracy.

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of SirTreek23 SirTreek23 Nov 05, 2010 at 23:40 UTC - 0 likes

    Is the tracker not working yet or do you have to actually be in a raid zone for it to work properly? I was going to test it out before my raid tonight, but I'm not getting a pop up window for loot after I set it to common and checked for a pop up to appear. The left-click on the button to bring up the raid tracker doesn't seem to work for me, as well as /hc2 tracker. The new config menu is great.

  • Avatar of kagaro kagaro Nov 04, 2010 at 13:30 UTC - 0 likes

    Also im looking for feedback on teh new config menu. it can be accessed via LDB or /hc2

  • Avatar of kagaro kagaro Nov 04, 2010 at 13:26 UTC - 0 likes

    yeah was a bug due to the wrong variable being called. this was causing an error which due the to fact it was in a filter prevented the whisper from propagating. This should now be fixed.

  • Avatar of Jiminimonka Jiminimonka Nov 04, 2010 at 13:02 UTC - 0 likes

    This was hiding all my whispers, sent and received last night. I know its still early development phase of course. Once I turned HC2 off, the whispers were OK.

    2x Error: Original call failed after running hooks for: ChatFrame_OnEvent : HeadCount2-1.0\RaidTracker.lua:806: attempt to index global 'messageHandler' (a nil value)(tail call): ? Guild2Guild-7.6.0\Guild2Guild.lua:880: in function `ChatFrame_OnEvent' <string>:"*:OnEvent":1: in function <[string "*:OnEvent"]:1> : Stubby-275\Stubby.lua:381: in function <Stubby\Stubby.lua:325> (tail call): ?: Guild2Guild-7.6.0\Guild2Guild.lua:880: in function `ChatFrame_OnEvent' <string>:"*:OnEvent":1: in function <[string "*:OnEvent"]:1>


    This was version: r20101102184954

    Last edited Nov 04, 2010 by Jiminimonka
  • Avatar of Gorilivan Gorilivan Nov 04, 2010 at 03:52 UTC - 0 likes

    I know this isn't ready yet and may not be a Headcount2 issue but it was first listed first in the below error. I haven't done any testing with only it running and it only happens when I first join a raid group.

    2x HeadCount2-1.0\RaidTracker.lua:796: attempt to index global 'messageHandler' (a nil value)
    Prat-3.0-3.4.10 \services\chatsections.lua:59: in function <Prat-3.0\services\chatsections.lua:52>
    Prat-3.0-3.4.10 \services\chatsections.lua:320: in function `SplitChatMessage'
    Prat-3.0-3.4.10 \addon\addon.lua:588: in function <Prat-3.0\addon\addon.lua:564>
    (tail call): ?:
    BadBoy_Levels-2.75\BadBoy_Levels.lua:89: in function <BadBoy_Levels\BadBoy_Levels.lua:38>

    frame = ChatFrame3 {
    0 = <userdata>
    flashTimer = 0
    isInitialized = 1
    PageUp = <function> defined =[C]:-1
    print = <function> @ Prat-3.0\services\print.lua:51:
    tellTimer = 265602.824
    ScrollDown = <function> defined =[C]:-1
    mouseOutTime = 1.0510000474751
    resizeButton = ChatFrame3ResizeButton {}
    buttonFrame = ChatFrame3ButtonFrame {}
    defaultLanguage = "Orcish"
    buttonSide = "right"
    oldAlpha = 1.000000059139
    channelList = <table> {}
    PageDown = <function> defined =[C]:-1
    clickAnywhereButton = ChatFrame3ClickAnywhereButton {}
    ScrollToBottom = <function> defined =[C]:-1
    mouseInTime = 0
    editBox = ChatFrame3EditBox {}
    ScrollUp = <function> defined =[C]:-1
    isLocked = 1
    name = "Whisper"
    ScrollToTop = <function> defined =[C]:-1
    dbg = <function> @ Prat-3.0\services\print.lua:55:
    zoneChannelList = <table> {}
    AddMessage = <function> @ Ace3\AceHook-3.0\AceHook-3.0.lua:100:
    messageTypeList = <table> {}
    event = "CHAT_MSG_WHISPER"
    arg1 = "thot i saw theflayedone come oneline iwas gonna freak out but it wasnt it had the in it and i was realoading my ui "
    arg2 = "Exileratate"
    arg3 = ""
    arg4 = ""
    arg5 = "Exileratate"
    arg6 = ""
    arg7 = 0
    arg8 = 0
    arg9 = ""
    arg10 = 0
    arg11 = 1324
    arg12 = "0x0500000003C39A34"
    arg13 = 0
    arg14 = nil
    arg15 = nil
    filter = false
    chatFilters = <table> {
    1 = <function> @ BadBoy\BadBoy.lua:175:
    2 = <function> @ BadBoy_Levels\BadBoy_Levels.lua:105:
    3 = <function> @ DBM-Core\DBM-Core.lua:2225:
    4 = <function> @ Gimplist\Gimplist.lua:455:
    5 = <function> @ ZOMGBuffs\ZOMGBuffs.lua:4471:
    6 = <function> @ GuildGreet\GuildGreet.lua:6045:
    7 = <function> @ HeadCount2\RaidTracker.lua:794:
    (for generator) = <function> defined =[C]:-1
    (for state) = <table> {
    1 = <function> @ BadBoy\BadBoy.lua:175:
    2 = <function> @ BadBoy_Levels\BadBoy_Levels.lua:105:
    3 = <function> @ DBM-Core\DBM-Core.lua:2225:
    4 = <function> @ Gimplist\Gimplist.lua:455:
    5 = <function> @ ZOMGBuffs\ZOMGBuffs.lua:4471:
    6 = <function> @ GuildGreet\GuildGreet.lua:6045:
    7 = <function> @ HeadCount2\RaidTracker.lua:794:
    (for control) = 7
    _ = 7
    filterFunc = <function> @ HeadCount2\RaidTracker.lua:794:
    _G = <table> {
    ContainerFrame5Item7 = ContainerFrame5Item7 {}
    FriendsFrameFriendsScrollFrameButton16SummonButtonHotKey = FriendsFrameFriendsScrollFrameButton16SummonButtonHotKey {}
    GetTrainerServiceTypeFilter = <function> defined =[C]:-1
    UNIT_NAMES_COMBATLOG_TOOLTIP = "Color unit names."
    ARKINV_Frame4ChangerWindowPurchaseInfoDetailMoneyFrameCopperButtonText = ARKINV_Frame4ChangerWindowPurchaseInfoDetailMoneyFrameCopperButtonText {}
    NxIconNI38 = NxIconNI38 {}
    MultiBarLeftButton7 = MultiBarLeftButton7 {}
    AudioOptionsVoicePanelOutputDeviceDropDownButtonHighlightTexture = AudioOptionsVoicePanelOutputDeviceDropDownButtonHighlightTexture {}
    MerchantItem7AltCurrencyFrameItem1Text = MerchantItem7AltCurrencyFrameItem1Text {}
    BINDING_NAME_NAMEPLATES = "Show Enemy Name Plates"
    NxTeamHUD = NxTeamHUD {}
    AudioOptionsVoicePanelMicrophoneVolumeThumb = AudioOptionsVoicePanelMicrophoneVolumeThumb {}
    ERR_NOAMMO_S = "%s"
    NxIconS43 = NxIconS43 {}
    MoneyFrame_OnEvent = <function> @ Interface\FrameXML\MoneyFrame.lua:199:
    CinematicFrameRaidBossEmoteFrame = CinematicFrameRaidBossEmoteFrame {}
    InterfaceOptionsCombatTextPanelFCTDropDown_OnClick = <function> @ Interface\FrameXML\InterfaceOptionsPanels.lua:1433:
    TradeSkillInputBoxLeft = TradeSkillInputBoxLeft {}
    LFGTeleport = <function> defined =[C]:-1
    GetMonitorAspectRatio = <function> defined =[C]:-1
    ChannelMemberButton10Name = ChannelMemberButton10Name {}
    Graphics_QualityText = Graphics_QualityText {}

    Last edited Nov 04, 2010 by Gorilivan
  • Avatar of kagaro kagaro Nov 02, 2010 at 17:09 UTC - 0 likes

    it shouldnt need anything special to work in ruby sanctum.

  • Avatar of kagaro kagaro Nov 02, 2010 at 17:07 UTC - 0 likes

    its not ready for use yet, im just getting to redoing the option screen and still working out bugs.

  • Avatar of TonDef TonDef Nov 02, 2010 at 12:17 UTC - 0 likes

    I'm a dolt. How do we pull it up? I can't find a slash command, LDB, or mini-map button. But on the good side, it didn't throw any errors.

  • Avatar of orthwein orthwein Nov 01, 2010 at 16:18 UTC - 0 likes

    Hoping you add Ruby Sanctum too...

    Can't wait for this to be in a usable state (mainly, being able to record raids + specify cost for items), right now we rely on the xml export for our website so losing the old headcount has been quite painful.

  • Avatar of kagaro kagaro Oct 24, 2010 at 17:59 UTC - 0 likes

    Some Caveats:

    No way to import OLD HeadCount data, its all stored with Ace00 stuff. Out of the box im only ensuring raid detection hooks for ICC, others will track, but may or may not marks bosses properly. i.e. Naxx 4 Horsemen being marked as a single boss vs 4 individual bosses, I might add those in later, but at this point in the game with Cata just around the corner, I just dont see a need to track kills/attendance/dkp for very old instances that can be soloed or 5 man runs.

    Unless a few 100 people calmour for it, im not gonna worry about it as im porting. Its gonna track based on the new raid model: All Raids have multiple sizes and difficulty and are sized as either 10 or 25 man. MC is even being changed to a 10 man instance (doubt there is a difficulty setting but you never know)


Date created
Oct 22, 2010
Last update
Sep 14, 2012
Development stage
  • deDE
  • enUS
  • esES
  • esMX
  • frFR
  • koKR
  • ruRU
  • zhCN
  • zhTW
All Rights Reserved
Recent files