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)
- AI 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.
In the Wrath Pre-Patch, Prat appears to be forgetting the selected channel.
If I am in /g and I type something and hit enter, normally if I hit enter again, it shows me I am still in that channel. That is no longer happening and it is resetting to /s after enter key press.
This is a pain as I have to keep selecting /p or /g or /ra each time I want to type something.
Add feature to enable/disable "player has joined" custom chats, someone made a 'World' channel for wotlk classic, but getting annoyed with all the 'player' has joined, 'player' has left messages, is there away to make so prat stops showing that for a certien channel "Disable channel alerts"
is this being maintained still? i had issues today with everything showng as <BNET REMOVED>
Edit: Accidentally missed that this was on WowInterface already when going over all my addons. For anyone else looking around and interested: https://www.wowinterface.com/downloads/info10783 - use that link if your WowUp did not automatically pick it up. Though I don't know if that'll support Classic/TBC/WotLK updates?
In reply to Seschenal:
Thank you!
Hi Team, any plans to integrate with a non curseforge provider?
https://www.wowhead.com/news/ads-revenue-and-api-wowup-and-overwolf-split-over-addon-development-325912
https://www.patreon.com/posts/curseforge-62354064
https://wowup.io/guide/wowup/curseforge-migration
Any reason toc is not being updated?
I realize it still functions, but usually this means addon is no longer being maintained or is not tested according to latest release which is 9.2
got serval prat lua errors today
Message: Interface\AddOns\Prat-3.0\modules\PopupMessage.lua:751: bad argument #1 to 'match' (string expected, got nil)
Time: Thu Apr 7 10:59:04 2022
Count: 12
Stack: Interface\AddOns\Prat-3.0\modules\PopupMessage.lua:751: bad argument #1 to 'match' (string expected, got nil)
[string "=[C]"]: in function `match'
[string "@Interface\AddOns\Prat-3.0\modules\PopupMessage.lua"]:751: in function `CheckText'
[string "@Interface\AddOns\Prat-3.0\modules\PopupMessage.lua"]:712: in function `?'
[string "@Interface\AddOns\adblock\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua"]:119: in function <...ock\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:119>
[string "=[C]"]: ?
[string "@Interface\AddOns\adblock\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua"]:29: in function <...ock\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:25>
[string "@Interface\AddOns\adblock\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua"]:64: in function `Fire'
[string "@Interface\AddOns\Prat-3.0\addon\addon.lua"]:723: in function <Interface\AddOns\Prat-3.0\addon\addon.lua:613>
[string "=(tail call)"]: ?
[string "@Interface\FrameXML\ChatFrame.lua"]:3115: in function `ChatFrame_OnEvent'
[string "*:OnEvent"]:1: in function <[string "*:OnEvent"]:1>
Locals: <none>
Message: Interface\AddOns\Prat-3.0\addon\locales.lua:26: attempt to index global 'Prat' (a nil value)
Time: Thu Apr 7 09:13:51 2022
Count: 1
Stack: Interface\AddOns\Prat-3.0\addon\locales.lua:26: attempt to index global 'Prat' (a nil value)
[string "@Interface\AddOns\Prat-3.0\addon\locales.lua"]:26: in function `GetNamePattern'
[string "@Interface\AddOns\Prat-3.0\modules\PopupMessage.lua"]:639: in function `OnModuleEnable'
[string "@Interface\AddOns\Prat-3.0\addon\modules.lua"]:189: in function <Interface\AddOns\Prat-3.0\addon\modules.lua:178>
[string "=[C]"]: ?
[string "@Interface\AddOns\ArkInventory\Externals\Ace3\AceAddon\AceAddon-3.0.lua"]:70: in function <...rkInventory\Externals\Ace3\AceAddon\AceAddon-3.0.lua:65>
[string "@Interface\AddOns\ArkInventory\Externals\Ace3\AceAddon\AceAddon-3.0.lua"]:527: in function `EnableAddon'
[string "@Interface\AddOns\ArkInventory\Externals\Ace3\AceAddon\AceAddon-3.0.lua"]:540: in function `EnableAddon'
[string "@Interface\AddOns\ArkInventory\Externals\Ace3\AceAddon\AceAddon-3.0.lua"]:630: in function <...rkInventory\Externals\Ace3\AceAddon\AceAddon-3.0.lua:615>
[string "=[C]"]: in function `LoadAddOn'
[string "@Interface\AddOns\ArkInventory\Core\ArkInventory.lua"]:10511: in function `LoadAddOn'
[string "@Interface\AddOns\ArkInventory\Core\ArkInventory.lua"]:10526: in function `BlizzardAPIHook'
[string "@Interface\AddOns\ArkInventory\Core\ArkInventory.lua"]:2779: in function <Interface\AddOns\ArkInventory\Core\ArkInventory.lua:2749>
[string "=[C]"]: ?
[string "@Interface\AddOns\ArkInventory\Externals\Ace3\AceAddon\AceAddon-3.0.lua"]:70: in function <...rkInventory\Externals\Ace3\AceAddon\AceAddon-3.0.lua:65>
[string "@Interface\AddOns\ArkInventory\Externals\Ace3\AceAddon\AceAddon-3.0.lua"]:527: in function `EnableAddon'
[string "@Interface\AddOns\ArkInventory\Externals\Ace3\AceAddon\AceAddon-3.0.lua"]:630: in function <...rkInventory\Externals\Ace3\AceAddon\AceAddon-3.0.lua:615>
Locals: <none>
i used to play with that addon years ago. i had one feeature set up, whenever my name was in chat prat gave me a pop up like chat bubble in center of screen with a sound effekt.
i dont remember how to set it up anymore, how to?
In reply to Morwo01:
Enable the PopupMessage module
And ones more error again...:(
Date: 2022-03-27 20:05:00
ID: 1
Error occured in: Global
Count: 1
Message: ..\FrameXML\ChatFrame.lua line 3875:
invalid option in `format'
Debug:
[string "=[C]"]: format()
[string "@..\FrameXML\ChatFrame.lua"]:3875: ChatFrame_MessageEventHandler()
[string "@Prat-3.0\addon\addon.lua"]:681:
Prat-3.0\addon\addon.lua:613
[string "=(tail call)"]: ?
[string "@..\FrameXML\ChatFrame.lua"]:3115: ChatFrame_OnEvent()
[string "*:OnEvent"]:1:
[string "*:OnEvent"]:1
Locals:
(*temporary) = "%1 падает, заставляя горы содрогнуться."
(*temporary) = "Отарис Разъяренный"
(*temporary) = "Отарис Разъяренный"
AddOns:
Swatter, v<%version%> (<%codename%>
Date: 2022-03-26 11:27:44
ID: 1
Error occured in: Global
Count: 1
Message: ..\FrameXML\ChatFrame.lua line 3875:
invalid option in `format'
Debug:
[string "=[C]"]: format()
[string "@..\FrameXML\ChatFrame.lua"]:3875: ChatFrame_MessageEventHandler()
[string "@Prat-3.0\addon\addon.lua"]:681:
Prat-3.0\addon\addon.lua:613
[string "=(tail call)"]: ?
[string "@..\FrameXML\ChatFrame.lua"]:3115: ChatFrame_OnEvent()
[string "*:OnEvent"]:1:
[string "*:OnEvent"]:1
Locals:
(*temporary) = "%1 активируется, чтобы снова послужить картелю Зи."
(*temporary) = "Оскверненный архитектор"
(*temporary) = "Оскверненный архитектор"
AddOns:
Swatter, v<%version%> (<%codename%>)
Hello. Is there any chance that Prat will update for patch 9.2.0 and stop throwing bugs in the new Zereth Mortis location?
39x FrameXML\ChatFrame.lua:3875: invalid option in `format'
[string "=[C]"]: in function `format'
[string "@FrameXML\ChatFrame.lua"]:3875: in function `ChatFrame_MessageEventHandler'
[string "@Prat-3.0-3.9.2c\addon\addon.lua"]:681: in function <Prat-3.0\addon\addon.lua:613>
[string "=(tail call)"]: ?
[string "@FrameXML\ChatFrame.lua"]:3115: in function `ChatFrame_OnEvent'
[string "*:OnEvent"]:1: in function <[string "*:OnEvent"]:1>
In reply to Iluvatarglk:
I wasn't able to reproduce this error yet, sorry.
The locals for the Hirukon spawn message appear to be correct so it should be working.
In reply to humfras:
Unfortunately, this error occurs frequently and throughout the location, as well as in a new raid. Maybe this is due to the format of the localized interface when trying to reproduce the emotions of creatures, I can't say for sure, because I don't understand this (In the original interface, Hirukon appears with the reproduction of an emotion or a cry of a creature?
In reply to Iluvatarglk:
Date: 2022-03-26 11:55:05
ID: 1
Error occured in: Global
Count: 1
Message: ..\FrameXML\ChatFrame.lua line 3875:
invalid option in `format'
Debug:
[string "=[C]"]: format()
[string "@..\FrameXML\ChatFrame.lua"]:3875: ChatFrame_MessageEventHandler()
[string "@Prat-3.0\addon\addon.lua"]:681:
Prat-3.0\addon\addon.lua:613
[string "=(tail call)"]: ?
[string "@..\FrameXML\ChatFrame.lua"]:3115: ChatFrame_OnEvent()
[string "*:OnEvent"]:1:
[string "*:OnEvent"]:1
Locals:
(*temporary) = "%1 готовится к решающему бою."
(*temporary) = "Защитник Предвечных"
(*temporary) = "Защитник Предвечных"
AddOns:
Swatter, v<%version%> (<%codename%>)
The feature to click on the timestamp of a message in chat to copy the line is not working for me.
I am using the 3.9.2c version I downloaded from wowinterface
I'm getting this error:
116x Prat-3.0-3.9.2c\modules\CopyChat.lua:671: attempt to index local 'info' (a nil value)
[string "@Prat-3.0-3.9.2c\modules\CopyChat.lua"]:671: in function `linkfunc'
[string "@Prat-3.0-3.9.2c\services\links.lua"]:108: in function <Prat-3.0\services\links.lua:97>
[string "=(tail call)"]: ?
[string "=(tail call)"]: ?
[string "=[C]"]: ?
[string "@TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua"]:425: in function <...TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419>
[string "=[C]"]: in function `SetHyperlink'
[string "@FrameXML\ItemRef.lua"]:788: in function `ItemRefSetHyperlink'
[string "@FrameXML\ItemRef.lua"]:393: in function <FrameXML\ItemRef.lua:17>
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "@Blizzard_CombatLog\Blizzard_CombatLog.lua"]:3511: in function <...aceBlizzard_CombatLog\Blizzard_CombatLog.lua:3452>
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: in function `SetItemRef'
[string "@FrameXML\ChatFrame.lua"]:3971: in function <FrameXML\ChatFrame.lua:3970>
[string "=[C]"]: in function `ChatFrame_OnHyperlinkShow'
[string "*:OnHyperlinkClick"]:1: in function <[string "*:OnHyperlinkClick"]:1>
[string "=[C]"]: ?
Locals:
self = <table> {
SetDefaultModuleLibraries = <function> defined @CanIMogIt\Libs\AceAddon-3.0\AceAddon-3.0.lua:367
EnterSelectMode = <function> defined @Prat-3.0\modules\CopyChat.lua:650
Enable = <function> defined @CanIMogIt\Libs\AceAddon-3.0\AceAddon-3.0.lua:294
NewModule = <function> defined @CanIMogIt\Libs\AceAddon-3.0\AceAddon-3.0.lua:235
buttons = <table> {
}
EnableModule = <function> defined @CanIMogIt\Libs\AceAddon-3.0\AceAddon-3.0.lua:332
modules = <table> {
}
GetModule = <function> defined @CanIMogIt\Libs\AceAddon-3.0\AceAddon-3.0.lua:210
IterateEmbeds = <function> defined @CanIMogIt\Libs\AceAddon-3.0\AceAddon-3.0.lua:442
ScrapeChatFrame = <function> defined @Prat-3.0\modules\CopyChat.lua:730
SecureHookScript = <function> defined @Accountant_Classic\Libs\AceHook-3.0\AceHook-3.0.lua:410
defaultModuleLibraries = <table> {
}
TimeLeft = <function> defined @DataStore\libs\AceTimer-3.0\AceTimer-3.0.lua:172
hooks = <table> {
}
OnModuleDisable = <function> defined @Prat-3.0\modules\CopyChat.lua:644
RawHookScript = <function> defined @Accountant_Classic\Libs\AceHook-3.0\AceHook-3.0.lua:395
ScheduleRepeatingTimer = <function> defined @DataStore\libs\AceTimer-3.0\AceTimer-3.0.lua:129
CancelAllTimers = <function> defined @DataStore\libs\AceTimer-3.0\AceTimer-3.0.lua:160
baseName = "Prat-3.0"
OnModuleEnable = <function> defined @Prat-3.0\modules\CopyChat.lua:624
GetName = <function> defined @CanIMogIt\Libs\AceAddon-3.0\AceAddon-3.0.lua:279
showbutton = <function> defined @Prat-3.0\modules\CopyChat.lua:825
hidebuttons = <function> defined @Prat-3.0\modules\CopyChat.lua:819
OnTextChanged = <function> defined @Prat-3.0\modules\CopyChat.lua:805
name = "Prat_CopyChat"
CopyChat = <function> defined @Prat-3.0\modules\CopyChat.lua:801
IsEnabled = <function> defined @CanIMogIt\Libs\AceAddon-3.0\AceAddon-3.0.lua:451
orderedModules = <table> {
}
ScheduleTimer = <function> defined @DataStore\libs\AceTimer-3.0\AceTimer-3.0.lua:94
DisableModule = <function> defined @CanIMogIt\Libs\AceAddon-3.0\AceAddon-3.0.lua:350
DoCopyChat = <function> defined @Prat-3.0\modules\CopyChat.lua:775
lines = <table> {
}
MenuScrape = <function> defined @Prat-3.0\modules\CopyChat.lua:738
DoCopyChatArg = <function> defined @Prat-3.0\modules\CopyChat.lua:771
Disable = <function> defined @CanIMogIt\Libs\AceAddon-3.0\AceAddon-3.0.lua:314
HookScript = <function> defined @Accountant_Classic\Libs\AceHook-3.0\AceHook-3.0.lua:366
MakeReminder = <function> defined @Prat-3.0\modules\CopyChat.lua:852
Prat_FramesUpdated = <function> defined @Prat-3.0\modules\CopyChat.lua:638
IsHooked = <function> defined @Accountant_Classic\Libs\AceHook-3.0\AceHook-3.0.lua:493
CopyLink = <function> defined @Prat-3.0\modules\CopyChat.lua:666
GetTime = <function> defined @Prat-3.0\modules\CopyChat.lua:695
IsModule = <function> defined @CanIMogIt\Libs\AceAddon-3.0\AceAddon-3.0.lua:217
db = <table> {
}
SetDefaultModuleState = <function> defined @CanIMogIt\Libs\AceAddon-3.0\AceAddon-3.0.lua:387
GetFormattedLine = <function> defined @Prat-3.0\modules\CopyChat.lua:707
GetDescription = <function> defined @Prat-3.0\modules\CopyChat.lua:634
SetEnabledState = <function> defined @CanIMogIt\Libs\AceAddon-3.0\AceAddon-3.0.lua:424
Hook = <function> defined @Accountant_Classic\Libs\AceHook-3.0\AceHook-3.0.lua:274
enabledState = true
ScrapeFullChatFrame = <function> defined @Prat-3.0
Where does Prat store my chat logs/history that it remembers for x-hours?
I'd like to be able to pull it up before/without logging into the game.
Dear Lucifercatnip, are there any real difficulties in downloading addon updates here on curseforge.com ?
01-10-2022 on wowinterface.com the version of the addon 3.9.2c has become available for download, and here everything is the same without changes, as well as in the CurseForge addon update application.
In reply to Iluvatarglk:
Jon set up the curseforge project to pull directly from Git.
Therefore this would need to be updated with the current link and token.
I don't know what went wrong there but lucifercatnip had no success so far getting it working.
Manual uploads don't work aswell as they are disabled.
I can update Prat on the Git and on WoWI but not here.