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.
Features
- Whispers in their own windows.
- Chat in their own windows.
- Tabbed windows
- Highly configurable.
- History
- Copy and paste as:
- Raw Text
- BBCode
- Copy and paste as:
- 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
-
View User Profile
-
Send Message
Posted Apr 21, 2026love this, but it really struggles on wow classic era, with the merged realms.
If I want to whisper a name for another realm, it opens two windows, one for the name, and one for the characterwithrealmname.
there seems to be more bugs with this crossrealmstuff
-
View User Profile
-
Send Message
Posted Apr 21, 2026in retail, something introduced in version 3.16.9 (and still happening in version 3.16.10) is preventing me from starting whispers from opening my friends list/contact, highlighting a person (character friend or bnet) and clicking "Send Message", as well as right-clicking users and selecting "Whisper" from the context menu. No LUA errors or anything accompany this behaviour and it happens even when no other addons are enabled. I've had to revert to version 3.16.8 where this isn't happening.
-
View User Profile
-
Send Message
Posted Apr 24, 2026In reply to og_mojo: Any improvement with last update?
-
View User Profile
-
Send Message
Posted Apr 20, 2026is there a way to make whispers show up in the pop up window and still in your defualt chat as well?
-
View User Profile
-
Send Message
Posted Apr 21, 2026In reply to sayakaexe: In wim's options, go to Whisper -> Window Behaviors. You can set the behavior for different states (resting, combat, other, etc). You're looking to disable suppressing messages from default chat frame.
-
View User Profile
-
Send Message
Posted Apr 10, 2026Hello ,
Got a lil problem with the addon ( not a big error ) but i can't close whispers with the cross on addon's icon , not happening all the time.
No other chat addons installed
-
View User Profile
-
Send Message
Posted Apr 2, 2026From the start of Midnight, in a connected server:
- when I left click a character name on chat, a window with Charname - Servername window opens.
- when I right click + whisper only the Character name is used.
If I type on the Charname - servername window, the message opens a new window with the charname or it appears there if already open.
Incoming messages always show in the Charname window.
-
View User Profile
-
Send Message
Posted Apr 2, 2026I’m really enjoying using this addon. However, since I play multiple characters, I often need to check my records, and the list is currently sorted only in alphabetical order, which makes it difficult to find who I last whispered. I would greatly appreciate it if you could add an option to sort by most recent, so that the most recent whisper contacts appear at the top.
-
View User Profile
-
Send Message
Posted Mar 30, 2026Can´t answer/whisper in combat
-
View User Profile
-
Send Message
Posted Mar 31, 2026In reply to Anaya: that because Blizzard blocks Chat AddOn's in combat. you have to get out of combat or disable them.
-
View User Profile
-
Send Message
Posted Mar 31, 2026In reply to LilingPanda: unfortunately this is true. In order not to break everything, I had to prevent the default UI from recording who sent last whisper so /r and shortcut r will not work while in chat lockdown. You'll have to click their name in chat to reply unfortunately. I've tried everything I can think of so far. Anything wim touches with a secret breaks. I'll keep brainstorming but so far I'm at an impasse
-
View User Profile
-
Send Message
Posted Apr 13, 2026In reply to RealPazza: I’m really enjoying using this addon. However, since I play multiple characters, I often need to check my records, and the list is currently sorted only in alphabetical order, which makes it difficult to find who I last whispered. I would greatly appreciate it if you could add an option to sort by most recent, so that the most recent whisper contacts appear at the top.
-
View User Profile
-
Send Message
Posted Mar 29, 2026With the latest Version ui have troubles to Whisper to Battle.net friends when i want to start a chat with them.
-
View User Profile
-
Send Message
Posted Mar 31, 2026In reply to LilingPanda: Newest Version not let me start Chats with Battle.net Friends, even out of Combat.
-
View User Profile
-
Send Message
Posted Mar 29, 2026I did get this error message: 420x WIM/Sources/WindowHandler.lua:692: attempt to perform arithmetic on a nil value
[WIM/Sources/WindowHandler.lua]:692: in function <WIM/Sources/WindowHandler.lua:671>
Locals:
self = WIM3_msgFrame2 {
class = "Jäger"
isNew = false
delayFade = false
delayFadeElapsed = 0
offScreen = 0
classColor = "abd473"
msgSent = false
level = 90
unreadCount = 0
msgWaiting = false
animators = <table> {
}
animation = <table> {
}
isWimWindow = true
age = 6814.937000
lastDate = "29/03/2026"
bn = <table> {
}
helperFrame = WIM_WindowHelperFrame {
}
hasMoved = false
isHistory = true
customSize = false
guild = ""
race = "Nachtelf"
lastActivity = 6814.937000
fadeElapsed = 0.061000
isBN = true
initialized = true
type = "whisper"
isParent = true
widgets = <table> {
}
online = true
theUser = "|Kj19|k"
location = "Silbermond"
fadedIn = true
}
elapsed = 0.010000
animate = <table> {
initTop = 1037.500000
initLeft = 339.062469
time = 0.500000
elapsed = 0.010000
mode = "HIDE"
scaleLimit = 0.001000
to = WIM3MinimapButton {
}
}
prct = 0.020000
scale = 0.980000
to = WIM3MinimapButton {
eqolShowOnMouseover = false
text = FontString {
}
eqolMouseoverHooked = true
backGround = Texture {
}
flash = WIM3MinimapButtonFlash {
}
icon = Texture {
}
}
es = 0.627200
ts = 0.640000
(*temporary) = 212.659983
(*temporary) = 650.720008
(*temporary) = nil
(*temporary) = WIM3MinimapButton {
eqolShowOnMouseover = false
text = FontString {
}
eqolMouseoverHooked = true
backGround = Texture {
}
flash = WIM3MinimapButtonFlash {
}
icon = Texture {
}
}
(*temporary) = WIM3_msgFrame2 {
class = "Jäger"
isNew = false
delayFade = false
delayFadeElapsed = 0
offScreen = 0
classColor = "abd473"
msgSent = false
level = 90
unreadCount = 0
msgWaiting = false
animators = <table> {
}
animation = <table> {
}
isWimWindow = true
age = 6814.937000
lastDate = "29/03/2026"
bn = <table> {
}
helperFrame = WIM_WindowHelperFrame {
}
hasMoved = false
isHistory = true
customSize = false
guild = ""
race = "Nachtelf"
lastActivity = 6814.937000
fadeElapsed = 0.061000
isBN = true
initialized = true
type = "whisper"
isParent = true
widgets = <table> {
}
online = true
theUser = "|Kj19|k"
location = "Silbermond"
fadedIn = true
}
(*temporary) = "TOPLEFT"
(*temporary) = WIM_UIParent {
}
(*temporary) = "BOTTOMLEFT"
(*temporary) = 345.982100
(*temporary) = 1058.673433
(*temporary) = nil
(*temporary) = "attempt to perform arithmetic on a nil value"
helperFrame = WIM_WindowHelperFrame {
isAttached = false
flash = WIM_WindowHelperFrameFlash {
}
}
FadeProps = <table> {
min = 0.500000
interval = 0.250000
delay = 2
max = 1
}
-
View User Profile
-
Send Message
Posted Mar 28, 2026If you recieve /w during m+ key you cant open window to reply to them (you hear sound and see in default chat whisper) when key ends , whisper window pops up and you can reply....really annoying hope for fix soon
-
View User Profile
-
Send Message
Posted Mar 29, 2026In reply to PedjaSenpai: tell blizzard you don't like it.
Chat events can not be handled while chat is locked down in m+. WIM recovers once the lockdown has been lifted.
I'm working on a way for the reply command to work again. I had to override it, otherwise you'd have to reload your UI between lockdowns
-
View User Profile
-
Send Message
Posted Mar 29, 2026In reply to RealPazza: makes sense, hope you find elegant solution since default blizzard chat is working while in instanced combat
-
View User Profile
-
Send Message
Posted Mar 23, 20269x 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]:709: in function 'handler'
[WIM/WIM.lua]:321: in function <WIM/WIM.lua:293>
[WIM/WIM.lua]:334: in function <WIM/WIM.lua:332>
Locals:
id = <table> {
1 = 31
2 = "|Kj23|k"
3 = "EarlofHuber#1817"
4 = true
5 = "Iamearl"
6 = 81
7 = "WoW"
8 = true
9 = 1774301829
10 = false
11 = false
12 = ""
13 = ""
14 = true
15 = 0
16 = 1
17 = false
18 = false
19 = false
}
_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."
MultiCastActionButton6Cooldown = MultiCastActionButton6Cooldown {
}
SettingsSliderOptionsMixin = <table> {
}
UNIT_NAMES_COMBATLOG_TOOLTIP = "Color unit names."
AchievementFrameStatsBG = AchievementFrameStatsBG {
}
HUD_EDIT_MODE_SETTING_ACTION_BAR_HIDE_BAR_ART = "Hide Bar Art"
LE_GAME_ERR_CHAT_RAID_RESTRICTED_TRIAL = 799
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 {
}
TutorialFrameLeft19 = TutorialFrameLeft19 {
}
MultiCastActionButton2Cooldown = MultiCastActionButton2Cooldown {
}
ERR_TRADE_EQUIPPED_BAG = "You can't trade equipped bags."
PVP_RANK_6_1 = "Corporal"
MultiBarLeftButton7 = MultiBarLeftButton7 {
}
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 {
}
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
copy of this letter."
PVPReadyDialogBottomArt = PVPReadyDialogBottomArt {
}
MultiBar6Button4Flash = MultiBar6Button4Flash {
}
MANA = "Mana"
CHAT_CONFIG_OTHER_COMBAT = <table> {
}
ClassNameplateBarPaladinFrameRune5 = ClassNameplateBarPaladinFrameRune5 {
}
TutorialFrameRight19 = TutorialFrameRight19 {
}
BN_UNABLE_TO_RESOLVE_NAME = "Unable to whisper '%s'. Blizzard services may be unavailable."
AddonListClearButton = AddonListClearButton {
}
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"
AUCTIONATOR_L_CONFIG_ALTERNATE_SCAN = "Use alternate slower scan mode by default"
AUCTIONATOR_L_DEFAULT_LIST_HEADER = "Default Shopping List"
DMG_LCD = "DMG"
ACTION_SPELL_MISSED_POSSESSIVE = "1"
SLASH_STOPATTACK1 = "/stopattack"
MAP_LEGEND_RARE_TOOLTIP = "A special creature that provides various rewards"
MultiCastActionButton4HotKey = MultiCastActionButton4HotKey {
}
MINIMAP_TRACKING_TRAINER_CLASS = "Class Trainer"
SLASH_DISMOUNT2 = "/dismount"
DUNGEON_FLOOR_DRAGONBLIGHTCHROMIESCENARIO2 = "Andorhal"
NarciSoulbindsActivateButtonMixin = <table> {
}
EMOTE69_CMD1 = "/nosepick"
WowTokenRedemptionFrameBg = WowTokenRedemptionFrameBg {
}
ITEM_REQ_PURCHASE_GUILD_LEVEL = "Requires guild level %d"
AutoFollowStatus = AutoFollowStatus {
}
RCLootCouncil_Tooltip_ParseTextLeft1 = RCLootCouncil_Tooltip_ParseTextLeft1 {
}
ARENA_CASUAL = "Skirmish"
STABLE_PET_ABILITIES_LIST_HEADER = "Special Abilities"
SendStationeryBackgroundRight = SendStationeryBackgroundRight {
}
MultiBarLeftButton11Name = MultiBarLeftButton11Name {
}
KEY_ABBR_PADLSTICK = "|A:Gamepad_Gen_LStickIn_32:14:14|a"
CONQUEST_BAR = "Conquest %d / %d"
MultiBarLeftButton9Border = MultiBarLeftButton9Border {
}
POSTMASTER_PIPE_KALIMDOR = "Kalimdor"
CooldownViewerSettingsEditAlert = CooldownViewerSettingsEditAlert {
}
DetailsBreakdownWindowTabFrameSummary1609SpellScrollContainerSpellScrollSpellBarButton14ExpandButton = DetailsBreakdownWindowTabFrameSummary1609SpellScrollContainerSpellScrollSpellBarButton14ExpandButton {
}
TopIconTexture = TopIconTexture {
}
OPTION_TOOLTIP_SHOW_ACCOUNT_ACHIEVEMENTS = "Turning this option on wil
-
View User Profile
-
Send Message
Posted Mar 23, 202611x WIM/Modules/MinimapIcon.lua:342: attempt to perform arithmetic on a nil value
[WIM/Modules/MinimapIcon.lua]:342: in function 'UpdatePosition'
[WIM/Modules/MinimapIcon.lua]:417: in function 'fun'
[WIM/WIM.lua]:458: in function 'CoreEventHandler'
[WIM/WIM.lua]:55: in function <WIM/WIM.lua:55>
Locals:
self = WIM3MinimapButton {
PixelSnapDisabled = true
original = <table> {
}
isSkinned = true
flash = WIM3MinimapButtonFlash {
}
text = FontString {
}
backdrop = Frame {
}
backGround = Texture {
}
icon = Texture {
}
}
angle = 3.635111
x = -142.999969
y = -91.065744
q = 2
minimapShape = "SQUARE"
quadTable = <table> {
1 = false
2 = false
3 = false
4 = false
}
w = 142.999969
h = 143.000015
free = <table> {
y = -234.065771
x = -250.500221
point = "TOPRIGHT"
}
scale = 0.533333
(*temporary) = nil
(*temporary) = 15
(*temporary) = WIM3MinimapButton {
PixelSnapDisabled = true
original = <table> {
}
isSkinned = true
flash = WIM3MinimapButtonFlash {
}
text = FontString {
}
backdrop = Frame {
}
backGround = Texture {
}
icon = Texture {
}
}
(*temporary) = 30
(*temporary) = "attempt to perform arithmetic on a nil value"
_G = <table> {
ERR_OUT_OF_CHI = "Nicht genügend Chi"
DH_HAVOC_CORE_ABILITY_2 = "Starker Nahkampfangriff. Verbraucht Jähzorn. Kritische Treffer erstatten einen Teil des Jähzorns zurück."
MultiCastActionButton6Cooldown = MultiCastActionButton6Cooldown {
}
SettingsSliderOptionsMixin = <table> {
}
UNIT_NAMES_COMBATLOG_TOOLTIP = "Namen von Einheiten einfärben."
HUD_EDIT_MODE_SETTING_ACTION_BAR_HIDE_BAR_ART = "Leistenverzierung verbergen"
LE_GAME_ERR_CHAT_RAID_RESTRICTED_TRIAL = 799
SPELL_FAILED_CUSTOM_ERROR_71 = "Dieser Partygast möchte mit Euch tanzen."
LE_GAME_ERR_PET_SPELL_TARGETS_DEAD = 435
ERROR_CLUB_TICKET_COUNT_AT_MAX_COMMUNITY = "Für diese Community können keine weiteren Einladungslinks generiert werden."
RecruitAFriendFrame = RecruitAFriendFrame {
}
TutorialFrameLeft19 = TutorialFrameLeft19 {
}
MultiCastActionButton2Cooldown = MultiCastActionButton2Cooldown {
}
ERR_TRADE_EQUIPPED_BAG = "Mit von Euch angelegten Taschen könnt Ihr nicht handeln."
PVP_RANK_6_1 = "Fußknecht"
MultiBarLeftButton7 = MultiBarLeftButton7 {
}
OPTION_TOOLTIP_SHOW_MULTIBAR4 = "Standardmäßig links von der rechten Aktionsleiste 1 platziert"
EQOLMailboxFrameScrollFrameButton1 = EQOLMailboxFrameScrollFrameButton1 {
}
LE_GAME_ERR_INVALID_FOLLOW_PVP_COMBAT = 389
MerchantItem1AltCurrencyFrameItem1Text = MerchantItem1AltCurrencyFrameItem1Text {
}
PROFESSIONS_COLUMN_REAGENTS_NONE = "Keine"
OPTION_TOOLTIP_ACTION_BUTTON_USE_KEY_DOWN = "Vordefinierte Tastaturbelegungen für Aktionen reagieren bei gedrückter statt bei losgelassener Taste."
BINDING_NAME_NAMEPLATES = "Namensplaketten von gegnerischen Einheiten anzeigen"
CHAT_HEADER_SUFFIX = ": "
COVENANT_MISSIONS_HEALTH = "Gesundheit"
MAIL_LETTER_TOOLTIP = "Klicken, um eine dauerhafte
Kopie dieses Briefs anzufertigen."
PVPReadyDialogBottomArt = PVPReadyDialogBottomArt {
}
MultiBar6Button4Flash = MultiBar6Button4Flash {
}
MANA = "Mana"
CHAT_CONFIG_OTHER_COMBAT = <table> {
}
ClassNameplateBarPaladinFrameRune5 = ClassNameplateBarPaladinFrameRune5 {
}
TutorialFrameRight19 = TutorialFrameRight19 {
}
BOOST2_WARRIOR_COLOSSUSSMASH = "Setzt |cFFFFFFFFKolossales Schmettern|r ein.
|cFFFFFFFFKolossales Schmettern|r erhöht den Schaden."
BN_UNABLE_TO_RESOLVE_NAME = "'%s' kann nicht angeflüstert werden. Möglicherweise sind die Blizzard-Dienste nicht verfügbar."
AddonListClearButton = AddonListClearButton {
}
LE_GAME_ERR_ONLY_ONE_QUIVER = 36
INT_SPELL_DURATION_HOURS = "%d |4Stunde:Stunden;"
LOSS_OF_CONTROL_DISPLAY_FEAR = "Verängstigt"
POWERBAR_PREDICTION_COLOR_MAELSTROM_CODE = "|cff003366"
AUCTIONATOR_L_CONFIG_ALTERNATE_SCAN = "Standardmäßig den alternativen langsameren Scanmodus verwenden"
AUCTIONATOR_L_DEFAULT_LIST_HEADER = "Standard Einkaufsliste"
DMG_LCD = "SCHA"
ACTION_SPELL_MISSED_POSSESSIVE = "1"
RaidUtility_CloseButton = RaidUtility_CloseButton {
}
SLASH_STOPATTACK1 = "/angriffstop"
MAP_LEGEND_RARE_TOOLTIP = "Eine besondere Kreatur, die verschiedene Belohnungen bietet"
MultiCastActionButton4HotKey = MultiCastActionButton4HotKey {
}
MINIMAP_TRACKING_TRAINER_CLASS = "Lehrer für eine Klasse"
SLASH_DISMOUNT2 = "/dismount"
DUNGEON_FLOOR_DRAGONBLIGHTCHROMIESCENARIO2 = "Andorhal"
ElvUF_Raid1Group1UnitBu