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 Apr 18, 2026108x attempt to perform string conversion on a secret string value (tainted by 'Prat-3.0')
[Blizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua]:2393: in function <...lizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua:2392>
[Blizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua]:2437: in function 'FCFManager_ShouldSuppressMessage'
[Blizzard_ChatFrameBase/Mainline/ChatFrameOverrides.lua]:343: in function 'MessageEventHandler'
[Prat-3.0/addon/addon.lua]:616: in function <Prat-3.0/addon/addon.lua:536>
[tail call]: ?
[Blizzard_ChatFrameBase/Shared/ChatFrame.lua]:14: in function 'OnEvent'
[Blizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua]:127: in function <...lizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua:126>
Locals:
chatType = "WHISPER"
chatTarget = <no value>
(*temporary) = "whisper"
(*temporary) = ";;"
-
View User Profile
-
Send Message
Posted Apr 17, 2026server name not working in chat
-
View User Profile
-
Send Message
Posted Apr 16, 2026The current version seems to be broken... all the new guild chat (separate window) that I receive is lost when I /camp and relogin (or /reload). the latest 15+/- Guild Message of the Day are present, but none of the chat that occurred during those 15+/- sessions. I will provide screenshots if you want. I have the history configured at 5000 lines and it used to work fine... I could look back days just fine.
-
View User Profile
-
Send Message
Posted Apr 15, 2026Prat is unusable atm, its constantly breaking when I am in keys or combat.
-
View User Profile
-
Send Message
Posted Apr 14, 2026its buggy when in combat, can't chat or anything
-
View User Profile
-
Send Message
Posted Apr 14, 2026I have fading disabled but the chat still fades, any clue on how to fix that?
-
View User Profile
-
Send Message
Posted Apr 13, 2026Just updated and i get spammed with errors
2x ...s/Blizzard_ChatFrameBase/Shared/ChatFrameEditBox.lua:677: attempt to perform arithmetic on a secret number value (tainted by 'Prat-3.0')
[Blizzard_ChatFrameBase/Shared/ChatFrameEditBox.lua]:677: in function 'UpdateHeader'
[Blizzard_ChatFrameBase/Shared/ChatFrameEditBox.lua]:583: in function 'ResetChatType'
[Blizzard_ChatFrameBase/Shared/ChatFrameEditBox.lua]:556: in function 'Deactivate'
[Blizzard_ChatFrameBase/Shared/ChatFrameUtil.lua]:510: in function <...dOns/Blizzard_ChatFrameBase/Shared/ChatFrameUtil.lua:495>
[C]: in function 'SetLastActiveWindow'
[Blizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua]:1516: in function <...lizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua:1482>
[C]: in function 'FCF_Tab_OnClick'
[*FloatingChatFrame.xml:324_OnClick]:1: in function <[string "*FloatingChatFrame.xml:324_OnClick"]:1>
Locals:
self = ChatFrame12EditBox {
languageHeader = FontString {
}
focusLeft = ChatFrame12EditBoxFocusLeft {
}
headerSuffix = ChatFrame12EditBoxHeaderSuffix {
}
history_lines = <table> {
}
rDrag = Frame {
}
history_index = 0
tabCompleteTableIndex = 1
chatFrame = ChatFrame12 {
}
pratFrame = Frame {
}
addSpaceToAutoComplete = true
prompt = ChatFrame12EditBoxPrompt {
}
lDrag = Frame {
}
chatLanguage = "Orcish"
NewcomerHint = ChatFrame12EditBoxNewcomerHint {
}
focusMid = ChatFrame12EditBoxFocusMid {
}
header = ChatFrame12EditBoxHeader {
}
addHighlightedText = true
focusRight = ChatFrame12EditBoxFocusRight {
}
}
type = "WHISPER"
tellTarget = <no value>
info = <table> {
colorNameByClass = false
r = 1
id = 8
g = 0.501961
flashTab = true
ignoreChatTypeProcessing = false
sticky = 1
flashTabOnGeneral = true
b = 1
}
header = ChatFrame12EditBoxHeader {
}
headerSuffix = ChatFrame12EditBoxHeaderSuffix {
}
(*temporary) = <no value>
(*temporary) = <no value>
(*temporary) = ChatFrame12EditBoxHeader {
}
(*temporary) = <no value>
(*temporary) = 15
(*temporary) = nil
(*temporary) = 0.501961
(*temporary) = 1
(*temporary) = "attempt to perform arithmetic on a secret number value (tainted by 'Prat-3.0')"
chatTypesThatRequireTellTarget = <table> {
BN_WHISPER = true
SMART_WHISPER = true
WHISPER = true
}
-
View User Profile
-
Send Message
Posted Apr 13, 2026In reply to H8FaTe: There's a fix in the latest alpha going out :)
-
View User Profile
-
Send Message
Posted Apr 9, 2026this error occured and at the same time my game froze for 3-5 seconds while in a key
1x attempt to perform string conversion on a secret string value (tainted by 'Prat-3.0')
[Blizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua]:2393: in function <...lizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua:2392>
[Blizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua]:2437: in function 'FCFManager_ShouldSuppressMessage'
[Prat-3.0/services/chatsections.lua]:308: in function 'SplitChatMessage'
[Prat-3.0/addon/addon.lua]:568: in function <Prat-3.0/addon/addon.lua:536>
[tail call]: ?
[Blizzard_ChatFrameBase/Shared/ChatFrame.lua]:14: in function 'OnEvent'
[Blizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua]:127: in function <...lizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua:126>
Locals:
chatType = "BN_WHISPER"
chatTarget = <no value>
(*temporary) = "bn_whisper"
(*temporary) = ";;"
-
View User Profile
-
Send Message
Posted Apr 13, 2026In reply to zuberilol: This should be fixed in a release coming out soon.
-
View User Profile
-
Send Message
Posted Apr 7, 2026My whisper tabs aren't working. They either don't even pop up at all, or they don't have 90 percent of the messages for some reason.
-
View User Profile
-
Send Message
Posted Apr 7, 2026TBC Anniversary: for quite a while now (month or two) whenever Prat is on I dont see any messages appearing in the chat box,. I feel like I'm the only one with this issue.. Updated, reinstalled etc., but nothing has helped. I love the addon but haven't been able to use it in quite a while. Anyone else with this issue?
-
View User Profile
-
Send Message
Posted Apr 6, 2026can't find any info on whether this is a known issue or not, but the Aliases feature doesn't seem to be working in midnight (I.E. the module that lets you map a long chat command like /mountspecial to a short version like /ms)
If this isn't already a known problem, do you think it's fixable, or should we just expect this to be impossible in midnight?
-
View User Profile
-
Send Message
Posted Apr 13, 2026In reply to TheWideMurloc: This should be fixed in a release coming out soon.
-
View User Profile
-
Send Message
Posted Apr 13, 2026In reply to QTartemis: rad, thanks!
-
View User Profile
-
Send Message
Posted Apr 5, 2026It would be great if we could customize the chat tabs—for example, by adding custom background colors to each one, reducing the padding between the tab titles and the tab borders (as in the “General” or whispers tabs), or making the chat tabs have sharper corners with a fixed dark background similar to the Elvui theme. While we are able to customize the chat 'frame' to our liking, the 'tabs' don’t look like with a similiar look with the chat frames. They look way different, way vanilla for now...
-
View User Profile
-
Send Message
Posted Apr 4, 2026Still getting errors with smartgroup. TBC Anniversary
1x bad argument #2 to '?' (Usage: C_ChatInfo.SendChatMessage(params))
[Blizzard_ChatFrameBase/Shared/ChatFrameEditBox.lua]:275: in function 'SendText'
[Blizzard_ChatFrameBase/Shared/ChatFrameEditBox.lua]:370: in function <...s/Blizzard_ChatFrameBase/Shared/ChatFrameEditBox.lua:366>
Locals:
self = ChatFrame1EditBox {
autoCompleteParams = <table> {
}
tabCompleteTableIndex = 1
setText = 0
headerSuffix = ChatFrame1EditBoxHeaderSuffix {
}
text = "/smart"
history_lines = <table> {
}
addHighlightedText = true
-
View User Profile
-
Send Message
Posted Apr 3, 202674x ...Blizzard_SharedXML/Shared/Dialog/DialogTemplates.lua:21: attempt to perform arithmetic on a secret number value (tainted by 'Prat-3.0')
[Interface/AddOns/Blizzard_SharedXML/Shared/Dialog/DialogTemplates.lua]:21: in function 'UpdateWidth'
[Interface/AddOns/Blizzard_SharedXML/Shared/Dialog/DialogTemplates.lua]:12: in function 'Setup'
[Interface/AddOns/Blizzard_ChatFrame/Mainline/ChatConfigFrame.lua]:2163: in function 'ChatConfigCategoryFrame_Refresh'
[Interface/AddOns/Blizzard_ChatFrame/Mainline/ChatConfigFrame.lua]:2179: in function 'ChatConfig_RefreshCurrentChatCategory'
[Interface/AddOns/Blizzard_ChatFrame/Mainline/ChatConfigFrame.lua]:2374: in function 'UpdateSelection'
[Interface/AddOns/Blizzard_ChatFrame/Mainline/ChatConfigFrame.lua]:2366: in function 'UpdateTabDisplay'
[Interface/AddOns/Blizzard_ChatFrame/Mainline/ChatConfigFrame.lua]:1874: in function 'ChatConfig_UpdateChatSettings'
[Interface/AddOns/Blizzard_ChatFrame/Mainline/ChatConfigFrame.lua]:786: in function <...dOns/Blizzard_ChatFrame/Mainline/ChatConfigFrame.lua:752>
Locals:
self = Frame {
RightBG = Texture {
}
CenterBG = Texture {
}
headerTextPadding = 100
LeftBG = Texture {
}
Text = FontString {
}
}
(*temporary) = Frame {
RightBG = Texture {
}
CenterBG = Texture {
}
headerTextPadding = 100
LeftBG = Texture {
}
Text = FontString {
}
}
(*temporary) = <no value>
(*temporary) = 100
(*temporary) = "attempt to perform arithmetic on a secret number value (tainted by 'Prat-3.0')"
-
View User Profile
-
Send Message
Posted Apr 3, 20261x Arguments: ("name", value)
Lua Taint: Prat-3.0
[Interface/AddOns/Blizzard_ChatFrameBase/Shared/ChatFrameEditBox.lua]:49: in function 'SetTellTarget'
[Interface/AddOns/Blizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua]:627: in function <...lizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua:586>
[C]: in function 'FCF_SetTemporaryWindowType'
[Interface/AddOns/Blizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua]:720: in function 'FCF_OpenTemporaryWindow'
[Interface/AddOns/Blizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua]:2501: in function <...lizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua:2484>
Locals:
self = ChatFrame11EditBox {
history_index = 0
headerSuffix = ChatFrame11EditBoxHeaderSuffix {
}
rDrag = Frame {
}
lDrag = Frame {
}
pratFrame = Frame {
}
addHighlightedText = true
addSpaceToAutoComplete = true
chatLanguage = "Common"
chatFrame = ChatFrame11 {
}
prompt = ChatFrame11EditBoxPrompt {
}
NewcomerHint = ChatFrame11EditBoxNewcomerHint {
}
focusMid = ChatFrame11EditBoxFocusMid {
}
history_lines = <table> {
}
languageHeader = FontString {
}
focusRight = ChatFrame11EditBoxFocusRight {
}
focusLeft = ChatFrame11EditBoxFocusLeft {
}
header = ChatFrame11EditBoxHeader {
}
}
tellTarget = <no value>
-
View User Profile
-
Send Message
Posted Apr 3, 202688x attempt to perform string conversion on a secret string value (tainted by 'Prat-3.0')
[Interface/AddOns/Blizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua]:2393: in function <...lizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua:2392>
[Interface/AddOns/Blizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua]:2437: in function 'FCFManager_ShouldSuppressMessage'
[Interface/AddOns/Blizzard_ChatFrameBase/Mainline/ChatFrameOverrides.lua]:343: in function 'MessageEventHandler'
[Interface/AddOns/Blizzard_ChatFrameBase/Shared/ChatFrame.lua]:14: in function 'OnEvent'
[Interface/AddOns/Blizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua]:127: in function <...lizzard_ChatFrameBase/Mainline/FloatingChatFrame.lua:126>
Locals:
chatType = "WHISPER"
chatTarget = <no value>
(*temporary) = "whisper"
(*temporary) = ";;"