WIM (WoW Instant Messenger) v3

Note from MysticalOS: I am looking for someone who wants to take WIM over. It's become a higher and higher amount of stress to upkeep and has gotten to point where it's too much work to even keep it FUNCTIONAL let alone actually try to improve it any. WIM is not a main project for me and is only something I do in free time here and there. My main focus is other projects that consume most of my time and I do not give WIM the attention it needs to be great again.

WIM (WoW Instant Messenger) is a World of Warcraft addon which brings an instant messenger feel to communication in game.

I created WIM over 2 years ago with the curiosity of creating an addon. Since then, WIM has evolved into what it is today, however so many requests from the community were added into the addon which resulted in bulky and inefficient coding practices that took a toll on both CPU and Memory usage. To resolve this, I decided to rewrite WIM from scratch. Each feature is being reintroduced one at a time and being advanced upon. That being said, I welcome you to WIM 3.0.


  • Whispers in their own windows.
  • Chat in their own windows.
  • Tabbed windows
    • Highly configurable.
  • History
    • Copy and paste as:
      • Raw Text
      • BBCode
  • Advanced, intellectual window behaviors & animations.
  • Skins
  • Emoticons
  • Clickable web URLS for easy viewing. No more retyping a long url a friend sends you.
  • Customizable sound options.
  • Expose - great way to clear your screen of windows when you are in combat.
  • Addon Compatibility: (Always make sure you are running the latest versions.
    • Prat
    • DBM

Video Demo

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

  • Avatar of mysticalos mysticalos Dec 27, 2012 at 21:58 UTC - 0 likes

    WoWEye, i seen that before. somehow your history got corrupt. clear history will fix that. no idea why that happens though.

  • Avatar of WoWEye WoWEye Dec 16, 2012 at 04:40 UTC - 0 likes

    I clicked on the button on the message window to view message history of a Real ID and got this error:
    Date: 2012-12-15 21:20:32
    ID: 1
    Error occured in: Global
    Count: 1
    Message: ..\AddOns\WIM\Modules\History.lua line 1041:
       attempt to get length of local 'tbl' (a nil value)
       WIM\Modules\History.lua:1041 UpdateConvoList()
       WIM\Modules\History.lua:1004 SelectConvo()
       WIM\Modules\History.lua:1363 ShowHistoryViewer()
    self = nil
    realm = "Borean Tundra"
    character = "Megapixel"
    tbl = nil
    (*temporary) = 1
    (*temporary) = "Megapixel"
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = nil
    (*temporary) = "attempt to get length of local 'tbl' (a nil value)"
    win = WIM3_HistoryFrame {
     CONVO = "|Kf99|kWilliam Rice Jr|k"
     UpdateUserList = <function> defined @Interface\AddOns\WIM\Modules\History.lua:1058
     USERLIST = <table> {
     UpdateDisplay = <function> defined @Interface\AddOns\WIM\Modules\History.lua:1009
     nav = <unnamed> {
     progressBar = <unnamed> {
     resize = <unnamed> {
     USER = "Borean Tundra/Megapixel"
     FILTER = ""
     0 = <userdata>
     FILTERLIST = <table> {
     SelectConvo = <function> defined @Interface\AddOns\WIM\Modules\History.lua:996
     search = <unnamed> {
     TAB = 1
     UpdateConvoList = <function> defined @Interface\AddOns\WIM\Modules\History.lua:1034
     SEARCHLIST = <table> {
     close = WIM3_HistoryFrameClose {
     title = WIM3_HistoryFrameTitle {
     filter = <table> {
     CONVOLIST = <table> {
     displayUpdate = <unnamed> {
     content = <unnamed> {
     UpdateFilterList = <function> defined @Interface\AddOns\WIM\Modules\History.lua:1015
    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
     lower = <function> defined =[C]:-1
     sub = <function> defined =[C]:-1
     gfind = <function> defined =[C]:-1
     rep = <function> defined =[C]:-1
     join = <function> defined =[C]:-1
     char = <function> defined =[C]:-1
     rtgsub = <function> defined @Interface\FrameXML\RestrictedInfrastructure.lua:610
     concat = <function> defined =[C]:-1
     reverse = <function> defined =[C]:-1
     byte = <function> defined =[C]:-1
     trim = <function> defined =[C]:-1
     len = <function> defined =[C]:-1
     find = <function> defined =[C]:-1
    table = <table> {
     setn = <function> defined =[C]:-1
     insert = <function> defined =[C]:-1
     getn = <function> defined =[C]:-1
     foreachi = <function> defined =[C]:-1
     maxn = <function> defined =[C]:-1
     foreach = <function> defined =[C]:-1
     concat = <function> defined =[C]:-1
     removemulti = <function> defined =[C]:-1
     sort = <function> defined =[C]:-1
     wipe = <function> defined =[C]:-1
     remove = <function> defined =[C]:-1
    pairs = <function> defined =[C]:-1

      Swatter, v5.15.5380 (LikeableLyrebird)
      ACP, v3.4.1
      Altoholic, v5.1.001
      AraBrokerGuildFriends, vr55
      Auctionator, v3.1.0
      Babylonian, v5.1.DEV.332(/embedded)
      BlizzMove, vv1.2.5
      BrokerProfessionsMenu, v
      BrokerMounts, v5.04
      Configator, v5.1.DEV.344(/embedded)
      ControlFreak, v3.0.3.15
      CTBarMod, v5.0101
      CTBottomBar, v5.0101
      CTCore, v5.0101
      CTMailMod, v5.0101
      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
      DBMLDB, v
      DBMWorldEvents, v
      DebugLib, v5.1.DEV.337(/embedded)
      DropTheCheapestThing, vv3.6.2
      Enchantrix, v5.15.5380 (LikeableLyrebird)
      FBTitan, v1.0.8
      FBTrackingFrame, v1.2d
      FishingBuddy, v1.2f
      FlightMap, v5.0.3
      Gatherer, v4.1.0
      GFWFactionFriend, v5.0
      GTFO, v4.18.1
      Informant, v5.15.5380 (LikeableLyrebird)
      LibExtraTip, v5.12.DEV.342(/embedded)
      LightHeaded, v356
      LightHeadedDataA, v356
      LightHeadedDataE, v356
      LightHeadedDataQIDNames, v356
      Mapster, v1.5.1
      Mendeleev, v3.0
      OneBag3, vv3.4.8
      Overachiever, v0.70
      OverachieverTabs, v0.70
      OverachieverTrade, v0.70
      QuestHubber, v
      QuestHubberAzeroth, v
      QuestHubberCataclysm, v
      QuestHubberDaily, v
      QuestHubberNorthrend, v
      QuestHubberOutland, v
      QuestHubberPandaria, v
      Recount, v
      SlideBar, v5.15.5380 (LikeableLyrebird)
      Stubby, v5.15.5380 (LikeableLyrebird)
      SwindlerPreventer, v5.0.1 (15799) BETA
      TipHelper, v5.12.DEV.343(/embedded)
      Titan, v5.1.10.50100
      TitanClock, v5.1.10.50100
      TitanGold, v5.1.10.50100
      TitanLootType, v5.1.10.50100
      TitanRepair, v5.1.10.50100
      TitanVolume, v5.1.10.50100
      URNotePad, v5.1.0
      WIM, vr357
      XLoot10, vz35-beta
      XPerl, v3.6.15
      XPerlArcaneBar, v
      XPerlParty, v
      XPerlPartyPet, v
      XPerlPlayer, v
      XPerlPlayerPet, v
      XPerlTarget, v
      XPerlTargetTarget, v
      BlizRuntimeLib_enUS v5.1.0.50100 <us>

  • Avatar of Road_Block Road_Block Dec 03, 2012 at 15:10 UTC - 1 like

    @Jockelino: Go

    Well I'm not going to keep posting the same info in 3 different places.
    You don't need a self-modified / fan modified / "any" modified version.

    Use the latest alpha and make sure you have "Instance Chat" module enabled.

    If you want WIM to capture all group chat, you need "Raid", "Party" and "Instance" chat modules enabled.

    That user modification suggested btw, you might as well just remove that whole block of code, it's not doing what you think it does.
    '=' is an assignment operator, meaning it takes what's on the right side of it and puts it on the left side.
    '==' is an equality operator, meaning it compares what's on the right side to what's on the left side and returns the result (true for isequal, false for not equal)
    The replacement suggested was:

    if UnitExists = nil and UnitExists("party"..i) or _G.UnitExists = nil and _G.UnitExists("party"..i) then

    What this says in plain English is:
    "nil the local UnitExists function then check if nil("party"..i)
    or nil the global UnitExists() function and then check if nil("party"..i)"

    Do I really need to explain how bad it is to nuke game functions like that?
    The side-effect of that line of code is that the whole 'if ... then' block is always nil and never runs, like I said if you want to modify it just delete it instead of breaking game API for all addons.

    Edit: I checked his original post a couple comment-pages back and he was actually testing for inequality ~= which is better but that modification is not needed for the latest alphas.
    The problem with the original code was that WIM uses its own environment space, meaning it needed to pickup the global function through _G. instead of relying on an implicit global lookup.
    If that's too technical to understand, that's ok, just keep that the original problem has been fixed.

    Last edited Dec 03, 2012 by Road_Block
  • Avatar of Jockelino Jockelino Dec 03, 2012 at 09:30 UTC - 0 likes

    Well i blocked this ;) i did what Mw999 said changed the <WoW Folder>\Interface\AddOns\WIM\Modules\ChatEngine.lua on line 478.

    And wim worked for 3 days until 5.1

    Still works decent only raids i get tons of errors " soemtimes" i raided twice and first time i got so many error in short time, i got message saying to many errors, i turned it off.

    enabled again after the raid and i could raid with it next time dont think i had any errors then.

    for me it works atm, however sometime i get errors i disable it.

    I use self-modifyed r344.

  • Avatar of Magus427 Magus427 Dec 02, 2012 at 19:21 UTC - 0 likes

    Any chance of an update so the add-on isn't listed out of date for 5.1?


  • Avatar of menace97 menace97 Nov 29, 2012 at 02:02 UTC - 0 likes

    i've been having issues with not seeing party chat. in both the main chat window and the separate wim window. i haven't re-setup my preferences in a while, so i'll try that first.

    Last edited Nov 29, 2012 by menace97: clarification
  • Avatar of Cloudancer2 Cloudancer2 Nov 28, 2012 at 19:37 UTC - 0 likes

    @Road_Block: Go

    i did install r347 and had to redo the ChatEngine.ula. Will try again with r348 *fingers crossed*

  • Avatar of Road_Block Road_Block Nov 28, 2012 at 18:06 UTC - 0 likes

    @Cloudancer2: Go

    Did you try the latest alpha?

  • Avatar of Cloudancer2 Cloudancer2 Nov 28, 2012 at 15:36 UTC - 0 likes

    Any particular reason party chat is not being fixed?

  • Avatar of user642 user642 Nov 27, 2012 at 22:14 UTC - 1 like

    Error on login as of patch:

    Date: 2012-11-27 14:00:34
    ID: 7
    Error occured in: Global
    Message: ..\AddOns\WIM\Modules\ChatEngine.lua line 926:
       Usage: BNGetConversationInfo(channel)
       [C]: BNGetConversationInfo()
    (*temporary) = 8

    AddOns: Swatter, v5.15.5380 (LikeableLyrebird) DevPad, v5.0.0.1 AckisRecipeList, v2.4.1-1-g176e7b9 ACP, v3.4 Prat30, v3.5.1 Prat30Libraries, v WIM, v3.6.2 BlizRuntimeLib_enUS v5.1.0.50100 <us> (ck=ca5)

    Last edited Nov 27, 2012 by user642

Table of contents

  1. 1 Features
  2. 2 Video Demo


Date created
Jul 28, 2008
Last update
Aug 25, 2016
Development stage
  • enUS
All Rights Reserved
Curse link
WIM (WoW Instant Messenger) v3
Recent files
  • A: r516 for 7.0.3 Aug 25, 2016
  • A: r515 for 7.0.3 Aug 16, 2016
  • A: r514 for 7.0.3 Aug 16, 2016
  • A: r513 for 7.0.3 Aug 16, 2016
  • A: r512 for 7.0.3 Aug 16, 2016