WIM (WoW Instant Messenger) v3

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.

Features

  • 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

For more information WIM 3.0 and it's new features visit WIMAddon.com.

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

  • Avatar of russianivan russianivan Oct 22, 2012 at 15:16 UTC - 0 likes

    1x WIM-r344\Libs\LibWho-2.0\LibWho-2.0-121.lua:903: attempt to index field "Result" (a nil value) WIM-r344\Libs\LibWho-2.0\LibWho-2.0-121.lua:903: in function "ProcessWhoResults" WIM-r344\Libs\LibWho-2.0\LibWho-2.0-121.lua:895: in function "?" WIM-r344\Libs\LibWho-2.0\LibWho-2.0-121.lua:916: in function <WIM\Libs\LibWho-2.0\LibWho-2.0.lua:915>

    Locals: self = <table> { GetNextFromScheduler = <func> @WIM\Libs\..\LibWho-2.0.lua:363 ReturnWho = <func> @WIM\Libs\..\LibWho-2.0.lua:488 Cache = <table> {} UserInfo = <func> @WIM\Libs\..\LibWho-2.0.lua:168 MinInterval = 2.5 CachedUserInfo = <func> @WIM\Libs\..\LibWho-2.0.lua:246 SetWhoToUIState = 1 AskWhoNextIn5sec = <func> @WIM\Libs\..\LibWho-2.0.lua:315 CapitalizeInitial = <func> @WIM\Libs\..\LibWho-2.0.lua:723 CancelPendingWhoNext = <func> @WIM\Libs\..\LibWho-2.0.lua:323 WHOLIB_QUEUE_QUIET = 2 embeds = <table> {} hooked = <table> {} ProcessWhoResults = <func> @WIM\Libs\..\LibWho-2.0.lua:898 WHO_LIST_UPDATE = <func> @WIM\Libs\..\LibWho-2.0.lua:889 AllQueuesEmpty = <func> @WIM\Libs\..\LibWho-2.0.lua:300 CHAT_MSG_SYSTEM = <func> @WIM\Libs\..\LibWho-2.0.lua:881 RegisterCallback = <func> @Ace3\..\CallbackHandler-1.0.lua:118 CheckCallback = <func> @WIM\Libs\..\LibWho-2.0.lua:661 TriggerEvent = <func> @WIM\Libs\..\LibWho-2.0.lua:736 UnregisterCallback = <func> @Ace3\..\CallbackHandler-1.0.lua:181 PossibleEvents = <table> {} DupAll = <func> @WIM\Libs\..\LibWho-2.0.lua:711 ConsoleWho = <func> @WIM\Libs\..\LibWho-2.0.lua:596 Embed = <func> @WIM\Libs\..\LibWho-2.0.lua:277 Dup = <func> @WIM\Libs\..\LibWho-2.0.lua:697 WHOLIB_FLAG_ALWAYS_CALLBACK = 1 simple_dump = <func> @WIM\Libs\..\LibWho-2.0.lua:687 GetQueryInterval = <func> @WIM\Libs\..\LibWho-2.0.lua:313 external = <table> {} callbacks = <table> {} CheckArgument = <func> @WIM\Libs\..\LibWho-2.0.lua:633 RaiseCallback = <func> @WIM\Libs\..\LibWho-2.0.lua:623 MaxInterval = 10 AskWho = <func> @WIM\Libs\..\LibWho-2.0.lua:480 GuiWho = <func> @WIM\Libs\..\LibWho-2.0.lua:578 Library = <func> @WIM\Libs\..\LibWho-2.0.lua:290 ReturnUserInfo = <func> @WIM\Libs\..\LibWho-2.0.lua:617 AskWhoNext = <func> @WIM\Libs\..\LibWho-2.0.lua:395 L = <table> {} queue_bounds = <table> {} UnregisterAllCallbacks = <func> @Ace3\..\CallbackHandler-1.0.lua:202 UpdateWeights = <func> @WIM\Libs\..\LibWho-2.0.lua:344 Total = 48 Debug = false SetWhoLibDebug = <func> @WIM\Libs\..\LibWho-2.0.lua:262 CheckPreset = <func> @WIM\Libs\..\LibWho-2.0.lua:643 GetWhoLibDebug = <func> @WIM\Libs\..\LibWho-2.0.lua:258 hook = <table> {} Queue = <table> {} WhoInProgress = false CacheQueue = <table> {} events = <table> {} Who = <func> @WIM\Libs\..\LibWho-2.0.lua:147 WHOLIB_QUEUE_SCANNING = 3 frame = LibWho-2.0 {} WHOLIB_QUEUE_USER = 1 Reset = <func> @WIM\Libs\..\LibWho-2.0.lua:141 } lib = <table> { GetNextFromScheduler = <func> @WIM\Libs\..\LibWho-2.0.lua:363 ReturnWho = <func> @WIM\Libs\..\LibWho-2.0.lua:488 Cache = <table> {} UserInfo = <func> @WI

  • Avatar of krovikania krovikania Oct 22, 2012 at 09:17 UTC - 0 likes

    @Cloudancer2: Go

    Means that I agree with you or share your comment.

    Regards

  • Avatar of Cloudancer2 Cloudancer2 Oct 21, 2012 at 21:41 UTC - 0 likes

    @krovikania: Go

    +1?

  • Avatar of krovikania krovikania Oct 21, 2012 at 20:24 UTC - 0 likes
  • Avatar of Cloudancer2 Cloudancer2 Oct 21, 2012 at 19:23 UTC - 0 likes

    Party chat still breaking :/

  • Avatar of hsram hsram Oct 21, 2012 at 16:14 UTC - 0 likes

    I have a brilliant idea, let's do updates but not fix party chat. I know, I'm smart!

  • Avatar of MorticiaNoire MorticiaNoire Oct 18, 2012 at 10:03 UTC - 0 likes

    getting this error:

    2x WIM-3.6.2\Modules\History-History.lua:1041: attempt to get length of local "tbl" (a nil value) WIM-3.6.2\Modules\History-History.lua:1041: in function "UpdateConvoList" WIM-3.6.2\Modules\History-History.lua:1004: in function "SelectConvo" WIM-3.6.2\Modules\History-History.lua:1363: in function "ShowHistoryViewer" WIM-3.6.2\Modules\History-History.lua:115: in function <WIM\Modules\History.lua:113>

    Locals: self = WIM3_HistoryFrame { CONVO = "|Kf14|k00000000000|k" UpdateUserList = <func> @WIM\Modules\History.lua:1058 USERLIST = <table> {} UpdateDisplay = <func> @WIM\Modules\History.lua:1009 nav = <unnamed> {} progressBar = <unnamed> {} resize = <unnamed> {} USER = "Khadgar/Morticianoir" FILTER = "" 0 = <userdata> FILTERLIST = <table> {} SelectConvo = <func> @WIM\Modules\History.lua:996 search = <unnamed> {} TAB = 1 UpdateConvoList = <func> @WIM\Modules\History.lua:1034 SEARCHLIST = <table> {} close = WIM3_HistoryFrameClose {} title = WIM3_HistoryFrameTitle {} filter = <table> {} CONVOLIST = <table> {} displayUpdate = <unnamed> {} content = <unnamed> {} UpdateFilterList = <func> @WIM\Modules\History.lua:1015 } convo = "|Kf14|k00000000000|k" win = WIM3_HistoryFrame { CONVO = "|Kf14|k00000000000|k" UpdateUserList = <func> @WIM\Modules\History.lua:1058 USERLIST = <table> {} UpdateDisplay = <func> @WIM\Modules\History.lua:1009 nav = <unnamed> {} progressBar = <unnamed> {} resize = <unnamed> {} USER = "Khadgar/Morticianoir" FILTER = "" 0 = <userdata> FILTERLIST = <table> {} SelectConvo = <func> @WIM\Modules\History.lua:996 search = <unnamed> {} TAB = 1 UpdateConvoList = <func> @WIM\Modules\History.lua:1034 SEARCHLIST = <table> {} close = WIM3_HistoryFrameClose {} title = WIM3_HistoryFrameTitle {} filter = <table> {} CONVOLIST = <table> {} displayUpdate = <unnamed> {} content = <unnamed> {} UpdateFilterList = <func> @WIM\Modules\History.lua:1015 } pairs = <func> =[C]:-1

  • Avatar of bowedyapper bowedyapper Oct 08, 2012 at 00:33 UTC - 0 likes

    Noticed that monks have not yet been added to the Constants.lua Classes section, worked it out after hours of tugging at my own hair when trying to get the monk class colour and icon to show while skinning WIM :P

    classes[L["Monk"]] = {
                                  color = "00ff96",
                                  tag = "MONK",
                                  talent = {L["Brewmaster"], L["Mistweaver"], L["Windwalker"]}
                             };
    

    Also the image coordinates for skinners / people who wish to update the class_icons.tga manually, this is relative to the area below the Blizzard logo and to the left of the Diablo III icons on the default class_icons.tga :)

    monk = {.25, .75, .25, 1, .5, .75, .5, 1},
    

    Also, how can I implement the string.upper / strupper function to change the style of the name in the WIM window to uppercase, as far as I can tell a skins LUA file has no control over what the output will look like, but I could be wrong seeing as it can change the guild info :\

    Last edited Oct 08, 2012 by bowedyapper
  • Avatar of krovikania krovikania Oct 02, 2012 at 18:08 UTC - 0 likes

    @arby69: Go

    With this, chat group without LFG don't work :(

    No solution.

    With _G.UnitExists, chat group in LFG works but in normal group no.

    With UnitExists, chat group in LFG don't work but in normal group yes.

    :( :(

    Last edited Oct 02, 2012 by krovikania
  • Avatar of arby69 arby69 Oct 02, 2012 at 16:13 UTC - 0 likes

    Weird... that was a complete shot in the dark. Hopefully this change will find its way into the next update.

Table of contents

  1. 1 Features
  2. 2 Video Demo

Facts

Date created
Jul 28, 2008
Category
Last update
Oct 14, 2014
Development stage
Release
Language
  • enUS
License
All Rights Reserved
Curse link
WIM (WoW Instant Messenger) v3
Downloads
6,114,457
Recent files
  • R: 3.6.19 for 6.0.2 Oct 14, 2014
  • A: r434 for 6.0.2 Oct 14, 2014
  • A: r433 for 6.0.2 Oct 14, 2014
  • A: r432 for 5.4.8 Sep 23, 2014
  • A: r431 for 5.4.8 Sep 23, 2014

Authors