SpeakinSpell
Funny and/or Useful, SpeakinSpell will use random speeches in chat to announce when you use spells and other abilities, as well as items, procced effects, other events, and user-defined macros. Works with all classes. Configurable for many different situations.
Possible Uses
- Entertain yourself, your guild, and your PuGs
- Roleplay
- Tell your raid that you got an important debuff
- Tell your arena team that you're CC'd
- Whisper your target about a short term buff
- Congratulate your guild members on achievements
- Randomize your battle cries
- More
Main Features
- Can detect over 5000 "Events" and automatically announce them in the chat using a random selection from a list of user-defined speeches, including:
- Spells you cast
- All other abilities for any class (a warrior's Heroic Strike is also technically considered a "spell")
- Anything you can equip in your action bar
- Items
- Procced effects (buffs that you receive from yourself)
- Combat events (enter/exit combat, scored a crit, killing blow, etc)
- Talking to NPCs and other game objects like mailboxes
- Achievements
- Other events (Login, Changed Zone, etc)
- whenever you type "/ss macro something" (create your own event)
- Records more event hooks as it discovers more spells, buffs, and debuffs, etc the longer you use it.
- Each spells' random speeches can be directed to any chat channel you choose
- Supports different channel options (or silent) in different scenarios: solo, party, party leader, raid, raid leader, raid officer, BG, arena, and Wintergrasp.
- Also supports built-in emotes and most other slash commands (/cheer, /script, etc)
- Fully configurable through the interface options panel. (type "/ss" to get started)
- Includes some default example speeches for at least a few spells for all classes.
- These are only meant to serve as examples. In general, very few default speeches are available for most classes, so you may not see it do anything for you right away. You should look at the list of possible event hooks under "/ss create" and write your own speeches.
F.A.Q.
How do I make a backup copy of my SpeakinSpell data?
I recommend making a backup of your SpeakinSpell data frequently. All of your speeches for all characters are stored here: C:\Users\Public\Games\World of Warcraft\WTF\Account\<your name>\SavedVariables\SpeakinSpell.lua
How do I erase all the defaults and start from a clean slate?
Type "/ss eraseall" to erase all your data. This includes any defaults as well as any custom speeches you've written.
How do I find the spell or other event that I want to change in this huge list?
Cast the spell, or trigger the event, then type "/ss recent" then use the click-able links in your chat frame to [Edit Speeches] or [Setup New Event].
How do I stop it from announcing this spell or other event?
Cast the spell, or trigger the event, then type "/ss recent" then use the click-able links in your chat frame to [Edit Speeches] for that event... then click the button that says "Delete this event"
OMG this is so complicated!
Hey! That's not a question! It's a common complaint though, and I'm open to specific suggestions about what you find is too complicated, or confusing, or could be made easier, more intuitive, or more user-friendly. With great power comes great complexity. Everything is labeled with detailed tooltips, and there's a detailed user manual built-in (/ss help) and online to help you out. I also usually answer questions within 24 hours.
Aetharan has also written some nice guides here: http://tinyurl.com/a64sst4
Usage Instructions
How to setup SpeakinSpell in a few easy steps:
- Login and play your toon for a few minutes.
- Activate any abilities, trigger any procced effects, and encounter any other detectable events that you would like SpeakinSpell to announce.
- Type "/ss" to access the interface options panel
- Click on "Create New..." or type "/ss create" to create settings for a new spell or other event
- Select the desired spell or event from the list and click the Create button. You will be taken to the settings page for that spell or event.
- Change the settings to your tastes and write as many speeches as you want. Now whenever you cast that spell or encounter that event, SpeakinSpell will say one of your random messages for that event, using the channels and other rules that you defined.
- Repeat until you run out of ideas for new announcements to write.
Spammy Setup Guides Method
- Type "/ss guides" to enable Setup Guides (there's also a checkbox for it under "/ss options")
- Do stuff with your toon
- Observe that the spammy Setup Guides are reporting all 5k+ of every event that SpeakinSpell detects and could possibly announce
- Click on the clickable links in your chat frame to [Setup New Event] announcements (equivalent to using "/ss create") or [Edit Speeches] for event hooks you already configured (equivalent to using "/ss messages")
- Type "/ss guides" again to turn the Setup Guides back off
- At any time you wish you had the Setup Guides enabled to catch a special proc effect or something, type "/ss recent" to see Setup Guides for the last 5 events detected, and last 5 events announced.
Type "/ss help" for the in-game user's manual for complete, thorough instructions for how to make the most of every feature SpeakinSpell has to offer. It's designed for maximum flexibility.
Additional Features
- Supports over 50 substitutions in your speeches, such as <caster>, <target>, <zone>, <spellname>, <party2pettarget> and many more.
- <spelllink> will create a clickable link to the spell or achievement (for applicable events)
- All of these substitutions also support first person pronoun forms (to say "me" instead of my own name), gender forms, and possessive forms, to make your automated macros sound less like macros and more like natural speech
- Also includes random substitutions like <randomfaction> (like Mad Libs™) and you can create your own random substitution word lists.
- Up to 100 speeches can be entered per spell.
- Never says the same message for a given spell twice in a row (unless you only have 1 message defined for that spell)
- Can be configured to limit your chat spam in several ways
- based on a cooldown between automated speeches in chat
- based on a random chance to speak or not
- optionally limited to once per combat
- optionally limited to once per target name
- based on a global cooldown
- Can whisper messages to the target of your spell (This can be useful for resurrect style spells, innervate, power infusion, etc.)
- When you get compliments on your "macros" use "/ss ad" to tell your friends about SpeakinSpell. Some of the random ads are funny. Yes, it's an addon that spams random text in chat, and it has a feature to spam random text to advertise it's ability to spam random text. "/ss help" in game for more advanced options for using /ss ad.
- Detection of "other events" such as Login, entering combat, changed zone, and more. Type "/ss help" in game for the complete list.
- Custom Defined User Macros. Type "/ss macro something" to make SpeakinSpell detect a pseudo spell event called "When I type: /ss macro something" which you can setup to be announced with random speeches like a spell. This can be used for randomized battlecries (/ss macro battlecry), greetings (/ss macro hi), farewells (/ss macro bye), or anything you want to define (/ss macro _blank_).
- Share your speeches with your friends through the Data Sharing system
- type "/ss import" to browse the shared content you collected from others and add it to your settings (works for copying from your alts too)
- type "/ss network" for options
- type "/ss help" for help.
- Easter Egg ... there's a mildly amusing little story hidden away somewhere in an obvious place where you will never look for it ... yes, I do actually have a lot of time on my hands ...
More Information
SpeakinSpell has many more features than those listed above.
Click here for the Complete User's Manual, or type "/ss help" in-game for the same info. NOTE: If "/ss help" doesn't work, you may have an installation error, or you may have too many addons installed. Try right-clicking the minimap button, or hitting: Escape > Interface > Addons > SpeakinSpell.
Please submit a ticket for any problems, bug reports, or feature requests, or feel free to post in the comments below (but tickets are easier for me to remember to fix).
Submissions Welcome. To submit content including the witty random speeches you wrote, please read this. If you are a translator with better translations, please use this localization tool.
More Technical Information: If you're a programmer interested in understanding more about how SpeakinSpell works, read the SDD.doc in the SpeakinSpell addon folder. It's a software design document in the (compatible) MS Word 97 file format with details about the system architecture.
Aetharan's Tutorials for advanced tips and tricks: http://tinyurl.com/4ptc2xg
Petit tutoriel en Français http://abz.progp.net/wow/Tutoriel_SpeakinSpell.pdf
en Français a Youtube http://www.youtube.com/watch?v=f62eE6rzAFA
The official SpeakinSpell Forum http://www.rismisner.com/forum/viewforum.php?f=3 - Unfortunately, the SpeakinSpell forum is currently disabled because it received an excessive amount of spam advertisements (about 80 per day and only about 1 real post per month for 2 months). I will need help or time to learn how to adequately block advertisers before re-opening it.
Credits
SpeakinSpell was created by...
- Stonarius of Antonidas
Additional coding by...
- Duerma
Primary Beta Testing, Arena Team Pwnage, Key Grip...
- Meneldill
Translators...
- German: leXin (inactive)
- Korean: troth75 (inactive)
- French: contrebasse, An_Braz
Many of the default speeches were blatantly stolen from...
- Cryolysis2
- Necrosis
- LunarSphere
- Ultimate Warcraft Battlecry Generator
- RPHelper2
Thanks for the open license guys! I hope you like what I did with it.
Additional Content Packs Written by...
- Stonarius
- Meneldill
- leXin
- troth75
- Folji
- Dire Lemming
- Duerma
Special thanks to the authors of these addons that I used for copy-paste... *Ahem* I mean example code...
- Titan
- Omen
- Recount
- Healbot
- Mountiful
- WinterTime
- the WowAce libs
- RPHelper2
Additional thanks to...
- Blizzard Entertainment for this great game! ... hire me??
- The community on the wowace forums
- curse.com
- Microsoft Visual Studio, SubVersioN, and TortoiseSVN
- Texas Instruments for enabling E.T. to phone home
- The Order of the Stick
- Mom and Dad
- YOU!!
SpeakinSpell is made from 83% Recycled Materials.
No animals were harmed in the making of this addon.
... Well, the hunter popped a sheep with his aoe, but I resheeped with my /cast [target=focus] macro, and automatically said "Baaah! sheeped again <target>?!" and it was all good...
That /run command is basically what SpeakinSpell does in the LUA code, but with a GUI wrapped around it. If a SpeakinSpell speech starts with "/" then instead of sending it through SendChatMessage, SS opens an invisible chat entry box and sends the text to the game engine as if you hit Enter and typed it manually (in order to make the game engine execute the slash command).
If we're talking about a speech generated by SpeakinSpell then "/t <focus> trick of the trade on you" should work. It will substitute your focus' name, ex. Stonarius, before sending it to the chat, so it becomes "/t Stonarius trick of the trade on you" before it goes to the game engine, so it should work. /w should also work the same way, it makes no difference, i just personally tend to use /t instead.
If you're saying that doesn't work, I'll have to double-check that it works for me.
Obviously (maybe not so obvious?) if you hit enter and manually type in "/t <focus> tricks of the trade on you" then SS isn't doing anything with that to substitute a name for <focus> ... that only works in a Random Speech that is said by SpeakinSpell.
Note if it's a X-realm player, the game engine fails on "/t Stonarius-Antonidas trick of the trade on you" and will say there's no player named Stonarius. I'm holding out for Blizzard to fix that.
Also, since you're whispering to the target of tricks of the trade, "/t <target> trick of the trade on you!" should also work, and so should the checkbox in the GUI to "[X] whisper to your <target>" (then you can leave out the "/t <target>" part of your speech and let SpeakinSpell deal with it via the checkbox option)
In all cases in SpeakinSpell, your <target> is the target OF THE SPELL, not necessarily your selected target. So if you're casting a spell on your focus, your <focus> is your <target> and both substitutions mean the same thing in that context.
Aside for added detail: a warrior once asked me why <target> didn't work when he cast Shield Wall, and I told him its because the target of shield wall is him, the <player>. So that seems to be a common misconception. <target> in SpeakinSpell is a smart value meaning the actual real target of the spell, not directly equivalent to UnitName("target") which is your selected target, which isn't necessarily the target of your spell.
If you want to specify your SELECTED TARGET, which is not necessarily the target of your spell, then you can use <selected> instead of <target> or <focus>. <selected> is equal to UnitName("target") and may not be the target of your spell, if you're focus casting or using macros or other addons to cast your spells, so <selected> will always be the name of the target you have selected. There's a chapter on this topic in the in-game help because there are a lot of different ways to target and cast spells in WoW.
Note also that to make SpeakinSpell work for this purpose, you also have to select a non-silent channel for your scenario, ex. "In a Raid", or I'll think you want SS to shut up when you're in a raid. So pick the "say" channel or something, even though you don't actually want it to use the say channel, because the "/t <focus>" at the start of a speech (random speech 1 or whatever) will override that.
The checkbox to "[X] Whisper to my <target>" is independant of the selected channel, so if you select the "silent" channel and check the box for "Whisper to my <target>" then it will still whisper in all scenarios.
The portal thing with alliance portals appearing as a horde mage has been resolved as well.
Everything is working handy dandy like it should thanks.
Ill let ya know if i come across any problems.
my WoW client laggs and freezes for about 10 seconds. This mostly occurs when im trying to go to the message settings.
Im also having a problem trying to delete the default speech's for some of the spells. When i search for them, it cant find them. Instead its wanting me to create a new event, when i want to replace the ones already there.
Ie: all the portal spells, invisibity.
Am I right in guessing you have "show more than 100 search results" turned on? I found a problem with that, so I capped it at max 200 search results in the new version. It's possible if you have the blizzard options set to hide LUA errors (or some other addon hiding LUA errors) a memory overflow in the GUI code, which would throw a LUA error, would have caused the symptoms you described. The new version 3.3.0.05 should fix that.
But i am still having a slight problem doing searches in message settings.
I turned on my error messages. And i get an error everytime i do a search. It wont let me copy what it says. So im going to try and type out the important info.
Message: Interface/AddOns/SpeakinSpell/data.lua:214: bad argument #1 to 'lower' (string expeected, got nil)
Count 1
Stack: (tail call): ?
Im still also having trouble finding the default speeches. Such as the portal speeches. Im doing every search possible. the only spells that come up is portal spells that he doesnt possess (ie. Alliance portals while the character is horde)
i want to change what he says when he begins casting portals to places such as silvermoon and Ogrimmar. (One of my character's Orc friends got insulted from one of them lol)
However, a couple of things are still troubling me about this, and it sounds like something is unexpectedly wrong in your saved data, so you may still have problems. My repair to this LUA error may have only moved the problem... to make a long story short, I hope my repair in .06 is enough to fix it for you, but I'm concerned the root cause of the problem is that somehow you are missing data. At least one detected event name has mysteriously disappeared from your data (maybe more than one, maybe somehow all of them /shrug). That detected event name should be guaranteed to exist after a validation function runs at load time, but somehow that function didn't run, or it didn't have its intended effect... so something is wrong with your saved data. You won't get an error from it in the search function of the GUI because of the repair in .06, but a similar error may pop up somewhere else now. Please let me know if you still have problems.
I hope the oddity with alliance portals coming up for you as a horde mage also goes away as a result of making the LUA errors go away, but that's also a mystery: how'd you get alliance portals into your saved settings as a horde mage?
Sorry if this tip is like "yeah, duh" but just to make sure you understand:
"/ss messages" - is the GUI for editing your active speeches and event hooks - this is where you want to look for the speech you're trying to change/delete.
"/ss create" - is the GUI for adding new event triggers. If this is where you're looking for the speeches you want to change, then you're in the wrong place (and it would explain why you see alliance portals). Go to "/ss messages" instead (or at least check the box for "show used event hooks)
Thank you! The new version 3.3.0.04 should fix this........ I hope!
Report ErrorMsg -- Turn all off Addon without Speakinspell
Message: Interface\AddOns\SpeakinSpell\oldversions.lua:283 bad argument #1 to 'pairs' (table expected, got nil)
Time: 12/16/09 10:58:19
Count: 1
Stack: [C]: in function `pairs'
Interface\AddOns\SpeakinSpell\oldversions.lua:283 in function `FixOld_31205_ImportSpellTable'
Interface\AddOns\SpeakinSpell\oldversions.lua:836 in function `func'
Interface\AddOns\SpeakinSpell\oldversions.lua:942 in function `ApplyPatches'
Interface\AddOns\SpeakinSpell\data.lua:693 in function `ValidateAllSavedData'
Interface\AddOns\SpeakinSpell\SpeakinSpell.lua:73 in function `OnVariablesLoaded'
Interface\AddOns\SpeakinSpell\wowevents.lua:86 in function `?'
...ell\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:146 in function <...ell\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:146
[string "safecall Dispatcher[1]"]:4: in function <[string "safecall Dispatcher[1]"]:4>
[C]: ?
[string "safecall Dispatcher[1]"]:13: in function `?'
...ell\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:91 in function `Fire'
...dOns\SpeakinSpell\Libs\AceEvent-3.0\AceEvent-3.0.lua:119 in function <...dOns\SpeakinSpell\Libs\AceEvent-3.0\AceEvent-3.0.lua:118
Locals: (*temporary) = nil
(*temporary) = "table expected, got nil"
= <function> defined =[C]:-1
Fix that error Plz...
Your English is much better than my Korean! :)
I think your error report is missing something from the beginning.
Your error message shows a stack. The top of your stack shows this:
oldversions.lua:942 in function `ApplyPatches'
There should be something on top of that on the stack to show what is actually wrong. Usually it says something about a nil value. Please check your error message again for anything that you might have missed when you copy-pasted.
Hello...
I'm use Korean Client.
I Can't use Speakinspell.. (T.T)
My client Err Message below
Interface\AddOns\SpeakinSpell\oldversions.lua:942 in function `ApplyPatches'
Interface\AddOns\SpeakinSpell\data.lua:693 in function `ValidateAllSavedData'
Interface\AddOns\SpeakinSpell\SpeakinSpell.lua:73 in function `OnVariablesLoaded'
Interface\AddOns\SpeakinSpell\wowevents.lua:86 in function `?'
...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:147 in function <...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:147
[string "safecall Dispatcher[1]"]:4: in function <[string "safecall Dispatcher[1]"]:4>
[C]: ?
[string "safecall Dispatcher[1]"]:13: in function `?'
...Ons\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:92 in function `Fire'
Interface\AddOns\Ace3\AceEvent-3.0\AceEvent-3.0.lua:120 in function <Interface\AddOns\Ace3\AceEvent-3.0\AceEvent-3.0.lua:119
ps. Sorry...my Engligh is poor.
Translators, plz!
Unfortunately, my French is not very good, and otherwise, I only speak English, so I rely on volunteers to translate for me.
Add to that, my Korean translator, troth75, quit WoW a few months ago, and my German translator leXin has been very busy with school for a few months, so those translations have fallen out of date. leXin told me he would catch up eventually, and he skyped me a youtube video link last week, so I know he's still alive and I still think he'll come back and update the German eventually, but I don't know when, and I don't have a new Korean translator lined up at all.
If you'd like to help with the translation into Korean, German, or any other language, I would be more than happy to work with you.
I suppose I could take a stab at running the locale files through the google translator, but I don't know how good that would be.
EDIT: I just noticated the Localization support offered by the wowace site. I'll start setting that up.
Localization files, plz !
-- line 13
L["Expand this help library and select a topic below for more information."] = [[좀더 많은 정보를 위해 이 도움 라이브러리를 확장하고 아래 주제를 선택하세요.]]
That occurs error massage. I think you should remove this line.
Thanks for amazing addon.
3.3.0.02
---------
Removed the Raid Warning channel option from 5-man scenarios
Blizzard disabled Raid Warnings in 5-mans in 3.3.0
Your SpeakinSpell data will be updated to use Party chat instead, if applicable
Added a safety check for a nil value (LastPageViewed)
Added a patch function to fix duplicate Enter/Exit combat events
"ZOMGpotatoes", -- [1]
with a few lines of:
"", -- []
and going on from there, entering speeches and numbers... since you had it merge all the separate files into one singular file, it makes it alot easier to edit... i learned my lesson well! Having multiple SpeakinSpell.lua files open in Crimson Editor gets confusing (remember those paladin phrases i said were missing? they were in the backup file i made... >.<!)