Get an Epic Experience with Premium


Combat Login to Add Favorites
  • World of Warcraft
  • 1,331 Monthly Downloads
  • Supports: 6.2.0
  • 959,516 Total Downloads
  • Updated 07/02/2015
  • Created 07/20/2005
  • 2,119 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: All Rights Reserved
  • Newest File: 4.6.6

About Critline

Original concept and version by Sordit. Rewritten by Uggh and Feyde, now maintained (and pretty much re-rewritten) by me.

If you are willing and able to provide localization, please head over to the localization page! Any and all translations, reviews and corrections are greatly appreciated.

Critline is an addon that will remember your highest hits and crits (including heals and pet attacks), and display them in a fairly simple tooltip. It sports many features by default, including advanced filtering, a standalone frame, splash on new record and more. All this can be disabled if you just want the basic functionality. Read on for more info!

Spell list

This is where you can review and manage all of your registered spells. On its own it shows the registered records and target. Functionality is added by other modules and is accessed via the menu button on the right hand side of each spell.

Filters, reset and announce modules are dependent on the spell list module.
This module can be disabled by deleting spellList.lua in your Critline folder.


The filter module lets you control which spells you want to register and show, as well as which targets you want to allow.
It comes with integrated aura and mob filters, for those known auras/mobs that may mess up your records. Generally I include anything that boosts your effects by 10% or more. You can also add custom entries.
The module also adds spell filter functionality to the spell list. Enabled spells will be accounted for when records are broken, and will show up in tooltips. Disabled spells are grayed out in the spell list.

This module requires the spell list module.
This module can be disabled by deleting filtersCore.lua and filtersGUI.lua in your Critline folder.


The splash module, when enabled, will display a message on your screen whenever you break a record. You can choose to use the default style, or have the messages make use of your combat text addon of choice.

This module can be disabled by deleting splash.lua in your Critline folder.


The display module allows for easy access to all your records. It will show the normal and crit record of each tree, and when you hover over the frame, it will show you a tooltip with all the records.

This module can be disabled by deleting display.lua in your Critline folder.


The minimap module provides easy access to the options. Right click it to show the config frame, and left click it to toggle the display frame.

This module can be disabled by deleting minimap.lua in your Critline folder.


This module adds announcing functionality to the spell list. This allows you to let people know of your awesome records.

This module requires the spell list module.
This module can be disabled by deleting announce.lua in your Critline folder.


This module adds reset and revert functionality to the spell list. It lets you permanently delete unwanted records, or revert records achieved in the last fight. Records that are eligible for reversion are annotated with green text in the spell list.

This module requires the spell list module.
This module can be disabled by deleting reset.lua in your Critline folder.


This module provides a DataBroker feed for each tree, that shows the records, much like the display module.
You can shift click it to insert your top records into the chat, or click it normally to open the config.

This module can be disabled by deleting Broker.lua in your Critline folder.


This module lets you manipulate how data is stored and presented, and is not for the faint of heart!
With it, you can make spells be regarded as a different spell, sharing its records. You can also have spells appear with a different name or icon, or specify which spell should be presented in a given tooltip. Spell IDs are accepted as the soure spell. Be sure to enable debugging with '/cl debug' to reveal spell IDs in tooltips and debug messages.

This module can be disabled by deleting advanced.lua in your Critline folder.

Aura tracker

This module mainly exists for debugging purposes and does not actually affect the addon in any way.
It registers auras that you and neutral and hostile NPCs have gained, and displays them in a sortable and filterable list. Spell ID and NPC ID of the caster is included.

This module can be disabled by deleting AuraTracker.lua in your Critline folder.


This module allows you to share settings among characters, and manage profiles easily.
The spell profile contains all your spell records, as well as data regarding which trees you are recording.
The "general" profile contains all other settings. This profile is character specific by default.
This way you can use the same general settings (such as functionality and appearance) on all your characters, while still using separate spell databases.

The general and spell profiles are stored separately, and will not collide. For example, you can use the 'Default' profile both for the general and the spell profiles. They are not considered the same. Changes made to the general profile would not affect the spell profile.

This module can be disabled by deleting profiles.lua in your Critline folder. Note that profiles will still be used, you are only disabling the ability to manage them.

- Fixed screenshot feature.


First Previous Page 4 of 66 Next Last
  • #991

    Great to see that this is still getting updates in the Alpha channel, but please, please devs, update the TOC file! Takes 5 seconds, makes life a lot easier for those of us who will not "load out of date add-ons" :)


  • #990


    I noticed your comment on WoWInterface and; I'm no longer updating my addons over there. You will have the get the latest version off of Curse.

  • #989

    Was playing on my lvl 90 warlock in a pandaland dungeon


    31x Critline-4.1.1\core.lua:540: attempt to call global "GetMajorTalentTreeBonuses" (a nil value)
    Critline-4.1.1\core.lua:540: in function "?"
    Critline-4.1.1\core.lua:276: in function <Critline\core.lua:275>

    self = <unnamed> {
    0 = <userdata>
    Critline = <table> {
    ShortenNumber = <func> @Critline\core.lua:907
    DeleteSpell = <func> @Critline\core.lua:1046
    SlashCmdHandlers = <table> {}
    LoadPerCharSettings = <func> @Critline\core.lua:850
    UpdateRecords = <func> @Critline\core.lua:1084
    ShowTooltip = <func> @Critline\core.lua:1110
    GetHighest = <func> @Critline\core.lua:1020
    filters = <unnamed> {}
    options = <table> {}
    NewRecord = <func> @Critline\core.lua:878
    icons = <table> {}
    treeNames = <table> {}
    UnregisterCallback = <func> @Ace3\..\CallbackHandler-1.0.lua:181
    display = <unnamed> {}
    RegisterCallback = <func> @Ace3\..\CallbackHandler-1.0.lua:118
    GetSpellTexture = <func> @Critline\core.lua:960
    UpdateTopRecords = <func> @Critline\core.lua:986
    AddTooltipLine = <func> @Critline\core.lua:1210
    callbacks = <table> {}
    GetTooltipLine = <func> @Critline\core.lua:1195
    UpdateTooltip = <func> @Critline\core.lua:1137
    UpdateSpells = <func> @Critline\core.lua:1071
    UpdateTooltips = <func> @Critline\core.lua:1096
    GetFullTargetName = <func> @Critline\core.lua:976
    GetFullSpellName = <func> @Critline\core.lua:967
    templates = <table> {}
    db = <table> {}
    IsMyPet = <func> @Critline\core.lua:779
    OpenConfig = <func> @Critline\core.lua:831
    UnregisterAllCallbacks = <func> @Ace3\..\CallbackHandler-1.0.lua:202
    GetSpellName = <func> @Critline\core.lua:953
    AddSpell = <func> @Critline\core.lua:1026
    Debug = <func> @Critline\core.lua:818
    COMBAT_LOG_EVENT_UNFILTERED = <func> @Critline\core.lua:618
    RegisterEvent = <func> @Critline\core.lua:266
    GetSpellInfo = <func> @Critline\core.lua:947
    GetSpellArrayEntry = <func> @Critline\core.lua:921
    PLAYER_TALENT_UPDATE = <func> @Critline\core.lua:539
    Message = <func> @Critline\core.lua:811
    GetLevelFromGUID = <func> @Critline\core.lua:786
    ToggleDebug = <func> @Critline\core.lua:825
    LoadSettings = <func> @Critline\core.lua:836
    GetSpellArray = <func> @Critline\core.lua:933
    eventFrame = <unnamed> {}
    UnregisterEvent = <func> @Critline\core.lua:269
    percharDB = <table> {}

  • #987

    Right, the Berserker buff is blacklisted and will have caused the hit not to get registered. You may bypass the aura filtering in the filter settings.

  • #988

    Thank you very much!

  • #985

    @ Mondenkynd:
    Those debug messages are largely irrelevant, going to change them into something more useful. Not sure what could be wrong.

    @ mikefromhawaii:
    Works as intended for me. (overkill damage should be included) Would you be able to provide the combat log entry of the faulty events? Alternatively, what spell did you use, on which target? Changed any relevant filter settings? (although I'm not sure which one would cause this)

  • #986

    It happened twice on my warrior with shield slam. I did have berserker buff on and then my self buffs. It was on a player both times it happened.

    My character's high at the time was 13,180. "Your Shield Slam hit Berthier-Mug'thol 3937 Physical. (10589 Overkill) (Critical)." This should have replaced the 13k one but didn't.




  • #984

    New high damage hits don't register for me if they are overkill hits. So if I hit for 20k but the person only had 2k health left, my hit would count as 2k and it would ignore the other 18k.

    Is there a way to turn on "overkill hits" or is this a bug?

    Thank you!

  • #982

    Type '/cl debug' to get more info on why hits aren't being registered.

  • #983

    [08:27:39] CritlineDebug: nil source/dest
    [08:27:41] CritlineDebug: nil source/dest
    [08:27:43] CritlineDebug: nil source/dest
    [08:27:45] CritlineDebug: nil source/dest
    [08:27:46] Nalak schreit: Ich bin die Verkörperung des Donners!
    [08:28:07] Taran Zhu schreit: Bleibt in Bewegung! Weicht den Blitzen des Sturmfürsten aus!
    [08:28:10] CritlineDebug: Storing previous crit dmg record for Kreuzfahrerstoß (72995)

    Same Problems with my just gets the record from crusader strike but i got another 249k crit with Templar's Verdict before an this wasn't detected. The nil source massage was nearly the hole fight in the chat.

    Combat Log:
    Euer Urteil des Templers trifft Arkanital Tula'chek 249201 körperlichen Schaden.  (Kritisch) <- Templar's Verdict...the old record is 177,7k.
    Euer Kreuzfahrerstoß trifft Arkanital Tula'chek 72995 körperlichen Schaden. (Kritisch) <- Crusader Strike

    Last edited by Mondenkynd on 4/16/2013 1:44:00 AM
  • #981

    Critline does not realize all damage done by Obliterate (DK), i did some high crits they are locked in also in the  Combatlog, but Citline just holds the older one. =(

  • #980

    Ah, yeah I've fixed that already. Didn't realise I hadn't pushed the release! Did it now.

  • #979

    Still getting errors on Garalon (using the latest version):

    Date: 2013-03-30 21:42:31
    ID: -3
    Error occured in: Global
    Count: 192
    Message: ..\AddOns\Critline\filtersCore.lua line 411:
       bad argument #2 to 'format' (string expected, got nil)
       [C]: ?
       Critline\filtersCore.lua:411: ?()
    (*temporary) = "Target (%s) gained filtered aura. (%s) Ignore received damage."
    (*temporary) = nil
    (*temporary) = "Weak Points"
    (*temporary) = "string expected, got nil"

  • #978

    Aye. Will update in a bit.

  • #977

    Some issues in 5.2. I get some of these errors randomly when fighting different mobs:

    Message: ..\AddOns\Critline\AuraTracker.lua line 448:
       bad argument #1 to 'band' (number expected, got string)
       [C]: ?
       Critline\AuraTracker.lua:448: IsPvPTarget()
       Critline\AuraTracker.lua:422: RegisterAura()
       Critline\AuraTracker.lua:358: ?()
    (*temporary) = ""
    (*temporary) = 7
    (*temporary) = "number expected, got string"

  • To post a comment, please login or register a new account.
Login to Curse

Don't have an account? Create One.

Get an epic experience with Curse Premium
  • Faster addon downloads
  • Premium-Only Beta Giveaways
  • Ad-Free Curse experience
  • Premium Curse Client
  • and many More Features
  • Learn More »

Darkest Dungeon Wiki Editing Contest