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.
Thanks for all of the hard work!
I am noticing one very minor issue. I keep the combat log detached from other windows. Up until the pre-patch, I've had no trouble moving it wherever I want. Now however, I'm noticing that I can not move it all the way to the bottom of the screen - it can only be moved to about a half inch from the bottom of the screen and no further. All of my other chat windows do not have this problem.
Is there some setting that I may be able to tweak in order to be able to move that particular chat window that last half inch to the bottom of the screen?
Thank you in advance.
5 errors upon loading.
Message: ...ddOns\Prat-3.0_Libraries\LibSink-2.0\LibSink-2.0.lua:253: table index is nil
Time: Wed Aug 8 18:07:51 2018
Count: 1
Stack: ...ddOns\Prat-3.0_Libraries\LibSink-2.0\LibSink-2.0.lua:253: table index is nil
...ddOns\Prat-3.0_Libraries\LibSink-2.0\LibSink-2.0.lua:253: in function <...ddOns\Prat-3.0_Libraries\LibSink-2.0\LibSink-2.0.lua:249>
...ddOns\Prat-3.0_Libraries\LibSink-2.0\LibSink-2.0.lua:262: in function `rescanChannels'
...ddOns\Prat-3.0_Libraries\LibSink-2.0\LibSink-2.0.lua:264: in main chunk
Locals: (for index) = 15
(for limit) = 15
(for step) = 2
i = 15
id = false
name = nil
(*temporary) = <table> {
LocalDefense = 3
2 = false
General = 1
4 = false
xtensionxtooltip2 = 5
(null) = "LookingForGroup"
}
(*temporary) = "table index is nil"
wipe = <function> defined =[C]:-1
sink = <table> {
channelMapping = <table> {
}
override = <table> {
}
stickyAddons = <table> {
}
registeredScrollAreaFunctions = <table> {
}
channelMappingIds = <table> {
}
msbt_registered_fonts = <table> {
}
handlers = <table> {
}
frame = <unnamed> {
}
storageForAddon = <table> {
}
}
select = <function> defined =[C]:-1
next = <function> defined =[C]:-1
=======================
Message: Interface\AddOns\Prat-3.0\addon\modules.lua:262: Usage: EmbedLibrary(addon, libname, silent, offset): 'libname' - Library 'LibSink-2.0' is not Embed capable
Time: Wed Aug 8 18:07:51 2018
Count: 1
Stack: Interface\AddOns\Prat-3.0\addon\modules.lua:262: Usage: EmbedLibrary(addon, libname, silent, offset): 'libname' - Library 'LibSink-2.0' is not Embed capable
Interface\AddOns\Prat-3.0\addon\addon.lua:235: in function <Interface\AddOns\Prat-3.0\addon\addon.lua:189>
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?
...AddOns\AskMrRobot\Libs\AceAddon-3.0\AceAddon-3.0.lua:529: in function `InitializeAddon'
...AddOns\AskMrRobot\Libs\AceAddon-3.0\AceAddon-3.0.lua:644: in function <...AddOns\AskMrRobot\Libs\AceAddon-3.0\AceAddon-3.0.lua:636>
Locals: <none>
=====================
Message: Interface\AddOns\Prat-3.0\addon\modules.lua:262: Usage: NewModule(name, [prototype, [lib, lib, lib, ...]): 'name' - string expected got 'nil'.
Time: Wed Aug 8 18:07:52 2018
Count: 1
Stack: Interface\AddOns\Prat-3.0\addon\modules.lua:262: Usage: NewModule(name, [prototype, [lib, lib, lib, ...]): 'name' - string expected got 'nil'.
Interface\AddOns\Prat-3.0\addon\modules.lua:336: in function `AddModuleToLoad'
Interface\AddOns\totalRP3\modules\chatframe\prat.lua:31: in function <Interface\AddOns\totalRP3\modules\chatframe\prat.lua:25>
[C]: ?
...erface\AddOns\totalRP3\modules\module_management.lua:118: in function `startModules'
Interface\AddOns\totalRP3\totalRP3.lua:90: in function <Interface\AddOns\totalRP3\totalRP3.lua:46>
[C]: in function `pcall'
Interface\AddOns\totalRP3\totalRP3.lua:114: in function <Interface\AddOns\totalRP3\totalRP3.lua:111>
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?
...AddOns\AskMrRobot\Libs\AceAddon-3.0\AceAddon-3.0.lua:558: in function `EnableAddon'
...AddOns\AskMrRobot\Libs\AceAddon-3.0\AceAddon-3.0.lua:651: in function <...AddOns\AskMrRobot\Libs\AceAddon-3.0\AceAddon-3.0.lua:636>
[C]: in function `LoadAddOn'
Interface\FrameXML\UIParent.lua:445: in function `UIParentLoadAddOn'
Interface\FrameXML\UIParent.lua:488: in function `CombatLog_LoadUI'
Interface\FrameXML\UIParent.lua:1193: in function <Interface\FrameXML\UIParent.lua:1089>
Locals: <none>
====================
Message: ...ddOns\Prat-3.0_Libraries\LibSink-2.0\LibSink-2.0.lua:253: table index is nil
Time: Wed Aug 8 18:07:53 2018
Count: 1
Stack: ...ddOns\Prat-3.0_Libraries\LibSink-2.0\LibSink-2.0.lua:253: table index is nil
[C]: ?
...ddOns\Prat-3.0_Libraries\LibSink-2.0\LibSink-2.0.lua:253: in function <...ddOns\Prat-3.0_Libraries\LibSink-2.0\LibSink-2.0.lua:249>
...ddOns\Prat-3.0_Libraries\LibSink-2.0\LibSink-2.0.lua:262: in function <...ddOns\Prat-3.0_Libraries\LibSink-2.0\LibSink-2.0.lua:262>
Locals:
===================
Message: (null)
Time: Wed Aug 8 18:07:54 2018
Count: 5
In reply to BambisFaline:
In reply to licwid:
Message: ...ddOns\Prat-3.0-r1171 _Libraries\LibSink-2.0\LibSink-2.0-90103.lua:253: table index is nil
Time: Wed Aug 8 19:19:42 2018
Count: 2
Stack: ...ddOns\Prat-3.0-r1171 _Libraries\LibSink-2.0\LibSink-2.0-90103.lua:253: table index is nil
Locals:
Message: Interface\AddOns\Prat-3.0-r1171 \addon\modules.lua:262: Usage: EmbedLibrary(addon, libname, silent, offset): 'libname' - Library 'LibSink-2.0-90103' is not Embed capable
Time: Wed Aug 8 19:19:41 2018
Count: 1
Stack: Interface\AddOns\Prat-3.0-r1171 \addon\modules.lua:262: Usage: EmbedLibrary(addon, libname, silent, offset): 'libname' - Library 'LibSink-2.0-90103' is not Embed capable
Locals: <none>
Every time i type the word "it" in the text box, or even it comes up in flavor text, "it" becomes highlighted purple. Why is this happening? Other than that, i love this mod.
Do you have a demon hunter, warlock, or some other character in your guild named It?
In reply to Einzbern:
Figured this may be a good place to ask does anyone know how to copy all chat settings from character to character?
In reply to palizangetsu:
In reply to Misteddawn:
https://imgur.com/aIGMBsO
Is this a bug or do I need to deactivate something in the settings?
PD: this is the chat editbox when I'm NOT using it btw.
wrong add-on page sorry
I'm experiencing an error on opening the Chat Formatting tab in options, should I post it here?
As others have said, my "Join General Chat" and "Join Trade Chat" boxes keep getting unchecked. Also, whenever I right click someone's name to whisper or /r to reply to a whisper, the person's name doesn't pop up in my typing box right away. Instead, it does open my typing but it's whatever the most recent channel/whisper/whatever I was currently doing rather than whisper the person I wanted to do. I have to try to whisper to them twice to make it work.
In reply to bushkanaka86:
In reply to bushkanaka86:
In reply to bushkanaka86:
Message: Interface\AddOns\Prat-3.0\modules\History.lua:631: attempt to concatenate a nil value
Time: Sun Aug 5 15:42:22 2018
Count: 50
Stack: Interface\AddOns\Prat-3.0\modules\History.lua:631: attempt to concatenate a nil value
Interface\AddOns\Prat-3.0\modules\History.lua:631: in function <Interface\AddOns\Prat-3.0\modules\History.lua:616>
(tail call): ?
[C]: in function `AddHistoryLine'
Interface\AddOns\Prat-3.0\modules\History.lua:582: in function `addSavedHistory'
Interface\AddOns\Prat-3.0\modules\History.lua:469: in function <Interface\AddOns\Prat-3.0\modules\History.lua:434>
Interface\AddOns\Prat-3.0\modules\Scrollback.lua:66: in function `OnModuleEnable'
Interface\AddOns\Prat-3.0\addon\modules.lua:183: in function <Interface\AddOns\Prat-3.0\addon\modules.lua:174>
[C]: ?
...ccountant_Classic\Libs\AceAddon-3.0\AceAddon-3.0.lua:70: in function <...ccountant_Classic\Libs\AceAddon-3.0\AceAddon-3.0.lua:65>
...ccountant_Classic\Libs\AceAddon-3.0\AceAddon-3.0.lua:527: in function `EnableAddon'
...ccountant_Classic\Libs\AceAddon-3.0\AceAddon-3.0.lua:540: in function `EnableAddon'
...ccountant_Classic\Libs\AceAddon-3.0\AceAddon-3.0.lua:620: in function <...ccountant_Classic\Libs\AceAddon-3.0\AceAddon-3.0.lua:605>
[C]: ?
[C]: in function `LoadAddOn'
Interface\FrameXML\UIParent.lua:445: in function `UIParentLoadAddOn'
Interface\FrameXML\UIParent.lua:564: in function `TimeManager_LoadUI'
Interface\FrameXML\UIParent.lua:1191: in function <Interface\FrameXML\UIParent.lua:1089>
Locals: self = <table> {
OnSubvalueChanged = <function> defined @Interface\AddOns\Prat-3.0\modules\History.lua:531
SetDefaultModuleLibraries = <function> defined @Interface\AddOns\Accountant_Classic\Libs\AceAddon-3.0\AceAddon-3.0.lua:367
RestoreLastSession = <function> defined @Interface\AddOns\Prat-3.0\modules\Scrollback.lua:91
Enable = <function> defined @Interface\AddOns\Accountant_Classic\Libs\AceAddon-3.0\AceAddon-3.0.lua:294
NewModule = <function> defined @Interface\AddOns\Accountant_Classic\Libs\AceAddon-3.0\AceAddon-3.0.lua:235
EnableModule = <function> defined @Interface\AddOns\Accountant_Classic\Libs\AceAddon-3.0\AceAddon-3.0.lua:332
modules = <table> {
}
GetModule = <function> defined @Interface\AddOns\Accountant_Classic\Libs\AceAddon-3.0\AceAddon-3.0.lua:210
IterateEmbeds = <function> defined @Interface\AddOns\Accountant_Classic\Libs\AceAddon-3.0\AceAddon-3.0.lua:442
SecureHookScript = <function> defined @Interface\AddOns\Accountant_Classic\Libs\AceHook-3.0\AceHook-3.0.lua:410
defaultModuleLibraries = <table> {
}
pluginopts = <table> {
}
RawHookScript = <function> defined @Interface\AddOns\Accountant_Classic\Libs\AceHook-3.0\AceHook-3.0.lua:395
GetName = <function> defined @Interface\AddOns\Accountant_Classic\Libs\AceAddon-3.0\AceAddon-3.0.lua:279
name = "Prat_History"
IsEnabled = <function> defined @Interface\AddOns\Accountant_Classic\Libs\AceAddon-3.0\AceAddon-3.0.lua:451
orderedModules = <table> {
}
DisableModule = <function> defined @Interface\AddOns\Accountant_Classic\Libs\AceAddon-3.0\AceAddon-3.0.lua:350
db = <table> {
}
baseName = "Prat-3.0"
addSavedHistory = <function> defined @Interface\AddOns\Prat-3.0\modules\History.lua:575
AddHistoryLine = <function> defined @Interface\AddOns\Prat-3.0\modules\History.lua:616
SetDefaultModulePrototype = <function> defined @Interface\AddOns\Accountant_Classic\Libs\AceAddon-3.0\AceAddon-3.0.lua:409
HookScript = <function> defined @Interface\AddOns\Accountant_Classic\Libs\AceHook-3.0\AceHook-3.0.lua:366
UnhookAll = <function> defined @Interface\AddOns\Accountant_Classic\Libs\AceHook-3.0\AceHook-3.0.lua:477
Prat_PostAddMessage = <function> defined @Interface\AddOns\Prat-3.0\modules\Scrollback.lua:116
IsHooked = <function> defined @Interface\AddOns\Accountant_Classic\Libs\AceHook-3.0\AceHook-3.0.lua:493
SecureHook = <function> defined @Interface\AddOns\Accountant_Classic\Libs\AceHook-3.0\AceHook-3.0.lua:336
DelayGMOTD = <function> defined @Interface\AddOns\Prat-3.0\modules\H