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 Feb 24, 2026In reply to mkdarker: It's not possible. It's a protected function. Right click the top icon on the right side of the window, there are profiler links. one is there to help you copy the name.
-
View User Profile
-
Send Message
Posted Feb 27, 2026In reply to RealPazza: Okay, thx for replying.
Any chance to make the window nickname then unclickable like I fell into trap so people don't get used to / build up a habit that doesn't work anyway?
Just as suggestion, if implementable.
Thanks a lot!
-
View User Profile
-
Send Message
Posted Feb 18, 2026Works better now but doing /r doesnt reply.
-
View User Profile
-
Send Message
Posted Feb 18, 2026In reply to shifftwee: yeah, 'R' reply isnt opening the last received message window
-
View User Profile
-
Send Message
Posted Feb 18, 2026In reply to shifftwee: /r is understandable, and I will see if there is a trivial way for me to include that because of WIM having to handle its own replies and retells (if WIM sends the data to the chatframe it taints everything and secrets cause error hell). R and Shift-R should work. It would only open the window if intercepting is turned on and its set to open on send in the window behaviors.
-
View User Profile
-
Send Message
Posted Feb 17, 2026With the newest Update (and also the Alphas) the WIM Window opens whenever i try to answer someone whispering to me via the Chat Reply Keybind
-
View User Profile
-
Send Message
Posted Feb 17, 2026In reply to Sunaruqtx:
That is correct. I had to separate the default behavior and WIM's. because of tainting interfering with secrets.. You're right though, they need to respect your intercept rules.
-
View User Profile
-
Send Message
Posted Feb 17, 2026In reply to Sunaruqtx: Give the latest alpha a try. see if that works the way you're expecting.
-
View User Profile
-
Send Message
Posted Feb 17, 2026In reply to RealPazza: works like a charm now, thanks
-
View User Profile
-
Send Message
Posted Feb 13, 2026Just posted a quick fix for the slash commands always being intercepted and for the processChatType error which was introduced in the last update.
-
View User Profile
-
Send Message
Posted Feb 16, 2026In reply to RealPazza: Thank you for keeping this addon updated!! ⭐⭐⭐⭐⭐
-
View User Profile
-
Send Message
Posted Feb 16, 2026In reply to RealPazza: Had this happen again today, and it doesn't seem to only happen to slash commands. I have gotten essentially locked out of chat because pressing enter always defaults to placing the cursor in the wim window.
-
View User Profile
-
Send Message
Posted Feb 16, 2026In reply to sirsquirrels:
I'm working on a fix
-
View User Profile
-
Send Message
Posted Feb 16, 2026In reply to sirsquirrels: Give tonight's alpha a try if you don't mind. Let me know if it still happens.
-
View User Profile
-
Send Message
Posted Feb 13, 2026since the newest Update the WIM Window pops up everytime i type /w <name> and i cant disable that.
also if you try to disable WIM with the AddOn option (the Checkbox in Main) it still has this behavior
-
View User Profile
-
Send Message
Posted Feb 13, 2026MOP latest version of WIM
Message: Interface/AddOns/WIM/Modules/WhisperEngine.lua:849: attempt to call global 'processChatType' (a nil value)
Time: Fri Feb 13 10:22:16 2026
Count: 2
Stack:
[Interface/AddOns/WIM/Modules/WhisperEngine.lua]:849: in function <Interface/AddOns/WIM/Modules/WhisperEngine.lua:845>
[C]: in function 'ChatEdit_HandleChatType'
[Interface/AddOns/Blizzard_ChatFrameBase/Classic/ChatFrame.lua]:2775: in function <.../AddOns/Blizzard_ChatFrameBase/Classic/ChatFrame.lua:2732>
[C]: ?
[C]: in function 'ChatEdit_ParseText'
[Interface/AddOns/Blizzard_ChatFrameBase/Classic/ChatFrame.lua]:2438: in function <.../AddOns/Blizzard_ChatFrameBase/Classic/ChatFrame.lua:2437>
[C]: in function 'ChatEdit_SendText'
[Interface/AddOns/Blizzard_ChatFrameBase/Shared/MacroExecutionManager.lua]:30: in function <...zzard_ChatFrameBase/Shared/MacroExecutionManager.lua:23>
[C]: ?
[C]: ?
[C]: in function 'UseAction'
[Interface/AddOns/Blizzard_FrameXML/Classic/SecureTemplates_Shared.lua]:329: in function 'handler'
[Interface/AddOns/Blizzard_FrameXML/Classic/SecureTemplates_Shared.lua]:606: in function <...Blizzard_FrameXML/Classic/SecureTemplates_Shared.lua:550>
[C]: ?
[Interface/AddOns/Blizzard_FrameXML/SecureHandlers.lua]:266: in function <...nterface/AddOns/Blizzard_FrameXML/SecureHandlers.lua:263>
[C]: ?
[Interface/AddOns/Blizzard_FrameXML/SecureHandlers.lua]:296: in function <...nterface/AddOns/Blizzard_FrameXML/SecureHandlers.lua:279>
[tail call]: ?
Locals:
self = EditBox {
autoCompleteParams = <table> {
}
}
msg = ""
command = "/MOUNTRANDOM"
send = 1
channel = nil
index = "NRMBCMD"
(*temporary) = nil
(*temporary) = EditBox {
autoCompleteParams = <table> {
}
}
(*temporary) = ""
(*temporary) = "NRMBCMD"
(*temporary) = 1
(*temporary) = "attempt to call global 'processChatType' (a nil value)"
_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."
QuestieFrame1464 = QuestieFrame1464 {
}
UNIT_NAMES_COMBATLOG_TOOLTIP = "Color unit names."
LE_GAME_ERR_CHAT_RAID_RESTRICTED_TRIAL = 809
SPELL_FAILED_CUSTOM_ERROR_71 = "This partygoer wants to dance with you."
LE_GAME_ERR_PET_SPELL_TARGETS_DEAD = 424
ContainerFrame3Item34SubIconTexture = ContainerFrame3Item34SubIconTexture {
}
MultiBarLeftButton7 = MultiBarLeftButton7 {
}
BGRLiveItemButton223 = BGRLiveItemButton223 {
}
LE_GAME_ERR_INVALID_FOLLOW_PVP_COMBAT = 376
MerchantItem3AltCurrencyFrameItem1Text = MerchantItem3AltCurrencyFrameItem1Text {
}
OPTION_SHOW_ACTION_BAR5_TOOLTIP = "Attached to the left side of Action Bar 4 by default"
BINDING_NAME_NAMEPLATES = "Show Enemy Name Plates"
INSTANCE_UNAVAILABLE_OTHER_TEMPORARILY_DISABLED = "%s cannot enter. This instance is temporarily disabled."
MultiBarBottomRightButton8Shine5 = MultiBarBottomRightButton8Shine5 {
}
ElvUI_Bar13Button10Shine14 = ElvUI_Bar13Button10Shine14 {
}
DUNGEON_FLOOR_UPPERBLACKROCKSPIRE3 = "Hall of Blackhand"
BGRLiveItemButton317IconTexture = BGRLiveItemButton317IconTexture {
}
ElvUI_Bar5Button12Shine7 = ElvUI_Bar5Button12Shine7 {
}
CompactRaidFrameManagerDisplayFrameHiddenModeToggleTopRight = CompactRaidFrameManagerDisplayFrameHiddenModeToggleTopRight {
}
LE_GAME_ERR_ONLY_ONE_QUIVER = 33
SpellButton6Cooldown = SpellButton6Cooldown {
}
LOSS_OF_CONTROL_DISPLAY_FEAR = "Feared"
OverrideActionBarButton6Shine11 = OverrideActionBarButton6Shine11 {
}
QuestieFrame1785 = QuestieFrame1785 {
}
CompactUnitFrameProfilesSaveButton = CompactUnitFrameProfilesSaveButton {
}
ElvUI_Bar6Button6 = ElvUI_Bar6Button6 {
}
AUCTIONATOR_L_DEFAULT_LIST_HEADER = "Default Shopping List"
ACTION_SPELL_MISSED_POSSESSIVE = "1"
RaidUtility_CloseButton = RaidUtility_CloseButton {
}
QuestieFrame776Glow = QuestieFrame776Glow {
}
CompactRaidFrameManagerDisplayFrameFilterOptionsFilterRoleTankMiddleMiddle = CompactRaidFrameManagerDisplayFrameFilterOptionsFilterRoleTankMiddleMiddle {
}
ContainerFrame4Item16Cooldown = ContainerFrame4Item
-
View User Profile
-
Send Message
Posted Feb 13, 2026In reply to ragnarxiii: Fixed
-
View User Profile
-
Send Message
Posted Feb 11, 2026Encountering an issue when trying to use the "/w <player name". The WIM window pops up and says:
"Unable to whisper '%s'. Blizzard services may be
unavailable.?
I suspect this may be an issue with how ElvUI auto-completes player names. If I right-click a player portrait/name in Guild window to whisper there is no problem.
1x WIM/Modules/WhisperEngine.lua:358: Usage: BNSendWhisper(id,text)
[WIM/Modules/WhisperEngine.lua]:358: in function 'SendSplitMessage'
[WIM/Modules/WhisperEngine.lua]:387: in function 'fun'
[WIM/Sources/WindowHandler.lua]:441: in function <WIM/Sources/WindowHandler.lua:433>
[WIM/Sources/WindowHandler.lua]:757: in function <WIM/Sources/WindowHandler.lua:757>
Locals:
PRIORITY = "ALERT"
HEADER = "WIM"
theMsg = "testing"
CHANNEL = "WHISPER"
EXTRA = nil
to = "Dinze-Nightslayer"
isBN = true
messageLimit = 800
chunk = "testing "
(for index) = 2
(for limit) = 2
(for step) = 1
i = 2
_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."
QuestieFrame1464 = QuestieFrame1464 {
}
UNIT_NAMES_COMBATLOG_TOOLTIP = "Color unit names."
LE_GAME_ERR_CHAT_RAID_RESTRICTED_TRIAL = 809
SPELL_FAILED_CUSTOM_ERROR_71 = "This partygoer wants to dance with you."
LE_GAME_ERR_PET_SPELL_TARGETS_DEAD = 424
ContainerFrame3Item24SubIconTexture = ContainerFrame3Item24SubIconTexture {
}
questieLineFrame941 = questieLineFrame941 {
}
MultiBarLeftButton7 = MultiBarLeftButton7 {
}
BGRLiveItemButton223 = BGRLiveItemButton223 {
}
LE_GAME_ERR_INVALID_FOLLOW_PVP_COMBAT = 376
MerchantItem6AltCurrencyFrameItem1Text = MerchantItem6AltCurrencyFrameItem1Text {
}
OPTION_SHOW_ACTION_BAR5_TOOLTIP = "Attached to the left side of Action Bar 4 by default"
BINDING_NAME_NAMEPLATES = "Show Enemy Name Plates"
CHAT_HEADER_SUFFIX = ": "
WhatsTrainingFrameRow3Spell = WhatsTrainingFrameRow3Spell {
}
ERR_NOAMMO_S = "%s"
CraftExpandTabLeft = CraftExpandTabLeft {
}
ElvUF_Raid1Group1UnitButton2AurasButton3Cooldown = ElvUF_Raid1Group1UnitButton2AurasButton3Cooldown {
}
CinematicFrameRaidBossEmoteFrame = CinematicFrameRaidBossEmoteFrame {
}
CompactRaidFrameManagerDisplayFrameHiddenModeToggleTopRight = CompactRaidFrameManagerDisplayFrameHiddenModeToggleTopRight {
}
LE_GAME_ERR_ONLY_ONE_QUIVER = 33
LOSS_OF_CONTROL_DISPLAY_FEAR = "Feared"
questieLineFrame38 = questieLineFrame38 {
}
LibDBIcon10_BugSack = LibDBIcon10_BugSack {
}
DetailsBreakdownWindowTabFrameSummary3243PhaseScrollContainerPhaseScrollPhaseBarButton4 = DetailsBreakdownWindowTabFrameSummary3243PhaseScrollContainerPhaseScrollPhaseBarButton4 {
}
ElvUI_Bar6Button6 = ElvUI_Bar6Button6 {
}
AUCTIONATOR_L_DEFAULT_LIST_HEADER = "Default Shopping List"
ACTION_SPELL_MISSED_POSSESSIVE = "1"
RaidUtility_CloseButton = RaidUtility_CloseButton {
}
QuestieFrame776Glow = QuestieFrame776Glow {
}
CompactRaidFrameManagerDisplayFrameFilterOptionsFilterRoleTankMiddleMiddle = CompactRaidFrameManagerDisplayFrameFilterOptionsFilterRoleTankMiddleMiddle {
}
ContainerFrame4Item16Cooldown = ContainerFrame4Item16Cooldown {
}
DUNGEON_FLOOR_DRAGONBLIGHTCHROMIESCENARIO2 = "Andorhal"
ElvUF_Raid1Group3UnitButton3_HealthBar_AbsorbHealBar = ElvUF_Raid1Group3UnitButton3_HealthBar_AbsorbHealBar {
}
WowTokenRedemptionFrameBg = WowTokenRedemptionFrameBg {
}
SPELL_FAILED_CUSTOM_ERROR_152 = "You must choose a specialization to use Ascendance."
LAG_TOLERANCE = "Lag Tolerance"
GuildControlPopupFrame = GuildControlPopupFrame {
}
linePool.playButton48 = linePool.playButton48 {
}
SendStationeryBackgroundRight = SendStationeryBackgroundRight {
}
TUTORIAL61_SPELLID_DRUID = "768"
AUCTIONATOR_L_HIDE = "Hide"
MultiBarLeftButton9Border = MultiBarLeftButton9Border {
}
LE_GAME_ERR_NOT_ON_TOURNAMENT_REALM = 912
UIWidgetCenterDisplayFrameText = UIWidgetCenterDisplayFrameText {
}
ItemRackButton12Cooldown = ItemRackButton12Cooldown {
}
PlayerTalentFrameBranch17 = PlayerTalentFrameBranch17 {
}
OPTION_TOOLTIP_SHOW_ACCOUNT_ACHIEVEMENTS = "Turning this option on will only display your character achievements when people inspect you or use the Blizzard website or mobile app."
UNCHECKED_ENABLED = 2
OPTION_TOOLTIP_FIX_LAG = "Enabling this reduces user interface lag, but may drastically reduce frame rates."
QuestieFrame2333 = QuestieFrame2333 {
}
VOICEMACRO_8_Tr_1_FEMALE = "Cure me!"
ElvUI_Bar3Button7Name = ElvUI_Bar3Button7Name {
}
UnitPopupCommunitiesKickFriendButtonMixin = <table> {
}
NEWBIE_TOOLTIP_ACHIEVEMENT = "View information about your achievements and statistics."
ElvUF_Raid1Group5UnitButton3 = ElvUF_Raid1Group5UnitButton3 {
}
BGRLiveItemButton98Count = BGRLiveItemButton98Count {
}
CompactRaidFrameManagerDisplayFrameEveryoneIsAssistButton = CompactRai
-
View User Profile
-
Send Message
Posted Feb 12, 2026In reply to bokoharambe: https://github.com/1broccoli/wow-instant-messenger/releases/tag/3.15.2 - fixed this
-
View User Profile
-
Send Message
Posted Feb 6, 2026Stopped working.......any fix for this?
14x WIM/Modules/WhisperEngine.lua:678: attempt to compare local 'process' (a secret value)
[WIM/Modules/WhisperEngine.lua]:678: in function 'fun'
[WIM/WIM.lua]:353: in function 'CoreEventHandler'
[WIM/WIM.lua]:54: in function <WIM/WIM.lua:54>
Locals:
self = <table> {
db_defaults = <table> {
}
enableByDefault = true
db = <table> {
}
resources = <table> {
}
enabled = true
canDisable = false
title = "WhisperEngine"
hasWidget = false
}
process = <no value>
playerName = <no value>
languageName = ""
channelName = ""
playerName2 = <no value>
specialFlags = ""
zoneChannelID = 0
channelIndex = 0
channelBaseName = ""
unused = 0
lineID = 1320
guid = nil
bnSenderID = <no value>
isMobile = false
isSubtitle = false
hideSenderInLetterbox = false
supressRaidIcons = false
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to compare local 'process' (a secret value)"
Windows = <table> {
}
_G = <table> {
LFDQueueFrameSpecificInstanceLevel = LFDQueueFrameSpecificInstanceLevel {
}
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."
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 {
}
DecursiveSkipListFrameClose = DecursiveSkipListFrameClose {
}
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"
EQOLMailboxFrameScrollFrameButton1 = EQOLMailboxFrameScrollFrameButton1 {
}
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 {
}
ERR_NOAMMO_S = "%s"
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"
VOICEMACRO_4_Sc_1_FEMALE = "Help me attack!"
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"
EMOTE69_CMD1 = "/nosepick"
WowTokenRedemptionFrameBg = WowTokenRedemptionFrameBg {
}
ITEM_REQ_PURCHASE_GUILD_LEVEL = "Requires guild level %d"
AutoFollowStatus = AutoFollowStatus {
}
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 = "