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 Mar 6, 2026Can confirm, deactivated the module FRAME actually fixed my issue with the size resetting, activing the FONT one also fixed mine
-
View User Profile
-
Send Message
Posted Mar 6, 2026In reply to Dreirak: This is now fixed in the latest alpha :)
-
View User Profile
-
Send Message
Posted Mar 6, 2026Hey, is it possible to add shadows to the bubble text when using the transparent option?
-
View User Profile
-
Send Message
Posted Mar 6, 2026Chat is not showing icon correctly with questie, confirmed that when Prat is disabled, the questie icon shows correctly:
This is TBC Classic Anniversary
https://imgur.com/a/Gu8pHrF
-
View User Profile
-
Send Message
Posted Mar 6, 2026The edit box anchor keeps reverting back to the bottom when it is set to top
-
View User Profile
-
Send Message
Posted Mar 6, 2026In reply to acceptableLateKite: I'm unable to replicate this. Which version of WoW and Prat are you running?
-
View User Profile
-
Send Message
Posted Mar 6, 2026Having an issue with last update.
Messages size and font have changed.
Not only in chat but also in Guild Discussion.
Turned off all other addons, still this issue.
Wow version : 12.0.1.66263
EDIT : Problem came from the module frame. I had to turn ON the module font to change the font back to defaut.
-
View User Profile
-
Send Message
Posted Mar 6, 2026In reply to yshinar: I've been able to replicate this issue, and will work on a fix :)
-
View User Profile
-
Send Message
Posted Mar 6, 2026In reply to yshinar: This is now fixed in the latest alpha :)
-
View User Profile
-
Send Message
Posted Mar 5, 2026Since new update my size of the writing doesn't stay registered and goes back to 14px each time i change tab wich is way too big
-
View User Profile
-
Send Message
Posted Mar 5, 2026In reply to Dreirak: I'm unable to replicate this issue.
Which game version are you running. Which addon version are you running. Have you tested it with just Prat?
-
View User Profile
-
Send Message
Posted Mar 6, 2026In reply to QTartemis: 3.9.91, does also the problem with only that addon activated yeah. 3.9.91-1-g885196c didn't fix the issue. Game version is 12.0.1 (66263)
-
View User Profile
-
Send Message
Posted Mar 6, 2026In reply to QTartemis: Also deleting saved variables and reinstalling on curseforge then doing a /reload didn't fix the issue
-
View User Profile
-
Send Message
Posted Mar 5, 2026Anyone else have a problem where the chat tabs become tiny randomly? It temporary "merges/overlaps" chat windows. The chat window itself does not change size tho. No errors to report.
-
View User Profile
-
Send Message
Posted Mar 4, 2026Would you ever think about adding Unlimited Chat Messages as a function for Prat?:) (Yapper and Prat are kinda fighting over my editbox lol)
-
View User Profile
-
Send Message
Posted Mar 4, 2026In reply to xinkyimpx: Could you explain further which feature you're asking for, so I can look into this :)
-
View User Profile
-
Send Message
Posted Mar 6, 2026In reply to QTartemis: Of course!
In roleplay you often write biig posts, but Blizzard has put a limit on how long your posts can be. Some addons (like UnlimitedChatMessages or Yapper) make it possible that you can write as much as you want and it gets posted in several messages in the chat.
-
View User Profile
-
Send Message
Posted Mar 4, 2026Getting this error after the latest release.
538x Prat-3.0/addon/addon.lua:543: attempt to call field 'ChatFrame_MessageEventHandler' (a nil value)
[Prat-3.0/addon/addon.lua]:543: in function <Prat-3.0/addon/addon.lua:530>
[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:
self = <table> {
baseName = "Prat-3.0"
modules = <table> {
}
defaultModuleLibraries = <table> {
}
name = "Prat"
orderedModules = <table> {
}
hooks = <table> {
}
enabledState = true
defaultModuleState = true
}
this = ChatFrame5 {
oldestFadingLineTimestamp = Infinite
shouldFadeAfterInactivity = true
buttonSide = "left"
textIsCopyable = false
overrideFadeTimestamp = 0
isScrollingMessageFrame = true
isUninteractable = false
buttonFrame = ChatFrame5ButtonFrame {
}
alternativeDefaultLanguage = "Common"
hasOwnFontObject = true
allowScroll = true
oldAlpha = 0.156863
channelList = <table> {
}
messageTypeList = <table> {
}
timeVisibleSecs = 120
defaultLanguage = "Common"
isInitialized = 1
fontObject = table: 00000252EA3FBA70 {
}
isLayoutDirty = true
name = "Chat 5"
fadeDurationSecs = 3
isDisplayDirty = true
onDisplayRefreshedCallbacks = <table> {
}
visibleLines = <table> {
}
scrollOffset = 0
zoneChannelList = <table> {
}
historyBuffer = <table> {
}
Background = ChatFrame5Background {
}
editBox = ChatFrame5EditBox {
}
ScrollToBottomButton = Button {
}
ResizeButton = ChatFrame5ResizeButton {
}
insertMode = 2
ScrollBar = Frame {
}
FontStringContainer = Frame {
}
clickAnywhereButton = ChatFrame5ClickAnywhereButton {
}
isLocked = true
}
event = "CHAT_MSG_CHANNEL"
PRE_ADDMESSAGE = "Prat_PreAddMessage"
POST_ADDMESSAGE = "Prat_PostAddMessage"
FRAME_MESSAGE = "Prat_FrameMessage"
POST_ADDMESSAGE_BLOCKED = "Prat_PostAddMessageBlocked"
arg1 = "|cffffd000|Htrade:Player-60-0F44746C:2018:164|h[Blacksmithing]|h|r |cffffd000|Htrade:Player-60-0F44746C:2108:165|h[Leatherworking]|h|r LFW all profession tools and most accessories R5"
arg2 = "Qringe-Stormrage"
arg3 = ""
arg4 = "2. Trade - City"
arg5 = "Qringe-Stormrage"
arg6 = ""
arg7 = 2
arg8 = 2
arg9 = "Trade - City"
arg10 = 0
arg11 = 1
arg12 = "Player-60-0F44746C"
arg13 = 0
arg14 = false
arg15 = false
isSecret = false
(*temporary) = nil
(*temporary) = nil
(*temporary) = ChatFrame5 {
oldestFadingLineTimestamp = Infinite
shouldFadeAfterInactivity = true
buttonSide = "left"
textIsCopyable = false
overrideFadeTimestamp = 0
isScrollingMessageFrame = true
isUninteractable = false
buttonFrame = ChatFrame5ButtonFrame {
}
alternativeDefaultLanguage = "Common"
hasOwnFontObject = true
allowScroll = true
oldAlpha = 0.156863
channelList = <table> {
}
messageTypeList = <table> {
}
timeVisibleSecs = 120
defaultLanguage = "Common"
isInitialized = 1
fontObject = table: 00000252EA3FBA70 {
}
isLayoutDirty = true
name = "Chat 5"
fadeDurationSecs = 3
isDisplayDirty = true
onDisplayRefreshedCallbacks = <table> {
}
visibleLines = <table> {
}
scrollOffset = 0
zoneChannelList = <table> {
}
historyBuffer = <table> {
}
Background = ChatFrame5Background {
}
editBox = ChatFrame5EditBox {
}
ScrollToBottomButton = Button {
}
ResizeButton = ChatFrame5ResizeButton {
}
insertMode = 2
ScrollBar = Frame {
}
FontStringContainer = Frame {
}
clickAnywhereButton = ChatFrame5ClickAnywhereButton {
}
isLocked = true
}
(*temporary) = "CHAT_MSG_CHANNEL"
(*temporary) = "|cffffd000|Htrade:Player-60-0F44746C:2018:164|h[Blacksmithing]|h|r |cffffd000|Htrade:Player-60-0F44746C:2108:165|h[Leatherworking]|h|r LFW all profession tools and most accessories R5"
(*temporary) = "Qringe-Stormrage"
(*temporary) = ""
(*temporary) = "2. Trade - City"
(*temporary) = "Qringe-Stormrage"
(*temporary) = ""
(*temporary) = 2
(*temporary) = 2
(*temporary) = "Trade - City"
(*temporary) = 0
(*temporary) = 1
(*temporary) = "Player-60-0F44746C"
(*temporary) = 0
(*temporary) = false
(*temporary) = false
(*temporary) = false
(*temporary) = true
(*temporary) = "attempt to call field 'ChatFrame_MessageEventHandler' (a nil value)"
Prat = <table> {
IsRetail = true
Frames = <table> {
}
SplitMessageOut = <table> {
}
AddonName = "Prat-3.0"
FrameList = <table> {
}
callbacks = <table> {
}
db = <table> {
}
Options = <table> {
}
Version = "Prat |cff8080ff3.0|r (|cff8080ff3.9.90|r)"
ExternalFrames = <table> {
}
Media = <table> {
}
CLR = <table> {
}
Is
-
View User Profile
-
Send Message
Posted Mar 4, 2026In reply to racerx323: Fixed in 3.9.91
-
View User Profile
-
Send Message
Posted Mar 4, 2026I got the following Error (I think during a PvP Fight in a BG):
86x Prat-3.0/services/chatsections.lua:295: attempt to call upvalue 'type' (a nil value)
[Prat-3.0/services/chatsections.lua]:295: in function <Prat-3.0/services/chatsections.lua:294>
[Prat-3.0/services/chatsections.lua]:308: in function <Prat-3.0/services/chatsections.lua:307>
[Prat-3.0/services/chatsections.lua]:457: in function 'SplitChatMessage'
[Prat-3.0/addon/addon.lua]:590: in function <Prat-3.0/addon/addon.lua:550>
[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:
clubId = <no value>
streamId = <no value>
epoch = <no value>
position = <no value>
(*temporary) = nil
(*temporary) = "COMMUNITIES_CHANNEL"
(*temporary) = <no value>
(*temporary) = "attempt to call upvalue 'type' (a nil value)"
type = "COMMUNITIES_CHANNEL"
Cannot see whispers in BGs again like how it was a few weeks ago