Get an Epic Experience with Premium


Guild Login to Add Favorites
  • World of Warcraft
  • 32,371 Monthly Downloads
  • Supports: 6.2.2
  • 10,661,042 Total Downloads
  • Updated 09/12/2015
  • Created 08/20/2008
  • 11,273 Favorites
  • Project Site
  • Comments
  • Release Type: Release
  • License: All Rights Reserved
  • Newest File: Altoholic 6.2.007
Support development! **

About Altoholic

Hi, my name is Thaoky, and I'm an Altoholic :)

Altoholic is an Ace 3 addon written for people who dedicate most of their time to leveling alts, and who want to have as much information as possible in one addon. The main feature of the addon is the search functionality which allows users to search their alts' bags or loot tables in an Auction-House-like frame (see screenshots). All this with multiple-realms/accounts support.

About the addon & the author

I've been playing WoW since the European release, and I used to rely on addons like character viewer to check my alts' inventory, but since it was more or less abandoned and not always stable for me, I decided to write an addon myself and to improve the search feature as much as I could. I hope you'll enjoy it as much as I do :)

The addon has been in development since December 2007 and was officially released in late March 2008. It's still not final, and although it has considerably evolved since the initial release, there are still a lot of things I haven't had time to implement yet.
Please note that this is my first addon, and that English is not my native language.


- Languages supported: enUS, frFR, deDE, esES, ruRU, zhCN & zhTW.

- Account-wide data summary:

  • Characters' talents: Full talent trees & glyphs are supported for both specializations.
  • Money, /played, rest xp for each character, subtotals by realm, and grandtotals for the account.
  • Bag usage: see at a glance which characters should get bigger bags (bag size, free slots and types included)
  • Characters' skills: skill summary on one screen, namely the 2 main professions + the 3 secondary skills as well as riding. I may add more if there's demand.
  • Reputations: a list of all the reputations of the current realm's characters. You can see at a glance if all your alts are at least honored with Honor Hold if you want to get the new 2.4 blue PVP set. Suggestions on how to grind reputations will be available soon.

- View containers (bags, bank, keyring) of all alts, on all realms.

- Guild banks : You have 10 alts in 10 different guilds on the same server, all of them with access to a guild bank ? Not a problem, you can see them all here.

- E-mail: allows you to see which alts have mail without having to reconnect them. The addon will tell you when mail is about to expire on a character. Threshold configurable (up to 15 days). Multiple realm support as well. Mails sent to a known alt (one you've logged on at least once) will be visible in the addon without having to reconnect it.

- Equipment: See the equipment of the current realm's alts in one screen. Very useful when purchasing stuff for your alts at the AH. Multiple realms supported. Right-clicking any equipment piece will allow you to find an upgrade, this feature is similar to the official wow armory feature, and is quite performant, even though it doesn't match the accuracy of the official one.

- Search: the most important feature of the addon, it uses an AH-like frame to display search results. You can either search bags on the current realm, on all realms, or a loot table.
The loot table is a table based on AtlasLoot, but which contains only item id's, and therefore keeps memory usage minimal.

The Search menu allows you to find items based on their name (even partial), level, type or rarity, almost like at the AH. It is also possible to search known recipes.

- Quest Log: See the quest logs of all your alts, as well as an indication of which alts are on a specific quest. Clicking on a quest link in the chat log will tell you which alts are on that quest.

- Suggestions: Currently, only profession leveling suggestions are available when mousing over your current level in a specific profession. Suggestions are based on the leveling guides posted on the official US forums (credit goes to their respective authors). The addon also suggests you where to quest/grind xp depending on your character level.

Suggestions were also added for the most recent factions. More to come later.

- Auction house: You can see which auctions/bids you've placed with an alt without being logged in or being at the AH.

- Professions: You can browse all known recipes in a thotbot like frame (see screenshot).

- Mounts & Pets of all your alts.

- Achievements are tracked for all you alts (see screenshot).

- Guild Members: a list of your connected guildmates, along with their alts (if they're using Altoholic too), and their average item level. Clicking their AiL will also allow you to "remotely" inspect their equipment.

- Guild Skills: a list of altoholic users in your guild, along with their alts and direct profession links. All professions are available in one click.

- Guild Bank tabs: a list of altoholic users and the time at which they last visited the guild bank. If you haven't visited the guild bank for a few days, you can remotely update your local data without going to a capital city.


The FAQ has been moved here :


  • I'd like to thank my guild, Odysse├╝s on EU-Mar├ęcages de Zangar, for assisting me since the earliest phases, thanks guys for everything you've done :)
  • Thanks to the wowace community, you've been very helpful and this addon would not be there without the technical answers you gave me (especially Xinhuan, author of BankItems)
  • Thanks to all the guys who are behind AtlasLoot, keeping the loot table up-to-date is a tremendous work, and the search functionality of Altoholic would not be what it is without your hard work.
  • Thanks to Ayindi (wowace) & sLiz3r (curse) for the German translation.
  • Thanks to NightOwl (wowace) for the zhTW translation.
  • Thanks to Wang (wowace) for the zhCN translation.
  • Thanks to Hellbot for the ruRU translation.
  • Thanks to Laumac for the frFR translation.
  • Thanks to IrregularByte for the esES translation.
  • Brykrys for the LinkWrangler support.

6.2.007 (12/09/2015)

- Added Garona & Harrison Jones to the list of followers not recruited at the inn.
- Fixed guild bank tab icons displayed as a red square instead of the tab's icon.
- DataStore_Achievements: Fixed a Lua error at logon.


First Previous Page 115 of 435 Next Last
  • #5434

    I got this mesage while in the AH today hope it helps, and keep up the great work

    Date: 2013-02-28 13:19:49
    ID: 1
    Error occured in: Global
    Count: 1
    Message: ..\AddOns\Altoholic\Tooltip.lua line 337:
    attempt to compare number with nil
    Altoholic\Tooltip.lua:337: GetRecipeOwners()
    [C]: ?
    [C]: SetAuctionItem()
    ...ace\AddOns\Blizzard_AuctionUI\Blizzard_AuctionUI.lua:1611: AuctionFrameItem_OnEnter()
    self = <table> {
    SetDefaultModuleLibraries = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:383
    Profiler = <table> {
    SetupOptions = <function> defined @Interface\AddOns\Altoholic\Frames\TabOptions.lua:208
    ThisCharacter = <table> {
    EnableModule = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:348
    modules = <table> {
    CancelTimer = <function> defined @Interface\AddOns\Recount\Libs\AceTimer-3.0\AceTimer-3.0.lua:158
    IterateEmbeds = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:458
    db = <table> {
    UnregisterComm = <function> defined @Interface\AddOns\DataStore\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:181
    SetLastAccountSharingInfo = <function> defined @Interface\AddOns\Altoholic\Altoholic.lua:108
    baseName = "Altoholic"
    AccSharingHandler = <function> defined @Interface\AddOns\Altoholic\Comm.lua:129
    Item_OnEnter = <function> defined @Interface\AddOns\Altoholic\Altoholic.lua:400
    OnUpdate = <function> defined @Interface\AddOns\Altoholic\Frames\TabOptions.lua:509
    OnShow = <function> defined @Interface\AddOns\Altoholic\Altoholic.lua:352
    UpdateMyMemoryUsage = <function> defined @Interface\AddOns\Altoholic\Frames\TabOptions.lua:484
    Printf = <function> defined @Interface\AddOns\DataStore\libs\AceConsole-3.0\AceConsole-3.0.lua:69
    MoveMinimapIcon = <function> defined @Interface\AddOns\Altoholic\Frames\TabOptions.lua:477
    Helpers = <table> {
    TextureToFontstring = <function> defined @Interface\AddOns\Altoholic\Altoholic.lua:451
    UpdateMinimapIconCoords = <function> defined @Interface\AddOns\Altoholic\Frames\TabOptions.lua:460
    GetLastAccountSharingInfo = <function> defined @Interface\AddOns\Altoholic\Altoholic.lua:114
    defaultModuleState = true
    RestoreOptionsToUI = <function> defined @Interface\AddOns\Altoholic\Frames\TabOptions.lua:401
    IsEnabled = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:467
    TimerFrame = AltoholicTimerFrame {
    ScheduleTimer = <function> defined @Interface\AddOns\Recount\Libs\AceTimer-3.0\AceTimer-3.0.lua:105
    CmdSearchBags = <function> defined @Interface\AddOns\Altoholic\Core.lua:393
    ToggleOption = <function> defined @Interface\AddOns\Altoholic\Frames\TabOptions.lua:196
    SetOption = <function> defined @Interface\AddOns\Altoholic\Frames\TabOptions.lua:190
    MsgBox_OnClick = <function> defined @Interface\AddOns\Altoholic\Altoholic.lua:717
    OnEnable = <function> defined @Interface\AddOns\Altoholic\Altoholic.lua:294
    RegisterMessage = <function> defined @Interface\AddOns\DataStore\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:118
    UnregisterMessage = <function> defined @Interface\AddOns\DataStore\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:181
    Equipment = <table> {
    GetTimeString = <function> defined @Interface\AddOns\Altoholic\Altoholic.lua:526
    name = "Altoholic"
    SetMsgBoxHandler = <function> defined @Interface\AddOns\Altoholic\Altoholic.lua:709
    CreateButtonBorder = <function> defined @Interface\AddOns\Altoholic\Altoholic.lua:663
    SendCommMessage = <function> defined @Interface\AddOns\DataStore\libs\AceComm-3.0\AceComm-3.0.lua:87
    SetFirstDayOfWeek = <function> defined @Interface\AddOns\Altoholic\Altoholic.lua:757
    SaveUnsafeItem = <function> defined @Interface\AddOns\Altoholic\Altoholic.lua:766
    GetFirstDayOfWeek = <function> defined @Interface\AddOns\Altoholic\Altoholic.lua:761
    UnregisterAllComm = <function> defined @Interface\AddOns\DataStore\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:202
    SetEnabledState = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:440
    Sharing = <table> {
    enabledState = true
    ItemFilters = <table> {
    RegisterEvent = <function> defined @Interface\AddOns\DataStore\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:118
    OnTimeToNextWarningChanged = <function> defined @Interface\AddOns\Altoholic\Altoholic.lua:735
    GetSpellIDFromRecipeLink = <function> defined @Interface\AddOns\Altoholic\Altoholic.lua:499
    DrawCharacterTooltip = <function> defined @Int
    Swatter, v4.1.0 (<%codename%>)
    Accountant, v4.11.50100
    Altoholic, v5.1.001
    AucAdvanced, v5.15.5383 (LikeableLyrebird)
    AucFilterBasic, v5.15.5383 (LikeableLyrebird)
    AucFilterOutlier, v5.15.5383.5381(5.15/embedded)
    AucMatchUndercut, v5.15.5383.5381(5.15/embedded)
    AucScanData, v5.15.5383 (LikeableLyrebird)
    AucStatHistogram, v5.15.5383 (LikeableLyrebird)
    AucStatiLevel, v5.15.5383 (LikeableLyrebird)
    AucStatPurchased, v5.15.5383 (LikeableLyrebird)
    AucStatSales, v5.15.5383.5381(5.15/embedded)
    AucStatSimple, v5.15.5383 (LikeableLyrebird)
    AucStatStdDev, v5.15.5383 (LikeableLyrebird)
    AucStatWOWEcon, v5.15.5383.5323(5.15/embedded)
    AucUtilAHWindowControl, v5.15.5383.5381(5.15/embedded)
    AucUtilAppraiser, v5.15.5383.5381(5.15/embedded)
    AucUtilAskPrice, v5.15.5383.5381(5.15/embedded)
    AucUtilAutoMagic, v5.15.5383.5381(5.15/embedded)
    AucUtilCompactUI, v5.15.5383.5381(5.15/embedded)
    AucUtilEasyBuyout, v5.15.5383.5381(5.15/embedded)
    AucUtilFixAH, v5.15.5383 (LikeableLyrebird)
    AucUtilItemSuggest, v5.15.5383.5381(5.15/embedded)
    AucUtilPriceLevel, v5.15.5383.5381(5.15/embedded)
    AucUtilScanButton, v5.15.5383.5320(5.15/embedded)
    AucUtilScanFinish, v5.15.5383.5381(5.15/embedded)
    AucUtilScanProgress, v5.15.5383.4979(5.15/embedded)
    AucUtilScanStart, v5.15.5383.5381(5.15/embedded)
    AucUtilSearchUI, v5.15.5383.5381(5.15/embedded)
    AucUtilSimpleAuction, v5.15.5383.5381(5.15/embedded)
    AucUtilVendMarkup, v5.15.5383.4828(5.15/embedded)
    Babylonian, v5.1.DEV.332(/embedded)
    BagBrother, v
    Bagnon, v5.1.2
    BeanCounter, v5.15.5383 (LikeableLyrebird)
    BittensSpellFlashLibrary, v3.21.1
    Configator, v5.1.DEV.344(/embedded)
    CrapAway, v
    DataStore, v5.1.001
    DataStoreAchievements, v5.1.001
    DataStoreAgenda, v5.1.001
    DataStoreAuctions, v5.1.001
    DataStoreCharacters, v5.1.001
    DataStoreContainers, v5.1.001
    DataStoreCrafts, v5.1.001
    DataStoreCurrencies, v5.1.001
    DataStoreInventory, v5.1.001
    DataStoreMails, v5.1.001
    DataStorePets, v5.1.001
    DataStoreQuests, v5.1.001
    DataStoreReputations, v5.1.001
    DataStoreSpells, v5.1.001
    DataStoreStats, v5.1.001
    DataStoreTalents, v5.1.001
    DBMCore, v
    DebugLib, v5.1.DEV.337(/embedded)
    Enchantrix, v5.15.5383 (LikeableLyrebird)
    EnchantrixBarker, v5.15.5383 (LikeableLyrebird)
    Gatherer, v4.1.0
    GearScore, v5.00.04.00
    HealBot, v5.1.0.6
    HealBotTips, v5.1.0.6
    Informant, v5.15.5383 (LikeableLyrebird)
    LibExtraTip, v5.12.DEV.342(/embedded)
    LilSparkysWorkshop, v
    Postal, v3.5.1
    RatingBuster, vr395
    Recount, v
    SilverDragon, vv3.0.3
    SlideBar, v4.1.0 (<%codename%>)
    SpellFlash, v6.4
    SpellFlashCore, v2.0.1
    Stubby, v5.15.5383 (LikeableLyrebird)
    SuperGuildInvite, v6.3
    TipHelper, v5.12.DEV.343(/embedded)
    Titan, v5.1.13.50100
    TitanBag, v5.1.13.50100
    TitanClock, v5.1.13.50100
    TitanGold, v5.1.13.50100
    TitanLocation, v5.1.13.50100
    TitanLootType, v5.1.13.50100
    TitanPerformance, v5.1.13.50100
    TitanRepair, v5.1.13.50100
    TitanVolume, v5.1.13.50100
    TitanXP, v5.1.13.50100
    BlizRuntimeLib_enUS v5.1.0.50100 <us>

  • #5432

    Lately, Altoholic has been throwing up an error whenever I mouse over a recipe. I hope this is the info you need.

    19x Altoholic-r129\Tooltip.lua:338: bad argument #2 to "format" (string expected, got nil)
    <in C code>
    Altoholic-r129\Tooltip.lua:338: in function "GetRecipeOwners"
    Altoholic\Altoholic-r129.lua:246: in function "MerchantFrame_UpdateMerchantInfo"
    FrameXML\MerchantFrame.lua:74: in function <FrameXML\MerchantFrame.lua:71>
    <in C code>
    <string>:"*:OnUpdate":4: in function <string>:"*:OnUpdate":1

    self = <table> {
     SetDefaultModuleLibraries = <func> @Ace3\..\AceAddon-3.0.lua:383
     Profiler = <table> {}
     SetupOptions = <func> @..\Frames\TabOptions.lua:208
     ThisCharacter = <table> {}
     EnableModule = <func> @Ace3\..\AceAddon-3.0.lua:348
     modules = <table> {}
     CancelTimer = <func> @Ace3\..\AceTimer-3.0.lua:158
     IterateEmbeds = <func> @Ace3\..\AceAddon-3.0.lua:458
     db = <table> {}
     UnregisterComm = <func> @Ace3\..\CallbackHandler-1.0.lua:181
     SetLastAccountSharingInfo = <func> @..\Altoholic.lua:108
     baseName = "Altoholic"
     AccSharingHandler = <func> @..\Comm.lua:129
     Item_OnEnter = <func> @..\Altoholic.lua:400
     OnUpdate = <func> @..\Frames\TabOptions.lua:509
     OnShow = <func> @..\Altoholic.lua:352
     UpdateMyMemoryUsage = <func> @..\Frames\TabOptions.lua:484
     Printf = <func> @Ace3\..\AceConsole-3.0.lua:69
     MoveMinimapIcon = <func> @..\Frames\TabOptions.lua:477
     Helpers = <table> {}
     TextureToFontstring = <func> @..\Altoholic.lua:451
     UpdateMinimapIconCoords = <func> @..\Frames\TabOptions.lua:460
     GetLastAccountSharingInfo = <func> @..\Altoholic.lua:114
     defaultModuleState = true
     RestoreOptionsToUI = <func> @..\Frames\TabOptions.lua:401
     IsEnabled = <func> @Ace3\..\AceAddon-3.0.lua:467
     TimerFrame = AltoholicTimerFrame {}
     ScheduleTimer = <func> @Ace3\..\AceTimer-3.0.lua:105
     CmdSearchBags = <func> @..\Core.lua:393
     ToggleOption = <func> @..\Frames\TabOptions.lua:196
     SetOption = <func> @..\Frames\TabOptions.lua:190
     MsgBox_OnClick = <func> @..\Altoholic.lua:717
     OnEnable = <func> @..\Altoholic.lua:294
     RegisterMessage = <func> @Ace3\..\CallbackHandler-1.0.lua:118
     UnregisterMessage = <func> @Ace3\..\CallbackHandler-1.0.lua:181
     Equipment = <table> {}
     GetTimeString = <func> @..\Altoholic.lua:526
     name = "Altoholic"
     SetMsgBoxHandler = <func> @..\Altoholic.lua:709
     CreateButtonBorder = <func> @..\Altoholic.lua:663
     SendCommMessage = <func> @Ace3\..\AceComm-3.0.lua:87
     SetFirstDayOfWeek = <func> @..\Altoholic.lua:757
     SaveUnsafeItem = <func> @..\Altoholic.lua:766
     GetFirstDayOfWeek = <func> @..\Altoholic.lua:761
     UnregisterAllComm = <func> @Ace3\..\CallbackHandler-1.0.lua:202
     SetEnabledState = <func> @Ace3\..\AceAddon-3.0.lua:440
     Sharing = <table> {}
     enabledState = true
     ItemFilters = <table> {}
     RegisterEvent = <func> @Ace3\..\CallbackHandler-1.0.lua:118
     OnTimeToNextWarningChanged = <func> @..\Altoholic.lua:735
     GetSpellIDFromRecipeLink = <func> @..\Altoholic.lua:499
     DrawCharacterTooltip = <func> @..\Altoholic.lua:677
     GetEquipmentSlotIcon = <func> @..\Altoholic.lua:477

    Last edited by MySonAbsalom on 2/26/2013 4:13:54 PM
  • #5431

    2x Altoholic-r129\Events.lua:462: attempt to perform arithmetic on local "timeGap" (a nil value) Altoholic-r129\Events.lua:462: in function "BuildList" Altoholic-r129\Events.lua:520: in function "Init" Altoholic\Altoholic-r129.lua:301: in function <Altoholic\Altoholic.lua:294> (tail call): ? <in C code> <string>:"safecall Dispatcher[1]":9: in function <string>:"safecall Dispatcher[1]":5 (tail call): ? ...\DataStore\libs\AceAddon-3.0\AceAddon-3.0-11.lua:543: in function "EnableAddon" ...\DataStore\libs\AceAddon-3.0\AceAddon-3.0-11.lua:636: in function <...\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:621> <in C code> FrameXML\UIParent.lua:299: in function "UIParentLoadAddOn" FrameXML\UIParent.lua:322: in function "CombatLog_LoadUI" FrameXML\UIParent.lua:692: in function <FrameXML\UIParent.lua:657>

    Locals: nil

  • #5430

    Great Addy,

    Would it be possable the add sorting by faction on the account summary?

  • #5427

    I updated to Altoholic 5.1.002 with Curse, but the dependencies for DataStore were lost (the addon stopped functioning as a result).  In order to get Altoholic to work, I had to load the previous version (5.1.001).  I'll watch for the next release before I update again...

  • #5423

    Is there a way to see Alts on 2 or more accnts? There is a setting to see All realms (all Accounts) but it doesnt show my other accounts.

    How do I configure it to show my other accounts?

  • #5433

    Same here, the all accounts never worked for me.  I'd love to see all my toons on both my accounts on the same acct

  • #5419

    One request, could you possibly put in a section to view currencies on all alts. Honor/Valor points. Chef's Awards, etc...

  • #5422

    Look at the Grids tab

  • #5418

    Hi there,

    5.1.002 updated (awaiting admin approval):  

    - Updated both Achievements & Grids tabs to show 11 characters per realm.

    - Support for tabards is back.

    Do not expect too many changes as I am not playing the game anymore; I don't want to start a debate, but dailies litterally killed the fun for me.

    I do intend to keep supporting the addon when new patches/expansions hit (my subscription is still active).

    Last edited by Thaoky on 2/24/2013 6:31:10 AM
  • #5441

    Thank you so much for your intent to keep supporting it. I really don't know what I would do without this  ;-)

  • #5420

    Thank you for keeping this up to date.

    I have posted a ticket under Datastore_Reputations with regard to updates to reputations slowing the system down.  Would you please take a look and apply or fix the issue please?  As whenever you put out a new version now, I'm having to put my hack/fix back in place. I'm not sure how many others are experiencing this same problem.

  • #5429
    Thank you for your time and effort!
  • #5426

    You're welcome and no rush, just glad that you are still keeping this alive and up to date :).

    And I totally agree with you about the dailies, MoP has definitely been the worst expansion to date.  I think there has been too much corporate interferance with the content.

  • #5421

    I have seen your ticket, you were right, there was a bug.

    No time to upload the fix today though. I'll upload tomorrow or Wednesday.

    Thanks :)

  • 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