File Details
2.0.0
- R
- Jun 17, 2026
- 13.84 KB
- 296
- 12.0.7+3
- Classic + 3
File Name
CopyThat-2.0.0-Release.zip
Supported Versions
- 12.0.7
- 5.5.4
- 2.5.5
- 1.15.8
Changelog
All notable changes to CopyThat are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 2026-06-16
Added
- Complete ground-up rewrite on a lightweight NexEnhance / CharInspectPlus-style engine: shared namespace, module registry, central event dispatcher, and profile-based saved variables.
Modules/ChatCopy.lua— self-contained chat copy module with live setting callbacks (OnSettingChanged) so options apply without/reload.- Multi-flavor support — single package loads on Midnight retail, The War
Within, Cataclysm Classic, and Classic Era (TOC
Interfacelines for each client). - Blizzard Settings panel with a CharInspectPlus-style layout:
- Landing page (logo, version, tagline, slash-command quick reference, live module stats).
- General subcategory for all configuration.
Core/Widgets.lua+Core/Widgets.xmlfor wrapped description text on the General page.- Mandatory localization via
Core/Locales/enUS.lua(no raw UI literals). - Automatic saved-variable migration from the legacy flat Dashi-era
CopyThatDBlayout (isEnabled,iconAlpha,iconPosition) into the newchatCopymodule table. - Cursor rules for addon conventions and Midnight / 12.0.7 API guidance.
Changed
- Removed the Dashi dependency entirely; events, database, and settings now use native Blizzard APIs and an in-house core.
- Settings UI no longer uses Dashi widgets — options are registered through
Settings.RegisterVerticalLayoutCategoryand subcategories. /copythatand/ctnow open the General settings page directly.- Copy button is parented to
UIParentagain (anchored to the active chat frame), matching the original 1.x behaviour and keeping the icon visible across chat tab changes. - Restored the custom
Media/CopyButton.tgaicon (replacing the temporary stock guild-note texture used during the rewrite). - Bumped TOC
Interfaceto120007(Patch 12.0.7 / Midnight: Revelations) alongside supported classic interface versions. - Version bumped to 2.0.0 to reflect the architectural break from 1.x.
Fixed
- Copy button not appearing on first load until toggling enable or icon
position — caused by
OnEnablerunning duringADDON_LOADEDon/reloadbefore chat frames were ready; module enable is now deferred one tick viaC_Timer.After(0)onPLAYER_LOGIN. C_Timer.Aftercallback error (bad argument #2) —Enablewas referenced before itslocaldeclaration; function order corrected.OnEnabletreatingenable = nilas disabled after migration — now usesIsEnabled()consistently (nil defaults to on).Install()retry loop — button creation waits until the active chat frame exists, then explicitly shows the button.- Retail vs classic scroll area:
MinimalScrollBar+ScrollUtilon retail,UIPanelScrollFrameTemplatefallback on classic clients.
Removed
Libs/Dashi/embed and all Dashi-driven config (Config/Settings.lua,Config/About.lua, monolithicCopyThat.lua).- Separate About settings sub-page — overview content moved to the landing page.

