Add reusable MTH_Layout box/column layout engine (api/options-layout.lua) and route every option panel through it (shell, general, zButtons per-button config, zBar, chronometer, auto buy, profiles, credits, etc.) for consistent, auto-sizing layout. Restore realm gate. README note.
- New Pet Auto-Teach: on tame, offer to teach Growl at the best rank via the
Beast Training window (Craft API DoCraft), with a General options checkbox
and /mth growl on|off|status toggle (on by default).
- De-stagger zButton flyout bars and zBar so buttons fade in together.
- Update CHANGELOG.
Animations (all optional, default on, per-effect toggles):
- New Options -> Animations tab with master switch + per-effect checkboxes
- Embed PizzaSauce animation library (api/PizzaSauce.lua)
- fx-celebrate: firework + banner when a pet learns a new ability/rank,
triggered from core-scan-beasttraining pet-learn hook
- Hunter's Book: slide + fade on open, results list fade on tab switch
- Options window: slide + fade on open
- All new user-facing strings keyed (ANIM_* namespace)
Fixes:
- Tooltip #19: own-pet lines (mood/loyalty/happiness/XP) no longer
misfire on party members / targets. Removed the fragile title-name
fallback in MTH_TT_IsTooltipOnOwnPet; ownership now requires positive
unit identity.
Temp (remove before release): /mth fx and /mth fxdebug diagnostics.
Collapse all legacy/scattered SavedVariables from absorbed standalone
addons (FeedOMatic, ZHunter/zButtons, SmartAmmo, AutoQuest, AntiDaze,
AutoStrip, MinimapButton) into two persisted globals with clean per-module
nesting under .modules.<id>.
Migration engine (api/savedvariables.lua):
- MTH_SV_EnsureSchema() with schemaVersion gate, idempotent + non-destructive
- Per-module migrators map old locations -> canonical nested stores
- Driven by an ADDON_LOADED("MetaHunt") handler so it runs only AFTER WoW
loads the real SavedVariables (fixes announce-every-session bug that ran
the migration on empty pre-load defaults)
- One-time player-facing chat announce, gated on real legacy data present
Framework/config:
- core-framework InitSavedVariables no longer runs migration at file-load;
unconditionally strips account-root module aliases
- config.lua stops re-creating root[module] aliases (was duplicating data
onto disk); canonical store stays under .modules.<id>
Modules:
- feedomatic: bind FOM_* globals as runtime aliases into nested store,
drop persisted duplicates and .legacy blob
- zhunter: ZHunterMod_Saved re-pointed at .modules.zhunter
- smartammo/autoquest/antidaze/autostrip/minimapbutton read nested store
TOC trimmed to MTH_SavedVariables + MTH_CharSavedVariables only.
Profiles unchanged (already snapshot/apply the nested .modules structure).
Also includes pet-scan refinements: canonical pet key derivation and
level-independent pet signature (schema v3).
Freezes the dev toolchain (numpy, pandas, pillow, mpyq, odfpy, asarPy,
defusedxml, python-dateutil, six) so any machine rebuilds .venv from this
instead of copying the 176MB virtualenv. Supports the multi-machine workflow:
clone via git, then 'python -m venv .venv && .venv/bin/pip install -r requirements.txt'.
init/env.xml, compat.xml, libs.xml, skins.xml contained only comments (no
frames, scripts, or includes) and were loaded as no-ops at startup. Deleted the
files and their MetaHunt.toc include lines. init/ now holds only the three real
XMLs (api, localization, modules).
SmartPet (module never wired into modules.xml) removed entirely — server-side
pet AI on TWoW/OctoWoW makes it useless. Deleted modules/smartpet/ and
api/options-smartpet.lua.
Orphaned .tools DBC extracts (2026-03-20) never loaded via TOC, superseded by
the curated/pfQuest datastores that ship:
- data/ds-zones-dbc.lua, data/ds-zones-new-dbc.lua (bounds come from ds-zones-wma)
- data/ds-stable-prices.lua (never wired to any UI)
- data/ds-pet-spells-acquire.lua (learnMethod set at runtime by init.lua + trainer)
Also removed api/beastlore-scan.lua (8-line deprecation stub) and its
init/api.xml include. No shipped references or player-facing behaviour affected.
- Hunter's Book and options window now show a full 'DISABLED.' overlay on realm-gated realms instead of rendering content
- Pet training: new rank of an already-known ability is now recognised, announced, and reflected in tooltips
- Restore curated 'unique appearance' beast allowlist (34 beasts) in data/init.lua
- CHANGELOG updated
## [1.0.5] - 2026-03-01
### Fixed
- Multiple changes to the addon to reduce its memory and CPU time footprint to the strict minimum possible.
- Restored FeedOMatic pet hunger notifications so hungry/very hungry warnings are emitted reliably again when enabled.
- Fixed Chronometer `Wing Clip` tracking by adding a safe fallback timer path for the missing trigger case.
- Fixed Chronometer `Quick Shots` bar icon by mapping the event to the correct icon texture.
- Fixed module enabled/disabled persistence to be truly per-character (`MTH_CharSavedVariables.moduleStates`) instead of account-shared.
- Fixed AutoBuy persistence fallback by removing undeclared `MTH_AutoBuy_Saved` paths and using module stores/transient runtime fallback only.
- Consolidated FeedOMatic legacy persistence to a single module-backed store (`modules.feedomatic.legacy`) with globals bound to that source.
- Switched Chronometer profile persistence to per-character module storage with one-time migration from existing account profile data.
- Switched Tooltips module options persistence to per-character module storage with one-time migration from existing account settings.