promotional bannermobile promotional banner

SpeakinSpell: Reeee

You can say things in chat when casting any spell or ability. Configurable.

File Details

SpeakinSpell Reeee 2.0.5b.zip

  • B
  • Apr 16, 2026
  • 682.84 KB
  • 16
  • 12.0.1+1
  • Retail

File Name

SpeakinSpell Reeee 2.0.5b.zip

Supported Versions

  • 12.0.1
  • 12.0.0

Hotpatch edition. Remaining incomplete TODO migrating to 2.0.6

Version: 2.0.5 Kutjara.Wiya.Paipa

Code Tune-Up

  • Remove C_Timer.After boot diagnostic from loader.lua
  • Remove mothballed VARIABLES_LOADED comment block from wowevents.lua
  • Remove dead PLAYER_ENTERING_WORLD registration comment from wowevents.lua
  • Remove UPDATE_MOUSEOVER_UNIT function (defined but never registered, debug-only body)
  • Remove dumpspellBook() wrapper or consolidate with dumpspellbookinfo()
  • Remove dead MacroEditBox_OnEvent commented block from utils.lua
  • Remove dead MINIMAP_ZONE_CHANGED commented block from wowevents.lua
  • Fix StringArray_Compress(): pairs()ipairs()
  • Fix ContainsWholeWord(): replace double-pass with frontier pattern
  • Cache player name/realm in RuntimeData to avoid repeated UnitName() calls in GetActiveEventTable()
  • Replace all local myname, myrealm = UnitName("player") with local myname = UnitName("player") (17+ locations)
  • Fix PlaySound("8959") string → PlaySound(8959) integer in speech.lua
  • Add local funcname = "Network_OnRandomSubs" to fix nil upvalue in network.lua
  • Fix global leaks in StartsWith() and EndsWith() (local start, local strend)
  • Add self:RefreshAllFrames() to EraseAllSpeeches() in data.lua
  • Standardise practice of in lieu of tabspacing
  • Aggressive auto-purge of empty EventTable Messages = {} entries and stale NewEventsDetected hooks on login
  • Aggressive auto-purge of empty EventTable Messages = {} entries and stale NewEventsDetected hooks every 60 minutes
  • Prevent purge from trimming NED pools where one character has entry but others do not
  • Suspend purge during UnitAffectingCombat to prevent frame drop edge cases
  • Pause auto-purge timer whilst GUI is open (prevent closure during edits)
  • Fix silent cancellation of posting to public/private channels
  • Bugfix Ace3 LUA error
  • Bugfix hasAggro LUA error

Status: Functional. Purging empty EventTable and NewEventsDetected reduced my personal SpeakinSpell.lua SavedVariable from 7.58MB to 580KB. List is repopulated on spell use anyway. Channels now operating as intended. Macro embedded.

Spellbook Button

  • Audit spellbookManager.lua for all SpellBookFrame / old spellbook API references
  • Replace with PlayerSpellsFrame hooks and C_SpellBook.* APIs
  • Uncomment self:Init_Spellbook_SSLinks() in SpeakinSpell.lua after fixing
  • Register Blizzard_PlayerSpells in ADDON_LOADED handler for deferred hook

Status: Still nonfunctional, but no longer causing LUA crash. WIP.

Move Delete All Events Button

  • [GUI MODULE] Remove button from currentmessages.lua events control frame
  • [GUI MODULE] Add button to generaloptions.lua General tab with confirm dialog

Status:

Extend Timer to 3600s

  • [GUI MODULE] Change max = 600max = 3600 on Cooldown slider in currentmessages.lua
  • [GUI MODULE] Change 'step = 1` to the slider for standard drag behaviour
  • [GUI MODULE] Add bigStep = 30 to the slider for bulk-tuned drag behaviour
  • [GUI MODULE] Actually change percentage slider to min = 0% to align with documentation

Status:

UX / QoL

  • Localise new purge-related strings
  • Make Enable/Disable status line in welcome message clickable (optional)
  • Fix silent in-combat return in GetAddonMemoryUsedString()
  • Fix PlayerNameNoRealm() hyphen regex to avoid NPC name truncation
  • [GUI MODULE] Investigate re-enabling pet spellcast event types for Midnight
  • Consider SPELL_SUMMON handler implementation (Warlocks, DKs, Hunters, etc)
  • Implement instance/non-instance separation for speeches (to codegate protected events such as /s and /y)
  • Add strict macro alias /ss m to help tighten wow macro character limits.
  • x Explicit textBefore matches to prevent /ss m* to prevent GetContext regex issue edge cases
  • x Autocomplete prompter for editboxes, trigger on / and <
  • x Auto-close for `, <, [, (, and " entries in editbox
  • x Substring matching for spell use (ie; typing bolt suggests <shadowbolt>)
  • Implement new UNIT_SPELLCAST_SUCCEEDED__SELF, UNIT_SPELLCAST_SUCCEEDED__FRIENDLY, UNIT_SPELLCAST_SUCCEEDED__HOSTILE conditional keys for spell use, default SPELLCAST_SUCCEEDED entries being treated as 'no target'.

Status: Functional, though considering about whether to remove SPELL_SUMMON or flesh it out for classes that have summons.

Version: 2.0.4 Kutjara.Wiya.Puupala

Version: 2.0.3 Kutjara.Wiya.Mankurpa

Version: 2.0.2 Kutjara.Wiya.Kutjara

Version: 2.0.1 Kutjara.Wiya.Kutju

  • Zenithas has forked project
  • Speakinspell is once again alive.

Abnormal changelog update

  • Gated CLEU for instances (prevents crashes from "bad" combat log data)
  • Remedied language handling in utils.lua (dynamic rather than static language population, so will now work automagically for new races/classes with their own special speech)
  • Nil guarded against honestly a lot of issues in wowevents.lua (prevents error from nil results)
  • Completely commented out spellbookManager.lua. Broken in Midnight, working on it (honestly "works" but you'd be sitting on a code bomb; feel free to uncomment it all if you are feeling brave, but don't complain to me if it bugs out)
  • Fixed typos (unitId/unitid for example)
  • Minor other fixes (SelfRaidWarn should now properly PlaySound, fixed unescaped pattern chars, added automagic localisation for class recognition, fixed various undeclared functions, etc)
  • Other, now forgotten code fixes

Normally I keep much more meticulous changelogs, but due to power outage costing what notes I had, I am having to either use an AI tool to assess it, or run from sleep deprived memory. I elected for the second as the least ethically troubling.