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...
i have two "Entering Combat" and "Exiting Combat" entries in my Combat Events category:
Entering Combat
Exiting Combat
Entering Combat
Exiting Combat
I'm putting a patch function into 3.3.0.02 to fix this for you, but if you introduced this problem by manually editing your LUA files, then it's possible you can do it again, so be careful. You might want to read my SDD.doc (included in the SpeakinSpell folder) for a better understanding of how it works, especially the stuff about "Event keys"
For the record and anyone else listening in... I tried to use an old saved data file I had archived to see if I could find this problem, but it worked fine for me. So I guess it must be a pretty subtle issue (meaning unlikely to occur for many people) probably related to using a certain kind of event hook in an old version, then skip a few versions before getting the latest and *poof* something blows up. That's my best guess anyway. I haven't been able to track it down, and I've run out of leads, so I'm giving up on it for now unless/until someone else sees the same (or a similar) problem and posts some new info about it.
Don't ask me why. Don't ask me how, but now it works. Thank you so much for this great add-on. It's loads of fun!
If you're interested in the technical info:
http://forums.worldofwarcraft.com/thread.html?topicId=21726253070&sid=1
Long story short, it's not going to be easy to fix it. I'm going to give Blizzard some time to patch it, but if that doesn't happen soon, I'll work on the new code (which will require keeping track of all the buffs you have on you at all times, in order to figure out what the new one is, which is data I could leverage into additional features, so it opens a big can of worms)
AFAIK the effected procs are:
Eclipse
Missile Barrage
Lock and Load
Brain Freeze
Sword and Board
Impact
Hot Streak
...and it really bugs me as a mage who relies on SS to tell me when Missile Barrage procs :(
The main reason I started marking it as a beta in the first place was because the data sharing network system was so experimental. I feel like I got a pretty good handle on that now, and even though it still needs more optimization because it's a little slow, it basically works.
Plus, I wanted more people to get the TOC update, and the curse client doesn't download betas by default unless you tell it to, so now that it's a "release" release, more people will get it by default.
Just because I marked it as a release doesn't mean I'm done. I still plan to put out new releases roughly every few days until I go on vacation in the last week of Dec. Then back at it in January. So keep me posted on bugs and feature ideas :)
3.3.0.01
---------
Not a beta! (I hope...)
TOC update for WoW patch 3.3.0
Now comes with 4387 known event hooks out of the box (and still discoverable)
The network system no longer sends built-in data from the event hook list
Fixed bugs
if 3.3.0.01 doesn't fix it for you, an easy work-around for you should be to do "/ss options" instead of "/ss" or "/ss toggle". That will initialize the data that it's missing (which should have been upgraded for you automatically every time you load ui when I make sure all the variables exist, to prevent errors like this "attempt to index field 'whatever' (a nil value)" /shrug.
I also use patch functions to upgrade your saved data file to the new version, and I found an error in one of those functions. That could have corrupted your saved data back when you started to get the error. That should also be fixed now, in the previous version 3.2.2.27
- I downloaded 3.3.0.01 and installed that into the game.
- I get a blank error message (yes, blank).
- So I typed /ss options as you suggested - nothing happens.
- Next I try /ss and I get the error message I listed below.
I will give 3.3.0.02 a shot when it comes out, but I wanted to leave you a not in case it helps with your development process. Thanks for your help!
Error Message:
Message: Interface\AddOns\SpeakinSpell\gui\gui.lua:184: attempt to index field 'LastPageViewed' (a nil value)
Time: 12/09/09 11:59:35
Count: 1
Stack: Interface\AddOns\SpeakinSpell\gui\gui.lua:184: in function `ShowOptions_Toggle'
Interface\AddOns\SpeakinSpell\slashcommands.lua:19: in function `Func'
Interface\AddOns\SpeakinSpell\slashcommands.lua:115: in function `?'
...dOns\PetLeash\Libs\AceConsole-3.0\AceConsole-3.0.lua:94: in function `?'
Interface\FrameXML\ChatFrame.lua:3544: in function `ChatEdit_ParseText'
Interface\FrameXML\ChatFrame.lua:3213: in function `ChatEdit_SendText'
Interface\FrameXML\ChatFrame.lua:3237: in function `ChatEdit_OnEnterPressed'
[string "*:OnEnterPressed"]:1: in function <[string "*:OnEnterPressed"]:1>
Locals: self =
ImportGUI_ImportAllTemplates = <function> defined @Interface\AddOns\SpeakinSpell\gui\import.lua:801
InitRuntimeData = <function> defined @Interface\AddOns\SpeakinSpell\data.lua:79
InitDefaultSavedData = <function> defined @Interface\AddOns\SpeakinSpell\data.lua:43
TestAllSubs = <function> defined @Interface\AddOns\SpeakinSpell\substitutions.lua:527
SubstituteGender = <function> defined @Interface\AddOns\SpeakinSpell\substitutions.lua:422
RemoveEmptyTables = <function> defined @Interface\AddOns\SpeakinSpell\utils.lua:15
GeneralOptions_OnShowDebugMessagesToggle = <function> defined @Interface\AddOns\SpeakinSpell\gui\generaloptions.lua:202
AddToBlizOptions = <function> defined @Interface\AddOns\SpeakinSpell\gui\gui.lua:16
DebugMsgDumpBool = <function> defined @Interface\AddOns\SpeakinSpell\debug.lua:35
Network_Init = <function> defined @Interface\AddOns\SpeakinSpell\network.lua:33
ColorsGUI_ColorizeLabel = <function> defined @Interface\AddOns\SpeakinSpell\gui\colors.lua:195
CHAT_MSG_PARTY = <function> defined @Interface\AddOns\SpeakinSpell\wowevents.lua:609
CurrentMessagesGUI_OnEventTypeFilterSelect = <function> defined @Interface\AddOns\SpeakinSpell\gui\currentmessages.lua:1009
ImportGUI_GetSelectedDetectedEvent = <function> defined @Interface\AddOns\SpeakinSpell\gui\import.lua:833
GeneralOptions_OnClickBigRedButton = <function> defined @Interface\AddOns\SpeakinSpell\gui\generaloptions.lua:220
DEBUG_MODE = false
CopyTable = <function> defined @Interface\AddOns\SpeakinSpell\utils.lua:57
OnPacketQueued = <function> defined @Interface\AddOns\SpeakinSpell\network.lua:298
ColorsGUI_GetStringColor = <function> defined @Interface\AddOns\SpeakinSpell\gui\colors.lua:169
ResetToDefaults = <function> defined @Interface\AddOns\SpeakinSpell\SpeakinSpell.lua:12
Template_DeleteOneRandomWord = <function> defined @Interface\AddOns\SpeakinSpell\templates.lua:880
SayMultiLineWithSubs = <function> defined @Interface\AddOns\SpeakinSpell\speech.lua:413
ImportTemplate_ExistingSubsList = <function> defined @Interface\AddOns\SpeakinSpell\templates.lua:959
FixOld_32217_MoveSavedData = <function> defined @Interface\AddOns\SpeakinSpell\oldversions.lua:577
CurrentMessagesGUI_RebuildSpellList = <function> defined @Interface\AddOns\SpeakinSpell\gui\currentmessages.lua:1323
GetChatChannelForSpell = <function> defined @Interface\AddOns\SpeakinSpell\speech.lua:118
Validate_DetectedEvent = <function> defined @Interface\AddOns\SpeakinSpell\data.lua:622
ImportTemplate_AddOneSpeech = <function> defined @Interface\AddOns\SpeakinSpell\templates.lua:739
UNIT_SPELLCAST_SENT = <function> defined @Interface\AddOns\SpeakinSpell\wowevents.lua:356
CreateGUI_RandomSubs = <function> defined @Interface\AddOns\SpeakinSpell\gui\randomsubs.lua:187
GetScenarioKey = <function> defined @Interface\AddOns\SpeakinSpell\utils.lua:264
SafeGetSpellLink = <function> defined @Interface\AddOns\SpeakinSpell\data.lua:390
Template_AddSharedEventTable = <function> defined @Interface\AddOns\SpeakinSpell\templates.lua:1108
OnZoneChange = <function> defined @Interface\AddOns\SpeakinSpell\wowevents.lua:470
RandomSubs_GetSelectedSubsTable = <function> defined @Interface\AddOns\SpeakinSpell\gui\randomsubs.lua:116
I
I got a blank error like that once already in patch 3.3 (from Ackis recipe list, not SpeakinSpell) but in my case, the LUA error popup window showed prev/next buttons, and the blank error was actually the 5th LUA error I had gotten since I logged in. It had bundled them up and shown me a single popup, and I had to click Previous 4 times to get to the first error to see what was REALLY wrong. Does that help you see more/better info about your blank error that you get you when you login?
"/ss reset" would probably fix it for you, but at the cost of losing all your customized settings and speeches that you wrote. I hate to suggest that as the solution (but I just did). I'd much rather fix my bug.
I think it's probably having a problem upgrading your saved data from an older format to the current format. I have archived copies of saved variables files from older versions so I'll pull out my oldest one and see if I can reproduce your problem that way.
It would also help if I could see your actual saved data. Would you be willing to dig out those 2 files and send them to me? (use a curse.com PM or post a ticket on my wowace page) The files are:
...WoW\WTF\Account\<login name>\<realm>\<character>\SavedVariables\SpeakinSpell.lua
and
...WoW\WTF\Account\<login name>\SavedVariables\SpeakinSpell.lua
meanwhile I'll see if I can figure this out from my own older saved variables files that I archived from older versions and/or hopefully the safety check I put in for .02 will at least help...
Here's my error message:
Message: Interface\AddOns\SpeakinSpell\gui\gui.lua:184: attempt to index field 'LastPageViewed' (a nil value)
Time: 12/08/09 20:54:58
Count: 1
Stack: Interface\AddOns\SpeakinSpell\gui\gui.lua:184: in function `ShowOptions_Toggle'
Interface\AddOns\SpeakinSpell\slashcommands.lua:19: in function `Func'
Interface\AddOns\SpeakinSpell\slashcommands.lua:115: in function `?'
...\SpeakinSpell\Libs\AceConsole-3.0\AceConsole-3.0.lua:68: in function `?'
Interface\FrameXML\ChatFrame.lua:3544: in function `ChatEdit_ParseText'
Interface\FrameXML\ChatFrame.lua:3213: in function `ChatEdit_SendText'
Interface\FrameXML\ChatFrame.lua:3237: in function `ChatEdit_OnEnterPressed'
[string "*:OnEnterPressed"]:1: in function <[string "*:OnEnterPressed"]:1>
Locals: self =
ImportGUI_ImportAllTemplates = <function> defined @Interface\AddOns\SpeakinSpell\gui\import.lua:801
InitRuntimeData = <function> defined @Interface\AddOns\SpeakinSpell\data.lua:79
InitDefaultSavedData = <function> defined @Interface\AddOns\SpeakinSpell\data.lua:43
TestAllSubs = <function> defined @Interface\AddOns\SpeakinSpell\substitutions.lua:527
SubstituteGender = <function> defined @Interface\AddOns\SpeakinSpell\substitutions.lua:422
RemoveEmptyTables = <function> defined @Interface\AddOns\SpeakinSpell\utils.lua:15
GeneralOptions_OnShowDebugMessagesToggle = <function> defined @Interface\AddOns\SpeakinSpell\gui\generaloptions.lua:202
AddToBlizOptions = <function> defined @Interface\AddOns\SpeakinSpell\gui\gui.lua:16
DebugMsgDumpBool = <function> defined @Interface\AddOns\SpeakinSpell\debug.lua:35
Network_Init = <function> defined @Interface\AddOns\SpeakinSpell\network.lua:32
ColorsGUI_ColorizeLabel = <function> defined @Interface\AddOns\SpeakinSpell\gui\colors.lua:195
CHAT_MSG_PARTY = <function> defined @Interface\AddOns\SpeakinSpell\wowevents.lua:598
CurrentMessagesGUI_OnEventTypeFilterSelect = <function> defined @Interface\AddOns\SpeakinSpell\gui\currentmessages.lua:1009
ImportGUI_GetSelectedDetectedEvent = <function> defined @Interface\AddOns\SpeakinSpell\gui\import.lua:833
GeneralOptions_OnClickBigRedButton = <function> defined @Interface\AddOns\SpeakinSpell\gui\generaloptions.lua:220
DEBUG_MODE = false
CopyTable = <function> defined @Interface\AddOns\SpeakinSpell\utils.lua:57
OnPacketQueued = <function> defined @Interface\AddOns\SpeakinSpell\network.lua:306
ColorsGUI_GetStringColor = <function> defined @Interface\AddOns\SpeakinSpell\gui\colors.lua:169
ResetToDefaults = <function> defined @Interface\AddOns\SpeakinSpell\SpeakinSpell.lua:12
Template_DeleteOneRandomWord = <function> defined @Interface\AddOns\SpeakinSpell\templates.lua:880
SayMultiLineWithSubs = <function> defined @Interface\AddOns\SpeakinSpell\speech.lua:413
ImportTemplate_ExistingSubsList = <function> defined @Interface\AddOns\SpeakinSpell\templates.lua:959
FixOld_32217_MoveSavedData = <function> defined @Interface\AddOns\SpeakinSpell\oldversions.lua:577
CurrentMessagesGUI_RebuildSpellList = <function> defined @Interface\AddOns\SpeakinSpell\gui\currentmessages.lua:1323
GetChatChannelForSpell = <function> defined @Interface\AddOns\SpeakinSpell\speech.lua:118
Validate_DetectedEvent = <function> defined @Interface\AddOns\SpeakinSpell\data.lua:622
ImportTemplate_AddOneSpeech = <function> defined @Interface\AddOns\SpeakinSpell\templates.lua:739
UNIT_SPELLCAST_SENT = <function> defined @Interface\AddOns\SpeakinSpell\wowevents.lua:345
CreateGUI_RandomSubs = <function> defined @Interface\AddOns\SpeakinSpell\gui\randomsubs.lua:187
GetScenarioKey = <function> defined @Interface\AddOns\SpeakinSpell\utils.lua:264
SafeGetSpellLink = <function> defined @Interface\AddOns\SpeakinSpell\data.lua:390
Template_AddSharedEventTable = <function> defined @Interface\AddOns\SpeakinSpell\templates.lua:1108
OnZoneChange = <function> defined @Interface\AddOns\SpeakinSpell\wowevents.lua:459
RandomSubs_GetSelectedSubsTable = <function> defined @Interface\AddOns\SpeakinSpell\gui\randomsubs.lua:116
I
3.2.2.27 (beta)
---------
Added time and date substitutions
<mdyhms> - 12/31/09 24:00:00
<mdy> - 12/31/09
<hms> - 24:00:00
<md> - 12/31
<hm> - 24:00
Added [Reset Event List] button to the Create New GUI to delete all collected event hooks
- Now knows 2230 (randomly) pre-recorded event hooks "out of the box", without having to record them first
- These will be merged into your existing list automatically - you shouldn't have to reset
Refined the addon API to allow addon-created event categories
SpeakinSpell:RegisterAddonEventType( "MYADDON", "My Addon Events", "My Addon Event: " )
Fixed various LUA errors
3.2.2.26 (beta)
---------
- split off LibSmartComm sub-component library to encapsulate the network engine core
- Added compression to the data sharing system
- The new compressed data sharing protocol will not talk to older clients (not even for new version alerts, sorry)
- Added a function to repair invalid data left behind by the previous few betas
- Added a list of known event hooks for "/ss create", used on fresh installs or will be added to your existing saved data
Thanks for the compliments - I'm glad you like it!
Check out "/ss import" and if you're using one of the recent betas 3.2.2.22+ or so, your alternate characters' speeches are all available there to import to your currently logged-in character.
EDIT: if you want to backup your saved variables file outside of the game, all your settings are saved in these 2 files:
WoW\WTF\Account\ <login name> \ <realm> \ <character name> \ SavedVariables\SpeakinSpell.lua
WoW\WTF\Account\ <login name> \ SavedVariables\SpeakinSpell.lua
The last "release" release stores your speeches in the per-character file. The more recent beta releases have moved the data to your realm-wide file (to make your alts' speeches available to each other under "/ss import")
Can I just say .. first.. what a fun add on. I've been using Reedemer forever and have a serious collection of res statements that's been building for hell.. I think years now. I found this add on by accident earlier this week and incredibly impressed with the flexibility of it. Enough that I turned Reedemer off for the first time in years.
There are many spells/actions that I do accross characters (Vanity Pets/Mounts specifically) and would love to find a way to locate where it's saving existing statements so I could copy and paste them over? Plus, if you've spent hours entering text, it's just a good measure to save a back-up.
I am hoping in the near future there's a way to backup our statements (within the app menu) and more so, export and import our statements. It would reduce the need of what I'm currently searching for. If I could just export it and import per character, it would reduce so much unecessary retyping, especially since it's build on the action itself.
3 noob questions:
- How can I add own <randomsubstitution> so that it appears in the list of configurable substitutions?
- Can I get functionality of SpellstealPartyLinks http://wow.curse.com/downloads/wow-addons/details/spellsteal-party-links.aspx with this addon? SpellstealPartyLinks announces not only that I have cast SpellSteal, but the spell that I've stolen.
- Can I add wildcards into event names? E.g. set common messages for all types of portals, not in portal spells to each separate city?
Also, IMHO event list via dropdown list is not very comfortable. Would you consider adding separate window with event list with checkboxes at available spells\events to activate\disable spell announcements?
Thanks, I'm glad you like it! I wish adding more features didn't make it so much more complex, but playing with SS has become like a game in itself.
>> How can I add own <randomsubstitution> so that it appears in the list of configurable substitutions?
1. Get the latest beta version (22 or newer). The curse client doesn't get betas by default, and my last "release" release (16) didn't have that feature yet.
The latest beta 25 is pretty stable. I don't expect it to throw LUA errors at you all over the place. My main area of concern about still calling it a beta is backward/forward compatibility. If you run beta versions, you should make backup copies of your WoW\WTF\Account\ ... \SavedVariables\SpeakinSpell.lua files for both your character and your whole account.
2. "/ss random" to open the random subs GUI (or navigate to it from Escape > Interface Options > Addons > SpeakinSpell > Random Subs)
3. Type a <randomword> into the box at the top right that says "new <randomword>" (or something like that). Leave out the brackets <>.
4. Hit enter or click accept when you're done typing the word.
5. you should see the word you entered disappear from the text box, and immediately appear in the drop down list to the left of that. And the additional text box below will say "<wordyoutyped> 1" to let you start adding words to that randomized list.
>> Can I get functionality of SpellstealPartyLinks http://wow.curse.com/downloads/wow-addons/details/spellsteal-party-links.aspx with this addon? SpellstealPartyLinks announces not only that I have cast SpellSteal, but the spell that I've stolen.
I'm a mage too, so you'd think I would have tried that, but I never did. SpeakinSpell can report "When I buff myself with: <spellname>" events. I *think* spellsteal should count for that, where <spellname> is the name of the buff you stole. But it's also going to fire for any buffs you proc on yourself, like Hot Streak and various trinket effects. So it's basically not going to work for that purpose as-is. But I think it's a great idea, so I'll add it to my ticket list and take a look at that other addon.
>> Can I add wildcards into event names? E.g. set common messages for all types of portals, not in portal spells to each separate city?
Unfortunately I couldn't make a wildcard matching function gel with other aspects of how SS is implemented. It remains in the back of my mind to make that work, but what I came up with instead is "/ss macro"
"/ss macro portal" will create an event hook with its own speech list, which you can share for all portal spells. To make that work, each individual portal spell has to be set up to call out "/ss macro portal" as one of its speeches. You can find a more detailed explanation in "/ss help" chapter 11. Custom Macros.
That's a work-around and I realize it's not ideal for shared speech lists because the "/ss macro portal" event has separate options for channels, frequencies, cooldowns, etc, and it can get confusing, plus issues of RNG distribution which you may or may not care about. But the "/ss macro" approach also provides the most flexibility.
Also for portals specifically, there's no <city> substitution (yet). <spellname> works but includes the full spell name, i.e. "Portal: Stormwind" not just the city name "Stormwind". I didn't like the idea of adding a special case just for mage portals - I'd rather come up with a more general solution that anyone can use.
I have various improvements planned in all those areas.
>> Also, IMHO event list via dropdown list is not very comfortable. Would you consider adding separate window with event list with checkboxes at available spells\events to activate\disable spell announcements?
As that list grows, I've been considering a variety of alternatives to improve on the drop-down list. There are too many event hooks to make checkboxes for all of them in that way. I'd prefer to switch to a tree view style GUI, unfortunately I haven't found a way to make that work in WoWLua yet.