Prat 3.0
In loving memory of Jon Akthar (Sylvanaar)
Hello WoW community, I'm LuciferCatnip, Sylvanaar was my coworker and my mentor. It goes without saying that Jon was an amazingly talented individual. He always seemed to know everything… but he once said to me "It's not about knowing the answers, it's about asking the right questions", he always challenged me to ask me the right questions until I would arrive at the answer on my own terms. Jon was also a champion of the open source movement, and so with special thanks to Gil from Curseforge as well as Sylvanaar's family, there's no better way to honor Sylvanaar's legacy than to keep his project going strong in the community.
If you'd like to help maintain Prat, please reach out to MysticalOS or LuciferCatnip directly. Thank you so much.
About
Prat-3.0 is a chat enhancement addon for World of Warcraft.
It is made up of 30+ smaller "modules" which each provide additional functionality, and can be enabled or disabled individually.
In game, type /prat for a menu. Or use the icon on one of the many data broker hosts.
Prat has just about every feature you can think of, and then some. Really. When I get some more time, I'll try and put together a full list (Even I have lost count)
(Thanks to Dreamsight for this partial list)
- Sync your chat settings across your account (Beta)
- Machine learning powered spam filter (Beta)
- Change arrows, buttons, mouse scroll for chat scroll, scroll speed
- you can add player color per channel, color per level, color per class
- timestamps (styled)
- Whether to show timestamp (what format the timestamp should be in)
- Whether to show players level
- You can select the option for channel "stickys" (last channel you used you auto use when hitting enter, that sort of thing – or last thing someone said)
- Change the looks of the chat's editbox - as well as where it appears (you can even undock it and move it to where you'd like it to be)
- Chat fading, fading delay
- You can change the font to a list of fonts, add an outline to it, monochrome it (if you don’t mind messing with files a bit you could probably even add other fonts to that list)
- Change the chat frame/chat box appearance
- Keep chat history between game sessions
- Set channel abbreviations
- Set brackets and color(or something instead of brackets)round player/lvl
- Alt invite option (press keyboard “alt” button and click on the player’s name to auto inv them)
- Raid icon
- Invite links - click them to invite the person
- URL copying
- Full chat copying + copy button
- Click timestamp to copy line
- Configurable alerts when your name or other word is mentioned
- Enables tell target /tt which whispers your target
- Alias options - make macros into short commands
- See names of players Alt characters
- Change chat sounds (incoming and outgoing as well as per channel)
- Achievements info and grats
- Full chat search and search box
- Customizable filters for advanced users
- Show item icon next to item links and player class icon next to player names
- Icon-only options for newcomers chat
- Optional flashing or font color change for chat tabs when a new message comes in.
You can enable/disable all Prat modules - don't have to have the ones you don't use running
While trying to reduce resource utilization, it is also important to note that some people prefer the features, and don't care that an addon uses 500k more.

-
View User Profile
-
Send Message
Posted Feb 28, 2026Issues and bugs with Tooltip Realminfo, I see duplicate flags in the chat box, Chattynator works fine
-
View User Profile
-
Send Message
Posted Feb 27, 2026I'm not sure if this is a Prat issue, or a WoW issue, but is anyone else having the issue where the channel designations and their colors are getting randomized? Several examples - I see that newcomer chat is being forced into the first channel, and general into the second, when, traditionally general has always been /1 and newcomer (for me) was actually in the 4th channel. The colors will also change.
I wonder if this is a Mac issue, but if it is, it has only started happening within the last patch, prior to early access launch.
I have even wiped out the cache file, to no avail.
And if Prat is supposed to preserve the channel colors, it isn't for me. The colors are changing as well as the designations, and it's not like the colors are staying in the channel, and the names of the channels are changing, the colors are literally changing as well as, and independent of, the names of the channels (so channel 1 could be white, or yellow, or beige but is generally either general or newcomer.
I don't think I have any other add-on that changes the chat channels, just Prat, so I'm starting here. If Blizzard introduced a chat bug, it seems that it is not honoring Prat's module to preserve chat channel colors.
-
View User Profile
-
Send Message
Posted Feb 26, 2026Hey. Is it possible to add an option so a longer message that goes to second row does not go under the timestamp but instead goes only under the first row of the message content :)
-
View User Profile
-
Send Message
Posted Feb 25, 2026Love the addon so far. Any chance we can get some extra player formatting around the name or level? Something like [level] [character_name] or <level>{character_name] instead of them only being separated by a colon (:)
-
View User Profile
-
Send Message
Posted Feb 25, 2026In recent versions, the character's class is not displayed if he writes via bnet.
-
View User Profile
-
Send Message
Posted Feb 23, 2026Version 3.9.89, when working with the “ItemInfoOverlay”, causes duplicate display of item information. Version 3.9.88 does not have this issue.
-
View User Profile
-
Send Message
Posted Feb 24, 2026In reply to user_wj23lut8y01psyom:
This also happens with other addons that add icons to the chat
-
View User Profile
-
Send Message
Posted Feb 24, 2026In reply to user_wj23lut8y01psyom: I'll investigate into this shortly :)
-
View User Profile
-
Send Message
Posted Feb 23, 2026Hey ! For a few days (weeks?) I've had an issue with the way the addon handles battlenet friends. It displays "FRIEND_ONLINE" / "FRIEND_OFFLINE" instead of the name or nickname, and it usually prevent whispering them or even reply to their /w. I don't know if this is related but I play on the french client.
I would be happy to provide more details I just don't know what would be helpful so don't hesitate to ask
-
View User Profile
-
Send Message
Posted Feb 23, 2026In reply to Yorgl_: I have the same problem. For me, it only happens in instances.
-
View User Profile
-
Send Message
Posted Feb 24, 2026In reply to Yorgl_: I am working on a clean fix and solution for this =]
-
View User Profile
-
Send Message
Posted Feb 25, 2026In reply to QTartemis: ty :)
-
View User Profile
-
Send Message
Posted Feb 23, 2026205x bad argument #1 to '?' (Usage: local result = Ambiguate(fullName, context). Secret values are only allowed during untainted execution for this argument.)
[Blizzard_ChatFrameBase/Shared/ChatFrameUtil.lua]:997: in function 'GetDecoratedSenderName'
[Blizzard_ChatFrameBase/Mainline/ChatFrameOverrides.lua]:299: in function 'MessageEventHandler'
[Blizzard_ChatFrameBase/Shared/ChatFrame.lua]:14: in function 'OnEvent'
[Blizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua]:127: in function <...lizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua:126>
Locals:
event = "CHAT_MSG_BN_WHISPER_INFORM"
text = <no value>
senderName = <no value>
languageName = ""
channelName = ""
playerName2 = <no value>
specialFlags = ""
zoneChannelID = 0
This happens when in a dungeon scenario like a m+
-
View User Profile
-
Send Message
Posted Feb 22, 2026Been getting this error in Shadow Labs on the mobs before Blackheart the Inciter when they transform into Core Hounds.
"Prat |cff8080ff3.0|r (|cff8080ff3.9.88|r)"
42x ...lizzard_ChatFrameBase/Classic/ChatFrameOverrides.lua:475: bad argument #2 to 'format' (number expected, got string)
[Blizzard_ChatFrameBase/Classic/ChatFrameOverrides.lua]:475: in function 'MessageFormatter'
[Blizzard_ChatFrameBase/Classic/ChatFrameOverrides.lua]:505: in function 'MessageEventHandler'
[Prat-3.0/addon/addon.lua]:636: in function <Prat-3.0/addon/addon.lua:550>
[tail call]: ?
[Blizzard_ChatFrameBase/Shared/ChatFrame.lua]:14: in function 'OnEvent'
[Blizzard_ChatFrameBase/Classic/FloatingChatFrame.lua]:125: in function <...Blizzard_ChatFrameBase/Classic/FloatingChatFrame.lua:124>
Locals:
msg = "%o gular zila amanare rukadare."
fontHeight = 12
pflag = ""
showLink = nil
playerLink = "|Hplayer:Cabal Zealot:94657:MONSTER_EMOTE:|h[Cabal Zealot]|h"
playerLinkDisplayText = "[Cabal Zealot]"
relevantDefaultLanguage = "Common"
usingDifferentLanguage = false
usingEmote = false
isCommunityType = false
message = "%o gular zila amanare rukadare."
outMsg = nil
self = ChatFrame1 {
onDisplayRefreshedCallbacks = <table> {
}
oldestFadingLineTimestamp = 22485.791000
systemInfo = <table> {
}
shouldFadeAfterInactivity = true
system = 8
Background = ChatFrame1Background {
}
ScrollToBottomButton = Button {
}
editBox = ChatFrame1EditBox {
}
downKeys = <table> {
}
name = "General"
buttonSide = "left"
defaultLanguage = "Common"
checkedGMOTD = true
isInitialized = 1
textIsCopyable = false
minimizeButton = ChatFrame1MinimizeButton {
}
settingDisplayInfoMap = <table> {
}
ResizeButton = ChatFrame1ResizeButton {
}
overrideFadeTimestamp = 22485.791000
clickAnywhereButton = ChatFrame1ClickAnywhereButton {
}
systemPositionDirty = false
dirtySettings = <table> {
}
hasActiveChanges = false
isScrollingMessageFrame = true
isUninteractable = false
mouseOutTime = 0
buttonFrame = ChatFrame1ButtonFrame {
}
snappedFrames = <table> {
}
isDocked = 1
visibleLines = <table> {
}
alternativeDefaultLanguage = "Common"
hasOwnFontObject = true
allowScroll = true
oldAlpha = 0.701961
channelList = <table> {
}
messageTypeList = <table> {
}
savedSystemInfo = <table> {
}
flashTimer = 0.403003
timeVisibleSecs = 120
fontObject = table: 0000024A79BA17D0 {
}
systemNameString = "Chat Frame"
mouseInTime = 0
zoneChannelList = <table> {
}
fadeDurationSecs = 3
EditModeResizeButton = Button {
}
insertMode = 2
Selection = Frame {
}
FontStringContainer = Frame {
}
settingMap = <table> {
}
settingsDialogAnchor = <table> {
}
historyBuffer = <table> {
}
isStaticDocked = true
isLocked = true
scrollOffset = 0
}
arg6 = ""
arg7 = 0
arg8 = 0
type = "MONSTER_EMOTE"
arg2 = "Cabal Zealot"
arg17 = false
chatGroup = "MONSTER_EMOTE"
coloredName = "Cabal Zealot"
arg3 = ""
bnetIDAccount = 0
playerName = "Cabal Zealot"
lineID = 94657
chatTarget = nil
arg14 = false
info = <table> {
colorNameByClass = false
r = 1
id = 17
g = 0.501961
flashTab = false
ignoreChatTypeProcessing = false
sticky = 0
flashTabOnGeneral = false
b = 0.250980
}
channelLength = 0
arg4 = ""
msgTime = 1771808707
-
View User Profile
-
Send Message
Posted Feb 23, 2026In reply to KamakazeChickn: Can you test this with only Prat running and no other addons... This section of code is just Prat forwarding the message to other addons to modify any of the data prior to Prat replacement (AKA, at this point, Prat hasn't done ANYTHING to the data)
-
View User Profile
-
Send Message
Posted Feb 22, 2026Something appears to have broken with the editbox as of the last update. It no longer skins properly and is showing the default blizz editbox border inside of the addon-configured border.
-
View User Profile
-
Send Message
Posted Feb 22, 2026In reply to Paybacks: Which version of WoW are you running? Can you run `/dump Prat.Version` ingame and provide that too.
-
View User Profile
-
Send Message
Posted Feb 25, 2026In reply to QTartemis:
Edit: Disregard - realized another addon was interfering with this.
-
View User Profile
-
Send Message
Posted Feb 22, 2026Latest update: 2x LUA_WARNING: Prat-3.0/modules/ChannelSticky.lua:1 Prat-3.0/modules/ChannelSticky.lua:168: '=' expected near 'code'
[!BugGrabber/BugGrabber.lua]:499: in function '?'
[!BugGrabber/BugGrabber.lua]:414: in function <!BugGrabber/BugGrabber.lua:414>
Locals:
self = <table> {
}
_ = "LUA_WARNING"
warningText = "Prat-3.0/modules/ChannelSticky.lua:1 Prat-3.0/modules/ChannelSticky.lua:168: '=' expected near 'code'"
pre11_1_5warningText = nil
text = "LUA_WARNING: Prat-3.0/modules/ChannelSticky.lua:1 Prat-3.0/modules/ChannelSticky.lua:168: '=' expected near 'code'"
-----
2x Prat-3.0/modules/ChannelSticky.lua:168: '=' expected near 'code'
Locals:
-
View User Profile
-
Send Message
Posted Feb 22, 2026In reply to Holy_Z: This is now fixed. CurseForge had issues grabbing localizations in that version :))