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 13, 2026Hello! Great addon! If you are able to implement, I have a minor feature request:
Please add an option in the "History" module's Scrollback Options to show or not show the days/hours/minutes/seconds and the =====End of Scrollback ======== text break that appears in chat.
Thank you!
-
View User Profile
-
Send Message
Posted Mar 13, 2026On retail when I click over to the combat log, the "my actions", "what happened to me" and "everything" category things are so faded out as to be effectively invisible. Changing the alpha of the background helps a little bit, but I remember the categories being legible in the past, and I'd really prefer to keep my solid background color for my chat. I've looked through and tried a few settings, but I can't get them back to how they used to be, and I'm not sure if I accidentally changed a setting to make them the way they are or if it's a bug.
-
View User Profile
-
Send Message
Posted Mar 13, 2026Even if I move the chat window to a different location, it returns to its original position after reconnecting.
The chat window position is properly fixed when using the original version, but this situation has persisted since the TBC version.
-
View User Profile
-
Send Message
Posted Mar 12, 2026IDK if this is the result of the class color icons breaking in chat but that is also an issue im having if not. But this popped up in my bugsack. Im on the latest version.
1x ...rfacePrat-3.0/modules/ChannelColorMemory.lua:283: attempt to compare local 'NoticeType' (a secret string value tainted by 'Prat-3.0')
[Prat-3.0/modules/ChannelColorMemory.lua]:283: in function '?'
[Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua]:109: in function <...Ons/Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:109>
[C]: ?
[Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua]:19: in function <...Ons/Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:15>
[Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua]:54: in function 'Fire'
[Ace3/AceEvent-3.0/AceEvent-3.0.lua]:120: in function <Ace3/AceEvent-3.0/AceEvent-3.0.lua:119>
Locals:
self = <table> {
modules = <table> {
}
defaultModuleLibraries = <table> {
}
name = "Prat_ChannelColorMemory"
orderedModules = <table> {
}
zoneChanIdx = <table> {
}
baseName = "Prat-3.0"
db = <table> {
}
enabledState = true
PL = <table> {
}
defaultModuleState = true
moduleName = "ChannelColorMemory"
}
_ = "CHAT_MSG_CHANNEL_NOTICE"
NoticeType = <no value>
_ = <no value>
_ = ""
_ = "1. General - Eversong Woods"
_ = <no value>
_ = ""
ServChanID = 1
number = 1
cname = "General"
(*temporary) = <table> {
42 = "Services"
2 = "Trade"
36 = "ChromieTime"
34 = "ShadowlandsPTRDiscussion"
35 = "MidnightTestDiscussion"
1 = "General"
33 = "ShadowlandsBetaDiscussion"
22 = "LocalDefense"
32 = "NewcomerChat"
}
(*temporary) = "1"
(*temporary) = "1"
(*temporary) = "1"
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to compare local 'NoticeType' (a secret string value tainted by 'Prat-3.0')"
-
View User Profile
-
Send Message
Posted Mar 13, 2026In reply to sicariusgaming87: Fixed in latest alpha :)
-
View User Profile
-
Send Message
Posted Mar 12, 2026Hi ! In bnet whispers the class color for playernames and character level display aren't working, the player name is always grey instead of being class colored and the character level doesn't appear at all. It's working fine in "standard" whispers, the issue only appears for bnet whispers. (and my setting is set on class color for realid and use character name)
Any idea why that could be ? I'm confused :)
Thanks !
-
View User Profile
-
Send Message
Posted Mar 12, 2026In reply to Silmachoute: Were you in an encounter/instance at the time?
-
View User Profile
-
Send Message
Posted Mar 12, 2026In reply to QTartemis: No, it is consistently happening, even in town or out of combat.
-
View User Profile
-
Send Message
Posted Mar 13, 2026In reply to Silmachoute: Can you try with the latest alpha version, and see if you can replicate this. I am unable to produce it on my side.
-
View User Profile
-
Send Message
Posted Mar 13, 2026In reply to Silmachoute: I managed to track down the issue, which was occuring in both cases such as "Death Knight" (spaces in the class name), and if you're on a non-english locale. A fix has been pushed to the latest alpha for this (with a release coming later).
-
View User Profile
-
Send Message
Posted Mar 13, 2026In reply to QTartemis: Can confirm the classcolor is back with the latest alpha version (i am indeed using a french client), but the toon level is still missing :)
-
View User Profile
-
Send Message
Posted Mar 11, 2026Hello, regarding the TBC version at least, the setting in "Display Settings > Font > Set Shadow Color" doesn't seem to be doing anything. I tried to troubleshoot it (Reinstall, only having prat enabled, different fonts, etc), but I just can't seem to change the Shadow Color of the font. (Also, no Alpha options are available for it, don't know if it's intended, but it would be nice to be able to have Alpha option for it)
-
View User Profile
-
Send Message
Posted Mar 10, 20261x Prat-3.0/modules/PlayerNames.lua:1321: attempt to index local 'name' (a secret string value tainted by 'Prat-3.0')
[Prat-3.0/modules/PlayerNames.lua]:1321: in function 'UpdateBG'
[Prat-3.0/modules/PlayerNames.lua]:1209: in function 'UpdateAll'
[Prat-3.0/modules/PlayerNames.lua]:1599: in function '?'
[Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua]:109: in function <...Ons/Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:109>
[C]: ?
[Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua]:19: in function <...Ons/Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:15>
[Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua]:54: in function 'Fire'
[Prat-3.0/addon/addon.lua]:591: in function <Prat-3.0/addon/addon.lua:523>
[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> {
modules = <table> {
}
appIcons = <table> {
}
Classes = <table> {
}
defaultModuleState = true
Subgroups = <table> {
}
hooks = <table> {
}
db = <table> {
}
enabledState = true
PL = <table> {
}
baseName = "Prat-3.0"
defaultModuleLibraries = <table> {
}
pluginopts = <table> {
}
name = "Prat_PlayerNames"
orderedModules = <table> {
}
Levels = <table> {
}
moduleName = "PlayerNames"
}
(for index) = 1
(for limit) = 30
(for step) = 1
i = 1
name = <no value>
_ = <no value>
_ = <no value>
_ = <no value>
_ = <no value>
_ = 0
_ = "Dracthyr"
_ = "Mage"
class = "MAGE"
(*temporary) = "Dracthyr"
(*temporary) = <no value>
(*temporary) = "MAGE"
(*temporary) = <no value>
(*temporary) = <no value>
(*temporary) = <no value>
(*temporary) = <no value>
(*temporary) = nil
(*temporary) = <no value>
(*temporary) = <no value>
(*temporary) = "attempt to index local 'name' (a secret string value tainted by 'Prat-3.0')"
-
View User Profile
-
Send Message
Posted Mar 10, 2026In reply to sicariusgaming87: Fixed in latest alpha :)
-
View User Profile
-
Send Message
Posted Mar 9, 2026Whenever an NPC says something in a dungeon or raid, I only get the dialogue in the chatbox, rather than the name with the dialogue
e.g.
[01:00:00] Hello.
rather than
[01:00:00] Unknown says: Hello.
What is the setting to make it so I can see who is talking during instances?
-
View User Profile
-
Send Message
Posted Mar 9, 2026In reply to DeirdreSquirrel: Hi there. With the release of WoW midnight, a lot of things became what's known as "Secrets". We're still updating a huge chunk of our code to support these and handle edge cases like you have described. Could you let me know which instance you were in and experiencing this issue so I can look to replicate and hopefully narrow down a fix :)
-
View User Profile
-
Send Message
Posted Mar 8, 20261x [ADDON_ACTION_FORBIDDEN] AddOn 'Prat-3.0' tried to call the protected function 'UNKNOWN()'.
[!BugGrabber/BugGrabber.lua]:477: in function '?'
[!BugGrabber/BugGrabber.lua]:401: in function <!BugGrabber/BugGrabber.lua:401>
[C]: ?
[C]: in function 'SendChatMessage'
[Blizzard_ChatFrameBase/Shared/ChatFrameEditBox.lua]:307: in function <...s/Blizzard_ChatFrameBase/Shared/ChatFrameEditBox.lua:283>
[C]: in function 'SendText'
[Blizzard_ChatFrameBase/Shared/ChatFrameEditBox.lua]:407: in function <...s/Blizzard_ChatFrameBase/Shared/ChatFrameEditBox.lua:403>
Locals:
self = <table> {
}
event = "ADDON_ACTION_FORBIDDEN"
addonName = "Prat-3.0"
addonFunc = "UNKNOWN()"
name = "Prat-3.0"
badAddons = <table> {
Prat-3.0 = true
}
L = <table> {
ADDON_CALL_PROTECTED_MATCH = "^%[(.*)%] (AddOn '.*' tried to call the protected function '.*'.)$"
NO_DISPLAY_2 = "|cffffff00The standard display is called BugSack, and can probably be found on the same site where you found !BugGrabber.|r"
ERROR_DETECTED = "%s |cffffff00captured, click the link for more information.|r"
USAGE = "|cffffff00Usage: /buggrabber <1-%d>.|r"
BUGGRABBER_STOPPED = "|cffffff00There are too many errors in your UI. As a result, your game experience may be degraded. Disable or update the failing addons if you don't want to see this message again.|r"
STOP_NAG = "|cffffff00!BugGrabber will not nag about missing a display addon again until next patch.|r"
ADDON_DISABLED = "|cffffff00!BugGrabber and %s cannot coexist; %s has been forcefully disabled. If you want to, you may log out, disable !BugGrabber, and enable %s.|r"
NO_DISPLAY_STOP = "|cffffff00If you don't want to be reminded about this again, run /stopnag.|r"
NO_DISPLAY_1 = "|cffffff00You seem to be running !BugGrabber with no display addon to go along with it. Although a slash command is provided for accessing error reports, a display can help you manage these errors in a more convenient way.|r"
ERROR_UNABLE = "|cffffff00!BugGrabber is unable to retrieve errors from other players by itself. Please install BugSack or a similar display addon that might give you this functionality.|r"
ADDON_CALL_PROTECTED = "[%s] AddOn '%s' tried to call the protected function '%s'."
}
-
View User Profile
-
Send Message
Posted Mar 8, 2026hello.. i just realized that with Prat enabled.. on WoW TBC i do not see the default "Quest Accepted" or Quest Completed messages in chat window. I thought it was questie at first but after disabling all my addons 1 by 1 I can confirm it is Prat. How do i get those yellow "Quest Accepted" messages to show while using prat?
-
View User Profile
-
Send Message
Posted Mar 7, 2026Hello friends! How do I disable the seemingly new Prat feature that is auto-completing slash commands? For example, when i try to type /camp, it autocompletes /cancelaura as soon as i hit the letter a; similarly for /logout, it puts /lean as soon as i hit the L. Cheers :)
-
View User Profile
-
Send Message
Posted Mar 7, 2026In reply to TeaandthePuzzle: Prat doesn't have any auto-complete logic. Are you able to replicate this with ONLY Prat enabled?