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.
In reply to TheGlazey:
In reply to sylvanaar:
Hi, this error occurs everytime i try to type something in chat or when clicking stuffs in the chatbox.
Interface\AddOns\Prat-3.0\modules\Editbox.lua:822: attempt to concatenate local 'chan' (a nil value)
Time: Wed Jul 25 19:58:22 2018
Count: 11
Stack: Interface\AddOns\Prat-3.0\modules\Editbox.lua:822: attempt to concatenate local 'chan' (a nil value)
Interface\AddOns\Prat-3.0\modules\Editbox.lua:822: in function <Interface\AddOns\Prat-3.0\modules\Editbox.lua:811>
(tail call): ?
Interface\FrameXML\ChatFrame.lua:3984: in function `ChatEdit_ResetChatType'
Interface\FrameXML\ChatFrame.lua:3965: in function `ChatEdit_OnShow'
[string "*:OnShow"]:1: in function <[string "*:OnShow"]:1>
[C]: in function `Show'
Interface\FrameXML\ChatFrame.lua:4023: in function `ChatEdit_ActivateChat'
Interface\FrameXML\ChatFrame.lua:3654: in function `ChatFrame_OpenChat'
[string "OPENCHAT"]:1: in function <[string "OPENCHAT"]:1>
Locals: self = <table> {
ChatEdit_SetLastActiveWindow = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:776
SetDefaultModuleLibraries = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:367
Enable = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:294
NewModule = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:235
FCF_Tab_OnClick = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:750
EnableModule = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:332
modules = <table> {
}
GetModule = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:210
IterateEmbeds = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:442
SecureHookScript = <function> defined @Interface\AddOns\BigDebuffs\libs\AceHook-3.0\AceHook-3.0.lua:410
defaultModuleLibraries = <table> {
}
RawHookScript = <function> defined @Interface\AddOns\BigDebuffs\libs\AceHook-3.0\AceHook-3.0.lua:395
LibSharedMedia_Registered = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:601
GetName = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:279
SetAttach = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:864
name = "Prat_Editbox"
IsEnabled = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:451
orderedModules = <table> {
}
DisableModule = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:350
baseName = "Prat-3.0"
GetDescription = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:770
HookScript = <function> defined @Interface\AddOns\BigDebuffs\libs\AceHook-3.0\AceHook-3.0.lua:366
frames = <table> {
}
SecureHook = <function> defined @Interface\AddOns\BigDebuffs\libs\AceHook-3.0\AceHook-3.0.lua:336
IsHooked = <function> defined @Interface\AddOns\BigDebuffs\libs\AceHook-3.0\AceHook-3.0.lua:493
SetBorderByChannel = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:811
SetBackdrop = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:792
IsModule = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:217
db = <table> {
}
SetDefaultModuleState = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:387
ChatEdit_DeactivateChat = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:785
OnModuleDisable = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:757
SetEnabledState = <function> defined @Interface\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:424
Hook = <function> defined @Interface\AddOns\BigDebuffs\libs\AceHook-3.0\AceHook-3.0.lua:274
enabledState = true
OnModuleEnable = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:702
Prat_FramesUpdated = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:674
PL = <table> {
}
hooks = <table> {
}
SetDefaultModulePrototype = <function> defined @Interface\AddOns\DataStore\libs\
Is there a way to disable the Blizzard Voice buttons around the chat? Everything else is perfect but can't seem to get rid of those.
In reply to Menc:
In reply to Forge_User_68261072:
In reply to Menc:
In reply to Menc:
I can no longer click on people's names to send them tells. Got the following error tonight clicking on someone's name:
-----
Date: 2018-07-24 23:01:58
ID: 1
Error occured in: Global
Count: 1
Message: ..\AddOns\Prat-3.0\modules\Editbox.lua line 822:
attempt to concatenate local 'chan' (a nil value)
Debug:
Prat-3.0\modules\Editbox.lua:822:
Prat-3.0\modules\Editbox.lua:811
(tail call): ?
..\FrameXML\ChatFrame.lua:3984: ChatEdit_ResetChatType()
..\FrameXML\ChatFrame.lua:3965:
..\FrameXML\ChatFrame.lua:3964
(tail call): ?
[string "*:OnShow"]:1:
[string "*:OnShow"]:1
[C]: Show()
..\FrameXML\ChatFrame.lua:4023:
..\FrameXML\ChatFrame.lua:4011
[C]: ?
[C]: ChatEdit_ActivateChat()
..\FrameXML\ChatFrame.lua:3654: ChatFrame_OpenChat()
..\FrameXML\ChatFrame.lua:3728:
..\FrameXML\ChatFrame.lua:3720
WIM\Sources\Hooks.lua:117: ChatFrame_SendTell()
..\FrameXML\ItemRef.lua:62:
..\FrameXML\ItemRef.lua:1
[C]: ?
[C]: ?
...ace\AddOns\Blizzard_CombatLog\Blizzard_CombatLog.lua:3510:
...ace\AddOns\Blizzard_CombatLog\Blizzard_CombatLog.lua:3452
[C]: SetItemRef()
..\FrameXML\ChatFrame.lua:3620:
..\FrameXML\ChatFrame.lua:3619
[C]: ?
[C]: ?
[C]: ?
[C]: ?
[C]: ChatFrame_OnHyperlinkShow()
[string "*:OnHyperlinkClick"]:1:
[string "*:OnHyperlinkClick"]:1
[C]: ?
Locals:
self = <table> {
ChatEdit_SetLastActiveWindow = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:776
SetDefaultModuleLibraries = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:398
Enable = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:325
NewModule = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:266
FCF_Tab_OnClick = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:750
EnableModule = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:363
modules = <table> {
}
GetModule = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:241
IterateEmbeds = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:473
SecureHookScript = <function> defined @Interface\AddOns\Ace3\AceHook-3.0\AceHook-3.0.lua:410
defaultModuleLibraries = <table> {
}
RawHookScript = <function> defined @Interface\AddOns\Ace3\AceHook-3.0\AceHook-3.0.lua:395
LibSharedMedia_Registered = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:601
GetName = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:310
SetAttach = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:864
name = "Prat_Editbox"
IsEnabled = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:482
orderedModules = <table> {
}
DisableModule = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:381
baseName = "Prat-3.0"
GetDescription = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:770
HookScript = <function> defined @Interface\AddOns\Ace3\AceHook-3.0\AceHook-3.0.lua:366
frames = <table> {
}
SecureHook = <function> defined @Interface\AddOns\Ace3\AceHook-3.0\AceHook-3.0.lua:336
IsHooked = <function> defined @Interface\AddOns\Ace3\AceHook-3.0\AceHook-3.0.lua:493
SetBorderByChannel = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:811
SetBackdrop = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:792
IsModule = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:248
db = <table> {
}
SetDefaultModuleState = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:418
ChatEdit_DeactivateChat = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:785
OnModuleDisable = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:757
SetEnabledState = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:455
Hook = <function> defined @Interface\AddOns\Ace3\AceHook-3.0\AceHook-3.0.lua:274
enabledState = true
OnModuleEnable = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:702
Prat_FramesUpdated = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:674
PL = <table> {
}
hooks = <table> {
}
SetDefaultModulePrototype = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:440
UpdateHeight = <function> defined @Interface\AddOns\Prat-3.0\modules\Editbox.lua:923
IterateModules = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:468
UnhookAll = <function> defined @Interface\AddOns\Ace3\AceHook-3.0\AceHook-3.0.lua:477
RawHook = <function> defined @Interface\AddOns\Ace3\AceHook-3.0\AceHook-3.0.lua:313
Unhook = <function> defined @Interface\AddOns\Ace3\AceHook-3.0\AceHook-3.0.lua:418
moduleName = "Editbox"
defaultModuleState = true
Disable = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:345
}
(for generator) = <function> defined =[C]:-1
(for state) = <table> {
1 = <unnamed> {
}
2 = <unnamed> {
}
3 = <unnamed> {
}
4 = <unnamed> {
}
5 = <unnamed> {
}
6 = <unnamed> {
}
7 = <unnamed> {
}
8 = <unnamed> {
}
9 = <unnamed> {
}
10 = <unnamed> {
}
}
(for control) = 3
index = 3
frame = <unnamed> {
0 = <userdata>
}
f = ChatFrame3EditBox {
0 = <userdata>
at3matches = <table> {
}
focusLeft = ChatFrame3EditBoxFocusLeft {
}
focusRight = ChatFrame3EditBoxFocusRight {
}
chatFrame = Cha
For folks having issues, and I see some recent posts with the issues I was having, resetting chat to default fixed everything.
Right click general -> Settings -> Chat Defaults.
To the authors, thank you for maintaining Prat! =)
Apparently I'm the only person who doesn't replace channel names. Since 8.0.1 default channel names don't work.
I have a question..
How can i change the Channel names to look like they do on the standard chat like [2. Trade] or [Guild] without having to write it manually.
And when i use /s that it doesnt show for exemple: instead of [S] [SyNDiKaTa]: Hello [SyNDiKaTa] says: Hello
I tried to type the the standard channel name for all the channels like Raid, Group, Guild, etc. but for /s and /y that doesnt work..
In reply to Forge_User_98098936:
Is Prat colouring our names in chat now?
How do you change the colour? It isn't working with my colourblindness.
In reply to BambisFaline:
Message: Interface\AddOns\Prat-3.0\modules\ChannelSticky.lua:380: attempt to call method 'ResgisterSmartGroup' (a nil value)
Time: Wed Jul 25 00:35:17 2018
Count: 2
Stack: Interface\AddOns\Prat-3.0\modules\ChannelSticky.lua:380: attempt to call method 'ResgisterSmartGroup' (a nil value)
(tail call): ?
Interface\AddOns\Prat-3.0\modules\ChannelSticky.lua:380: in function `OnModuleDisable'
Interface\AddOns\Prat-3.0\addon\modules.lua:190: in function <Interface\AddOns\Prat-3.0\addon\modules.lua:187>
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?
...xternal\Wildpants\libs\AceAddon-3.0\AceAddon-3.0.lua:593: in function <...xternal\Wildpants\libs\AceAddon-3.0\AceAddon-3.0.lua:586>
(tail call): ?
Interface\AddOns\Prat-3.0\addon\addon.lua:351: in function `?'
...face\AddOns\Titan\libs\AceTimer-3.0\AceTimer-3.0.lua:55: in function <...face\AddOns\Titan\libs\AceTimer-3.0\AceTimer-3.0.lua:50>
Locals: <none>
Hi! Posting just in case no one has mentioned it, but i can't seem to import main/alt relations from guildgreet.
Enabling timestamps in Prat removes them from Guild & Communities. Changing the default Blizzard ones does nothing. Timestamps still work in general chat windows.
If I instead disable the timestamps module in Prat and enable the default timestamps it shows up correctly in Guild & Communities. It is however not showing in general chat windows.
Any fix for this?
Greetings,
Have been using Prat as long as I've been playing (BC) and love the chat options it provides...so, firstly...thank you!
However, with the BFA pre-patch, I'm noticing the voice chat icon on the right side of the chat window. I like to hide everything except the tabs and font.
Does anyone know of a way to hide the voice chat icon? Or, is it something you would consider adding as an option?
Thanks!!
To me in the chat I see the scroll bar and the arrow, someone knows how to remove them?