WIM (WoW Instant Messenger) v3
wow-instant-messenger
WIM (WoW Instant Messenger) is a World of Warcraft addon which brings an instant messenger feel to communication in game.
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.
Known Issues
- Addons can not process messages while chat is in lock down. To get around this, WIM logs all events and then rebuilds and processes them once you have excited lock down. During this time, chat is routed as normal to the default chat frame so you don't miss anything. Unfortunately, /r and similar keybindings to reply during this time will NOT work. Allowing the default chat frame to handle these events cause severe tainting issues and breaks everything.
- Community Chat is now supported. It comes with limitations though because the sender name and message are protected and can not be read by addons or saved.
- No filtering
- No History
Addon Compatibility: (Always make sure you are running the latest versions.)
- Prat
- DBM
-
View User Profile
-
Send Message
Posted Aug 23, 2026Addon is currently broken for live/retail/Midnight version of WoW, see my comment from a week ago for the error. Window doesn't pop up either sending or receiving a message, just shoots out the .lua error.
-
View User Profile
-
Send Message
Posted Aug 14, 20261x WIM/Sources/Skinner.lua:363: bad argument #1 to 'SetFontObject' (Usage: self:SetFontObject(font))
[WIM/Sources/Skinner.lua]:363: in function 'SetWidgetFont'
[WIM/Sources/Skinner.lua]:415: in function 'ApplySkinToWidget'
[WIM/Sources/Skinner.lua]:212: in function 'ApplySkinToWindow'
[WIM/Sources/WindowHandler.lua]:1527: in function <WIM/Sources/WindowHandler.lua:1474>
[WIM/Sources/WindowHandler.lua]:1589: in function <WIM/Sources/WindowHandler.lua:1534>
[tail call]: ?
[WIM/Modules/WhisperEngine.lua]:275: in function <WIM/Modules/WhisperEngine.lua:236>
[WIM/Modules/WhisperEngine.lua]:862: in function <WIM/Modules/WhisperEngine.lua:834>
[C]: in function 'UpdateHeader'
[Blizzard_ChatFrameBase/Shared/ChatFrameEditBox.lua]:151: in function <...s/Blizzard_ChatFrameBase/Shared/ChatFrameEditBox.lua:135>
[C]: in function 'ProcessChatType'
[Blizzard_ChatFrameBase/Shared/ChatFrameEditBox.lua]:200: in function 'HandleChatType'
[Blizzard_ChatFrameBase/Shared/ChatFrameEditBox.lua]:250: in function 'ParseText'
[Blizzard_ChatFrameBase/Shared/ChatFrameEditBox.lua]:517: in function <...s/Blizzard_ChatFrameBase/Shared/ChatFrameEditBox.lua:516>
[C]: in function 'SetText'
[Blizzard_ChatFrameBase/Shared/ChatFrameEditBox.lua]:362: in function <...s/Blizzard_ChatFrameBase/Shared/ChatFrameEditBox.lua:360>
Locals:
obj=WIM3_msgFrame3MsgBox <WindowHandler.lua:922>{
_allowCustomFont=true
parentWindow=WIM3_msgFrame3 <WindowHandler.lua:1576>
setText=0
widgetName="msg_box"
_font_flags=""
}
widgetSkinTable=<table>{
points=<table>
font="Fonts\ARIALN.TTF"
font_color=<table>
font_height=14
}
_font="ChatFontNormal"
_G=<table>{
ERR_OUT_OF_CHI="Not enough chi"
DH_HAVOC_CORE_ABILITY_2="Strong melee attack that consumes Fury. If it critical strikes, some Fury is refunded."
SettingsSliderOptionsMixin=<table>
UNIT_NAMES_COMBATLOG_TOOLTIP="Color unit names."
AchievementFrameStatsBG=AchievementFrameStatsBG <Blizzard_AchievementUI.xml:2063>
HUD_EDIT_MODE_SETTING_ACTION_BAR_HIDE_BAR_ART="Hide Bar Art"
LE_GAME_ERR_CHAT_RAID_RESTRICTED_TRIAL=800
SPELL_FAILED_CUSTOM_ERROR_71="This partygoer wants to dance with you."
LE_GAME_ERR_PET_SPELL_TARGETS_DEAD=435
ERROR_CLUB_TICKET_COUNT_AT_MAX_COMMUNITY="Can't create any more invite links for this community."
RecruitAFriendFrame=RecruitAFriendFrame <RecruitAFriendFrame.xml:680>
TutorialFrameLeft19=TutorialFrameLeft19 <TutorialFrame.lua:198>
ERR_TRADE_EQUIPPED_BAG="You can't trade equipped bags."
PVP_RANK_6_1="Corporal"
MultiBarLeftButton7=MultiBarLeftButton7 <ActionBar.lua:31>
OPTION_TOOLTIP_SHOW_MULTIBAR4="Attached to the left side of Right Action Bar 1 by default"
LE_GAME_ERR_INVALID_FOLLOW_PVP_COMBAT=389
MerchantItem1AltCurrencyFrameItem1Text=MerchantItem1AltCurrencyFrameItem1Text <MoneyFrame.xml:176>
PROFESSIONS_COLUMN_REAGENTS_NONE="None"
OPTION_TOOLTIP_ACTION_BUTTON_USE_KEY_DOWN="Action button keybinds will respond on key down, rather than on key up."
BINDING_NAME_NAMEPLATES="Show Enemy Nameplates"
CHAT_HEADER_SUFFIX=": "
COVENANT_MISSIONS_HEALTH="Health"
MAIL_LETTER_TOOLTIP="Click to make a permanent"
PVPReadyDialogBottomArt=PVPReadyDialogBottomArt <PVPHelper.xml:273>
MultiBar6Button4Flash=MultiBar6Button4Flash <ActionButtonTemplate.xml:36>
ERR_NOAMMO_S="%s"
HOUSING_BLUEPRINT_CONTENT_LIST_CLOSE_BUTTON="Close"
BT4Button22Flash=BT4Button22Flash <ActionButtonTemplate.xml:36>
ClassNameplateBarPaladinFrameRune5=ClassNameplateBarPaladinFrameRune5 <PaladinPowerBar.xml:213>
TutorialFrameRight19=TutorialFrameRight19 <TutorialFrame.lua:202>
BN_UNABLE_TO_RESOLVE_NAME="Unable to whisper '%s'. Blizzard services may be unavailable."
AddonListClearButton=AddonListClearButton <InputBoxTemplates.xml:221>
BagnonContainerItem610Stock=BagnonContainerItem610Stock <ItemButtonTemplate.xml:26>
LE_GAME_ERR_ONLY_ONE_QUIVER=36
INT_SPELL_DURATION_HOURS="%d |4hour:hrs;"
SLASH_LibQTip1="/qtip"
LOSS_OF_CONTROL_DISPLAY_FEAR="Feared"
POWERBAR_PREDICTION_COLOR_MAELSTROM_CODE="|cff003366"
BagnonContainerItem303Cooldown=BagnonContainerItem303Cooldown <ContainerFrame.xml:147>
DMG_LCD="DMG"
ACTION_SPELL_MISSED_POSSESSIVE="1"
CompactRaidFrame34TotalAbsorb=CompactRaidFrame34TotalAbsorb <CompactUnitFrame.xml:14>
SLASH_STOPATTACK1="/stopattack"
BagnonContainerItem229=BagnonContainerItem229 <Poncho-2.0.lua:91>
MAP_LEGEND_RARE_TOOLTIP="A special creature that provides various rewards"
BagnonContainerItem663Stock=BagnonContainerItem663Stock <ItemButtonTemplate.xml:26>
BagnonContainerItem178Count=BagnonContainerItem178Count <ItemButtonTemplate.xml:21>
MINIMAP_TRACKING_TRAINER_CLASS="Class Trainer"
SLASH_DISMOUNT2="/dismount"
DUNGEON_FLOOR_DRAGONBLIGHTCHROMIESCENARIO2="Andorhal"
EMOTE69_CMD1="/nosepick"
WowTokenRedemptionFrameBg=WowTokenRedemptionFrameBg <SharedUIPanelTemplates.xml:509>
SPELL_FAILED_CUSTOM_ERROR_152="You must choose a specialization to use Ascendance."
SLASH_TABLEINSPECT3="/tableinspect"
ERR_HOUSING_BLUEPRINT_REQUIREMENT_ROOM_UNCOLLECTED="You have not unlocked this Room."
ARENA_CASUAL="Skirmish"
STABLE_PET_ABILITIES_LIST_HEADER="Special Abilities"
SendStationeryBackgroundRight=SendStationeryBackgroundRight <MailFrame.xml:512>
MultiBarLeftButton11Name=MultiBarLeftButton11Name <ActionButtonTemplate.xml:43>
KEY_ABBR_PADLSTICK="|A:Gamepad_Gen_LStickIn_32:14:14|a"
CONQUEST_BAR="Conquest %d / %d"
MultiBarLeftButton9Border=MultiBarLeftButton9Border <ActionButtonTemplate.
-
View User Profile
-
Send Message
Posted Aug 6, 2026I currently cannot send whispers with WIM. If I right click someone and click whisper, rather than popping up the WIM window, it shows "[personname]:" in the vanilla chat window, and if I send the whisper, they can see it, but my window stays blank, and I cannot see anything they send back.
-
View User Profile
-
Send Message
Posted Aug 6, 2026It would be great if u could change sound for new messages. also a number of unread messages on the icon would be nice. like the whatsapp app icon on phones
-
View User Profile
-
Send Message
Posted Aug 9, 2026@Grokdan There are sound settings where you can change the sound of Whispers vs chat, etc. WIM uses the shared media lib which shares sound files across addons. So to add more sounds it would need to be from another addon. No easy way to add them to WIM itself without altering files manually to include them. You could also add a helper icon which makes more sound files available and WIM can use those.
As for the unread counts, it should already flash unread message count in the minimap icon.
-
View User Profile
-
Send Message
Posted Aug 1, 2026WIM is currently blocking my ability to send whispers. Any idea how to fix that?
typing /w playername creates the popup window.
I can type in the window, but pressing Enter no longer does anything. It will not send a message.
I can receive whispers still.
-
View User Profile
-
Send Message
Posted Aug 5, 2026@Twentys1x never encountered this one before... Would need some info. Game client, does it happen when you have other addons disabled?
-
View User Profile
-
Send Message
Posted Aug 7, 2026@RealPazza When the latest update was pushed to curseforge, I updated to it, and the issue was fixed.
-
View User Profile
-
Send Message
Posted Jul 27, 2026Request: is there any way to get Community channels into WIM?
-
View User Profile
-
Send Message
Posted Aug 5, 2026@pockit_src latest version adds support for community channels.
-
View User Profile
-
Send Message
Posted Jul 22, 2026You can't see your messages anymore in Classic WoW - SOD when sending whispered to others, it only shows their whispers, but not what you write, please fix this!
-
View User Profile
-
Send Message
Posted Aug 5, 2026@GadyEilat Is this still an issue? Something similar happened once before but it was an issue on blizzards end that was later hotfixed.
-
View User Profile
-
Send Message
Posted Aug 7, 2026@RealPazza this was fixed long ago, ty.
-
View User Profile
-
Send Message
Posted Jul 15, 2026I would like to disable the popup windows for people I invite for layer switch. I haven't found a way with the filters I found, to just block the addon whispers.
Maybe someone has an idea, or you could fix that in the next version? Other than that, perfect addon.
-
View User Profile
-
Send Message
Posted Jun 26, 2026Would be cool if one of the buttons in the WIM windows was to send Bnet tag
-
View User Profile
-
Send Message
Posted Jun 14, 2026Can you search by date (for example all messages u got today)?
Would be nice, if there's a way - if not np (but would still be a highly sought for feature!).
Appreciating the nice addon, keep up the good work!
-
View User Profile
-
Send Message
Posted May 24, 2026WIM is blocking instance, party and raid chat when I enter any rated pvp. Have to turn it off to see assignments and in-game calls when I am inside of any rated instance. I hope you can fix this as it is very frustrating. I cannot even see my own chat comments.
-
View User Profile
-
Send Message
Posted May 24, 2026@anniefrell I get the following:
3x bad argument #1 to '?' (outside of expected range -2147483648 to 2147483647 - Usage: local accountInfo = C_BattleNet.GetAccountInfoByID(id [, wowAccountGUID]))
[WIM/WIM.lua]:151: in function 'GetBNGetFriendInfoByID'
[WIM/Modules/WhisperEngine.lua]:242: in function <WIM/Modules/WhisperEngine.lua:236>
[WIM/Modules/WhisperEngine.lua]:715: in function 'handler'
[WIM/WIM.lua]:326: in function <WIM/WIM.lua:298>
[WIM/WIM.lua]:339: in function <WIM/WIM.lua:337>
Locals:
id=<table>{
1=56
2="|Kj195|k"
3="jevalam#1690"
4=true
6=383
7="BSAp"
-
View User Profile
-
Send Message
Posted May 20, 2026Possible fix for this error:
Root cause:
In WIM.lua around line 315, GetBNGetGameAccountInfoByKName() returns a Lua table (all friend info packed via {GetBNGetFriendInfo(i)}), but that whole table gets assigned directly to event.args[13]. WhisperEngine then passes args[13] to GetBNGetFriendInfoByID(), which forwards it to C_BattleNet.GetAccountInfoByID() — which expects a plain number (bnetAccountID), not a table.
-- Change this (~line 315):
event.args[13] = GetBNGetGameAccountInfoByKName(event.args[2]) or 0;
-- To this:
local bnInfo = GetBNGetGameAccountInfoByKName(event.args[2]);
event.args[13] = (bnInfo and bnInfo[1]) or 0;
bnInfo[1] is the bnetAccountID (first return value of GetBNGetFriendInfo), which is what GetBNGetFriendInfoByID actually expects.
Optional safety guard in GetBNGetFriendInfoByID (~line 150):
luafunction GetBNGetFriendInfoByID(id)
if type(id) == "table" then id = id[1] end
if type(id) ~= "number" or id < -2147483648 or id > 2147483647 then return end
local accountInfo = _G.C_BattleNet.GetAccountInfoByID(id) or {};
Reproducible whenever a BNet friend sends a whisper (CHAT_MSG_BN_WHISPER / CHAT_MSG_BN_INLINE_TOAST_ALERT).
The fix fixed the error for me
-
View User Profile
-
Send Message
Posted May 26, 2026@NiGhTwAlKeR559
Thank you for your contribution. I have included your fix in the latest update.