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...
Adds new variable <spellrank>
When you add a new spell, the default sample message now demonstrates every possible substitution variable: [player] is casting [spellname] ([spellrank]) on [targetrace] [targetclass] [target|myself], while my pet, [pet], is by my side.
If you use the general SpeakinSpell option to Report Detected Events, it will now also use that same message to demonstrate the way those variables will be replaced when SpeakinSpell detects each spell it detects.
The main feature added in 3.1.1.01 is an option for advanced users (or stumped users) to show debugging messages. You can use it to get some insight into how SpeakinSpell detects spell casting events and processes messages. If you're confused about why a certain proc effect isn't detected, and Report Detected Events isn't helping you, then you can turn on Show Debugging Messages in the interface options panel (under SpeakinSpell settings) to see a lot more information about what SpeakinSpell sees and what it's thinking. In order to use this option effectively, I recommend making your chat window very big.
I have more big plans coming if I ever find time to work on them.
The settings in SpeakinSpell are saved separately per each character that uses it. So all you have to do is type "/ss options" and then edit the message list on each character to suit your tastes.
The default settings for rez spells use the same 50 or so messages for all rez spells for all applicable classes, but those are just default settings. You can change the list of messages that will be used for each spell for each character by typing "/ss options" and editing the list you find there. The changes you make will only apply to the character you're logged into at the time, so you can set up a different list of messages for every character you have.
"/ss options" still works, to reach the general settings, but the speeches are now controlled through a sub-category in the options GUI, and "/ss messages" will take you there directly.
Also getting back to the original post on this tangent thread, Entering Combat is now a detected event, you can find it under System Events.
Delivering a killing blow is still not detected. That's a little trickier for me to work out. It remains on my list of things to add in the future.
Also, is there a way to configure events such as entering combat or delivering a killing blow?
Other than that, I think this addon is great! Thanks for all the hard work!
Not at this time, but those are great ideas!
\\World of Warcraft\WTF\Account\<Your Account Name>\<Realm>\<Character>\SavedVariables\SpeakinSpell.lua
You can edit that file in any text editor, but there are a few things to beware of.
Beware that some text editors like Windows Notepad will attempt to save the file as SpeakinSpell.lua.txt which will not work with the game client. If that's the case, you will have to rename it back to SpeakinSpell.lua. The three letter file extension matters, and the default settings in Windows for newb users is to hide those extensions, so you might not have any idea what I'm talking about, and might not even see a file called "SpeakinSpell.lua" - for you it might say only "SpeakinSpell". I don't want to make this post too long getting into explaining how that works, so if you're not that advanced of a computer user, maybe stick to the in-game interface, or maybe look into learning more about advanced tricks in windows.
Another thing to beware is LUA programming syntax. What you are editing in this file will be executed by Blizzard's LUA interpreter as-is, like the source code to a computer program, which it is. If you accidentally delete a comma from the end of a line or something like that, the game will not understand what the program code means exactly, so it will have an error and it won't be able to load your settings. As a fall-back to recover from the error, it will automatically erase and reset your settings to the defaults so that it can load it without errors. I have managed to do that to myself a number of times by trying to edit this kind of thing by hand, which is actually half the reason I created the in-game editor LOL.
That said, it's really not complicated to understand how the LUA syntax works, and it's pretty easy to do as long as you're careful. Here is a sample of what the code looks like, showing 2 spells from my main (and showing off some of the default mage settings in the current version)
[code] <br />SpeakinSpellSavedData = { <br /> ["ShowSpellEvents"] = false, <br /> ["SpellTable"] = { <br /> ["portal: ironforge"] = { <br /> ["Messages"] = { <br /> "Entering this portal will take you to a far away city.", -- [1] <br /> "Why go to Ironforge when we can summon Ironforge to us? Click to summon the city.", -- [2] <br /> "Ironforge? Really? Why would you want to go there? Honestly, do you know who LIVES there??", -- [3] <br /> "Focus <player>, they want to go to Ironforge, not the middle of the ocean, Ironforge...", -- [4] <br /> "DISCLAIMER: I got my portal license off the AH. Use at your own risk.", -- [5] <br /> "... Chevron six encoded... Chevron seven LOCKED!", -- [6] <br /> "Here's your portal. That'll be 2500g please. Hey the reagent isn't cheap... oh wait, yes it is, nevermind.", -- [7] <br /> "Next stop: Ironforge. Home to all things great and small.", -- [8] <br /> "Hi ho, Hi ho, it's off to Ironforge we go!", -- [9] <br /> "Hurry up and go through the portal. The last person who waited too long lost his arm as it closed.", -- [10] <br /> }, <br /> ["Channels"] = { <br /> ["Raid"] = "RAID", <br /> ["Solo"] = "SAY", <br /> ["Party"] = "PARTY", <br /> }, <br /> ["Faction"] = "Alliance", <br /> ["WhisperTarget"] = false, <br /> ["Cooldown"] = 0, <br /> ["Frequency"] = 1, <br /> }, <br /> ["summon water elemental"] = { <br /> ["Messages"] = { <br /> "Yes, I AM a God!", -- [1] <br /> "Let me introduce you to my little friend.", -- [2] <br /> "Water never tasted so good", -- [3] <br /> "Water: from the glass to the blast", -- [4] <br /> }, <br /> ["Channels"] = { <br /> ["Solo"] = "SAY", <br /> ["Party"] = "SAY", <br /> }, <br /> ["WhisperTarget"] = false, <br /> ["Cooldown"] = 0, <br /> ["Frequency"] = 1, <br /> }, <br /> }, <br /> ["Version"] = "3.0.3.25", <br />} <br />[/code]
\\World of Warcraft\WTF\Account\\\\SavedVariables\SpeakinSpell.lua
that should have said:
\\World of Warcraft\WTF\Account\[your account name]\[Realm]\[Character]\SavedVariables\SpeakinSpell.lua
thank you so much!!!!!
any way to edit things when you are offline? my roommate and i both use this, and have been scouring our brains, and the internet, for things to add to our taunts (we both have tanks - and we both intend to fill to 50!!!), for my main with her various hunter things, etc. it keeps us from going stir-crazy during patch day. but its gonna be a pain in-putting line by line, and logging to the various 'toons we have. plus, it would make it easier to swap spell lists.
just curious. =)
This also applies in cases where you cast a spell through an addon that does the targetting for you (i.e. Healbot, Decursive, etc). Or if you don't have any target selected, then you click to cast a spell, and you get the special spell-casting cursor, then you click on a target player to actually cast the spell... As often as possible, [target] in a SpeakinSpell message will always show your spell's target per each spell casting event... given the many ways it is possible to target things and cast spells, that is not guaranteed to be your currently selected target. You want SpeakinSpell to announce the target of your spell each time you cast the spell, and that's what [target] already does for you, without making you manually type in something different like [focustarget]
That said, there are some cases where Blizzard's addon framework is bugged and the spell's target information is not provided by the framework to the SpeakinSpell addon. This includes a short list of spells that are known to be bugged in this way (for example the warlock summoning spell was bugged like this before Blizzard changed it to conjure a summoning stone, which is now a spell that no longer has a target) as well as any case of casting a spell on a dead player who already released her spirit (i.e. rez spells) as well as non-targettable spells like a warrior's Shield Wall which doesn't technically have a target. It's just something that happens, not something that happens TO ANYBODY. In those cases, whenever SpeakinSpell doesn't know the name of the target of a spell for any reason, it will use your currently selected target's name if possible, but that's just a fall-back to work around Blizzard's bug.
Take a look at the in-game user's manual "/ss help" under the chapter called "Advanced Target Information" for more information.
That's interesting, thanks for the bug report. I can see how Windfury is a little different than the proc effects that I tested against. I'll have to investigate further and see if I can find a way to enhance SpeakinSpell to work with Windfury. I imagine there are some other similar abilities which would suffer from the same limitation in SpeakinSpell.