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...
Those are some good feature ideas too.
3.2.0.05 is up... this version basically just brings the Korean language files up to date with the new features.
2 posts down I said...
>> There is a more concise write-up on this feature in the in-game user's manual (/ss help) in chapter 8: Custom Macros.
It's not so concise anymore in 3.2.0.05 since I expanded the documentation in that chapter to describe how to use this to set up spell groups, and how to do one spell with different lists of speeches - topics discussed in the following comments below. Now I think it's a little too wordy so I'll probably fuss with it more some time, but I guess more info is better than less.
Is there a way to prevent this?
If you've been typing "/ss reset" each time you install a new version, stop doing that. That command resets to default settings. This can be useful if you WANT to reset to default settings for some reason, but since you don't want that, don't execute that command and you should be OK.
Your settings are saved to the file:
//World of Warcraft/WTF/Account/Your Name/Realm/Character/SpeakinSpell.lua
If that file has a LUA syntax error (because you edited it by hand?) then it will not load, and WoW will load SpeakinSpell.lua.bak instead (your last known-good settings file that loaded without errors) and if that doesn't work either, then you will end up with defaults.
That file should not be deleted or get corrupted by installing a new version of SpeakinSpell, so I'm not sure what you are doing to make it erase your settings. I hope some of that info helped? If not, please elaborate on how you do the download/install and I'll help you get to the bottom of this.
Anybody else run into this issue?
It -does- always give me a message of 'There is another folder with this name' and the option to 'replace all'. Could that be doing it?
At this point all I can do is guess...
What versions did you install? Do you know the SpeakinSpell version numbers of which versions you installed? If so, I can try going back to those versions and see if I can reproduce your problem from my end, and maybe that would give me some clues.
Are you sure your settings are saved the rest of the time? If you just change some settings in SpeakinSpell then exit and restart the game, are your settings saved as you'd expect? Maybe it has nothing to do with installing a new version of SpeakinSpell, and something else is going on?
SpeakinSpell has a function to update the format of your saved settings from an older version to the current version. I tested it each step of the way, and I did a few limited tests on skipping a bunch of versions to make sure that worked too (supposing you sent several months without installing a new version of SpeakinSpell) so I think those functions should work. But your problem makes me worry there's a problem in my code in that function. Maybe if you go from a certain version to a certain other version it hits a different code path that has a problem? I doubt it but I'm speculating what could be the problem here.
I wonder if you just reinstall the current version on top of itself, does that also erase your saved settings?
Your settings are not saved under the World of Warcraft > Interface > AddOns folder, so replacing your World of Warcraft > Interface > AddOns > SpeakinSpell folder should not have any effect on erasing your settings.
That's all I can think of for now. Sorry it's not a clear-cut answer or solution... if you have any new info to share, I'd be glad to keep working this issue with you. I hope we can resolve it.
I will respect the votes if you vote on the ideas that you like more than others, and try to add the feature ideas with more votes before those with fewer. So go vote for what you want to see in the next version of SpeakinSpell!
http://www.wowace.com/addons/speakinspell/tickets/
As always I am also taking suggestions if you have more ideas for new features or ways you would like SpeakinSpell to work differently, please don't hesitate to create a ticket, or post here and I'll create a ticket out of your suggestion.
I have updated the tickets page to ensure there is a ticket for every feature idea that I have on my list, including every feature or change that's been suggested to me.
I will respect the votes if you vote on the ideas that you like more than others, and try to add the feature ideas with more votes before those with fewer. So go vote for what you want to see in the next version of SpeakinSpell!
http://www.wowace.com/addons/speakinspell/tickets/
As always I am also taking more suggestions if you have more ideas for new features or ways you would like SpeakinSpell to work differently, please don't hesitate to create a ticket, or post here and I'll create a ticket out of your suggestion.
Short answer... manually type into the chat "/ss macro blank" and fill in the blank with any name you want to give it. You will be prompted to create settings for that event. (it's smart enough to only prompt you the first time). That should get you started playing with it.
---A little more long-winded explanation about the /ss macro feature...
The announceable event that is detected by SpeakinSpell is called "When I type: /ss macro something"
Note that the Create New interface (/ss create) will only list events that it has seen before. So it will not list a spell until it sees you cast that spell. It will not show the system event: Entered Combat, until it sees you enter combat at least once. And likewise it will not list the event "When I type: /ss macro something" until you've actually typed "/ss macro something" into the chat at least once.
So type "/ss macro something" into the chat to get started setting this up.
Now "something" in this context can be anything you want, in order to allow you to create any number of custom events where you type "/ss macro [the name of my custom event]"
As an added shortcut assistant feature to this idea, the very first time that you type a new event name in "/ss macro the name of a macro that SpeakinSpell has not seen you type before" ... SpeakinSpell will detect that you've typed in a new macro name that it has not seen before, so it will automatically open the Create New interface (/ss create) to prompt you to setup speeches for that event, because it assumes you're trying to create a new one.
The only required text is the prefix "/ss macro" then a space, then anything else you want to type. It can be one or more words, spaces are allowed, as well as special symbols, and I don't know of any limit to the length.
I hope that makes more sense to you now.
There is a more concise write-up on this feature in the in-game user's manual (/ss help) in chapter 8: Custom Macros. I think once you start playing with it, you'll find it intuitive and easy to use.
Please don't hesitate to speak up if you still have trouble with it, or if you have any questions.
Creating an /ss macro would probably work pretty well for creating one set of messages for several spells and abilities, though there is one problem.
When I select the /ss macro category in the "Create New..." option, the "Select Spell" field shows as empty, and when I try to create the selected event, it returns this error;
SpeakinSpell: ERROR: CreateNew_OnClickCreateNew() - no event selected
As obviously, I haven't selected any event. As there are no events to select under /ss macro
To make an event for a buff or ability that fires message A when playing solo, and message B when in a party, but never vice versa...
I considered several approaches to this, but in order to achieve this in various ways, either the GUI was going to have to get more complicated, or the string parsing would have to get more complicated (and would not be obvious) and I never liked anything I came up with for making this feature happen... and then it occurred to me that it's already possible within the existing feature-set by using /ss macro something
For your event, specify a single message: /ss macro this event when I'm solo<newline>/ss macro this event when I'm grouped
Now each time you encounter this event, it will always trigger two /ss macro events: "When I type: /ss macro this event when I'm solo" and "When I type: /ss macro this event when I'm grouped" (yes it's completely OK for SpeakinSpell to trigger itself recursively like this, as long as "/ss macro something" doesn't call out the same "/ss macro something" which would cause infinite recursion)
Now configure your settings for "When I type: /ss macro this event when I'm solo" to only say anything when you're solo (silent in all other scenarios), and "When I type: /ss macro this event when I'm grouped" to only say anything if you're grouped (silent when solo) ... they can have different speech lists, and you can achieve what you're looking for that way, and achieve totally different settings for the different scenarios in terms of the random chance, cooldown, limit once per combat, etc.
A similar approach will work for setting up a set of events to share the same speeches. Put all the shared speeches under a "/ss macro something" event, then call out "/ss macro something" as the speech for all of the other events that you want to share that message list.
I recently started toying around along those lines by setting up the "System Event: Entered Combat" with a 2% chance to trigger "/ss macro battlecry"
Your thinking is in line with mine. I'm giving my translators time to catch up for now, but I do want to keep working on this. I expect them to catch up any day now.
I'll spare you my ramblings on gender and grammar... suffice it to say it's a topic I puzzle over because whatever I do, I want it to be as universal as possible to support foreign languages with possibly very different grammar rules... I am thinking along the lines of following more of the <target|me> feature where perhaps you could say <targetgender:he/she> or <targetgender:him/her> or <targetgender:male/female> or whatever fits the sentence.
The randomtaunts and randomfactions are both slated to become configurable in a future version.
The import data function is totally planned for expansion into importing from your other characters. I also want to do something similar with that underlying function for importing speeches from one event into another.
I thought about prompting you for each one, but decided it could be a lot of prompts, so I opted for printing the names of each event touched by that process (look in your chat window for the list) and then you can go through those events and delete what you didn't want imported. The first few times I tested it, all of the new speeches were added to the end, so it was easy to find the new ones and delete what I didn't want... unfortunately, the last time I tried it, I found speeches mixed in the middle, and some that appeared duplicated, so I think the series of prompts may be a better way to go... "Do you want this speech for this event?" [yes | no | yes to all] ... something like that.
I haven't worked on the minimap button or LDB tie-in yet, but that's rapidly rising to the top of my todo list.
2 of your ideas are possible within the existing feature set given the magic of "/ss macro something" + the ability to use slash commands in the random speeches. I'll cover the instructions in my next post so it's not buried in the middle of my other ramblings here.
To contrast messages that are silent in certain situations, it would be nice if SpeakinSpell had some way to add messages to an event that only fire in a certain situation (like make an event for a buff or ability that fires message A when playing solo, and message B when in a party, but never vice versa).
I really do like the added <newline>, <zone> and <subzone> commands, though I'm.. not all that fond of the <randomtaunt> one. I really doubt that my guild, or that many other people, would appreciate it that much if I was to yell "Die Nub!" at the high spot of the fight. In an "everyone for their own taste" kind of way, it would probably be a considerable idea to throw in some easily accessible way of customizing the "taunts" for oneself. Same could probably also go for the <randomfaction>, though here it's more a matter of what factions you want to shout about and what factions you don't. An Orc shouting "for the Light!"? A Dwarf fighting "for the Sin'Dorei"? Anything other than a Rogue doing stuff "for Ravenholdt"?
There are also these two things that could probably be considerable as new things in SpeakinSpell; one is a gender variable for both the target and the player, the other is a way to import/copy specific phrases from either the default ones or those of another character and give it to the character you're currently playing.
The first one would be as easy as referring to the UnitSex API (http://www.wowwiki.com/API_UnitSex), and creating a simple table of gender phrases for different situations. One he/she/it (like "he/she/it prepares something or other"), one his/her/its (like "raises his/her/its shield"), and one him/her/it (like "<player> thinks <target>'s big teeth fits him/her/it well") - could probably be referenced as <pgender1/2/3> and <tgender1/2/3>, player and target respectively. Could be handy for when creating gender referencing phrases where one would normally just use an androgynous term like "their" instead.
The second one can probably be best explained by referencing to the "Import new default phrases" option (which can probably later be expanded to importing from other characters and suchlike). You have things you can import, but do you want to import it all? You hit the import button (be it the new default ones or maybe from another character), and instead of just right away importing the phrases there are; it opens a list of phrases that can be imported. You can then get a glimpse at them, and choose which ones you actually want to import to the current character.
And just to throw in one last thing; have there been any further thoughts on adding a minimap/LibDataBroker plugin to quickly and easily toggle the AddOn and open the options? Or that "Several events, same phrases" thing I suggested a bit back, to basically add an option to take a bunch of abilities/events and grouping them together to share a single set of phrases?
Keep working on this AddOn. Really. The ability to let my characters roleplay themselves while I'm too preoccupied with running around and casting spells to stop and type anything, is awesome.
---------
3.2.0.04
---------
Adds guild and self-chat as selectable channels
Adds Wintergrasp Battles as a separate scenario from Raids or BGs
(it was using the raid scenario before)
[randomfaction] now has a chance to show the player's guild or arena team names.
New substitution variables...[realm], [zone], [subzone], [playertitle]
New events for changing zones and sub-zones as you travel
New options to limit chat spam to once per combat and/or once per [target] name.
A couple minor bug fixes
Highlights of the new version:
---------
3.2.0.02
---------
Added 3 new substitution variables:
[randomfaction]
- will become the name of a random faction such as Horde, Alliance, Sindorei, Light, and over 80 more
- "For the glory of the [randomfaction]!" can become "For the glory of the Zandalar Tribe!" or many other random factions
[randomtaunt]
- will become a random insulting name, such as Meanie, Coward, Punk, N00b, and over 20 more
- "Die [randomtaunt]!" can become "Die Nub!" or "Die Son of a Hamster!" or many more
[newline]
- This will split a speech into more than one line of text, so you can say two speeches at the same time
- "For the Horde![newline]/cheer" will say "For the Horde!" in your selected channel, and then make you do "/cheer" at the same time.
- (OOPS: this is not working yet in 3.2.0.02 - will be fixed in 3.2.0.03!)
Added several new default sample speeches for all classes
- includes a new default event for "/ss macro battlecry" with very many battlecries, inspired by the addon, Ultimate Warcraft Battlecry Generator, by NytewolfAU2k7
- includes a new system of race-specific and universal default speeches
- includes some nice suggested speeches by Folji
Adds Feature: [Import New Default Sample Speeches]
- look for the button under General Settings (/ss options)
- Merges your current settings with the default sample settings that come with SpeakinSpell.
- Your saved settings will be preserved, but new speeches will be added.