# ๐Ÿงฉ ShaguTweaks โ€” ClassicAPI A lightweight fork of [ShaguTweaks](https://github.com/shagu/ShaguTweaks) for **Turtle WoW-like servers**, focused on **stability, compatibility and performance** while keeping the original ShaguTweaks experience. This is an English-only customization of [Dusk/ShaguTweaks-ClassicAPI](https://octowow.st/git/Dusk/ShaguTweaks-ClassicAPI), based on ShaguTweaks, for the Vanilla client environment with ClassicAPI. > This fork requires ClassicAPI and targets **Turtle WoW-like server/client environments**. What changed in each update: see the [changelog](CHANGELOG.md). ## ๐Ÿ”Œ Requirements - **[ClassicAPI](https://github.com/brues-code/ClassicAPI) โ€” required.** Install both the DLL and its bundled `!!!ClassicAPI` addon, and restart the client after a DLL update. v1.18.10 or newer is recommended (it includes a crash fix for addons that restyle nameplates). The integration was last reviewed against v1.18.13; see [Docs/CLASSICAPI_UPDATES.md](Docs/CLASSICAPI_UPDATES.md). - **[SuperWoW](https://github.com/balakethelock/SuperWoW) โ€” optional / recommended.** Only used as an additional fallback for some cast/GUID information. ClassicAPI is the main API layer. ## ๐Ÿ“ฆ Installation 1. Install **ClassicAPI**. 2. Optionally install **SuperWoW**. 3. Rename the addon folder to `ShaguTweaks`. 4. Copy it to `World of Warcraft\Interface\AddOns\ShaguTweaks`. 5. Restart the game. Settings: **Esc โ†’ Advanced Options**. ## โœจ What's different in this fork **Unit frames** - **Modern Class Colors:** optional palette for all nine Vanilla classes, including blue shamans. Listed directly below **Unit Frame Class Colors**. - **Modern textures:** class-tinted health artwork and precolored rage, energy and focus artwork. Mana uses the light-blue rectangular retail fill on every supported frame, including the druid's separate mana bar in bear/cat forms. - **Real Health Numbers:** an independent module. Percentage on the left and current health on the right, inset 4 pixels; power numbers remain centered. It uses direct values when available and a lazy Vanilla health estimator for percentage-only targets, so unknown absolute target health stays percentage-only. - **Number styling:** health, percentage and power numbers copy the corresponding character name's font, size and shadow. Gold is the default; **White Unit Frame Numbers** under Unit Frames switches the numbers to white independently of Modern Class Colors. - **Unit Frame Big Health** is presentation-only and no longer forces numeric health/power text. With it, the resting pulse is limited to the portrait, and the full status artwork is restored outside resting or in combat. - **Movable Unit Frames:** Player, Target, Party, Minimap, Buffs, Debuffs and Weapon Buffs share one mover and alignment grid. Hold **Ctrl+Shift+Alt** to drag; right-click while unlocked to reset. - **Hide Pet Unit Frame:** hides the pet frame below the player frame for pet classes. The stock pet code keeps running, so nothing breaks when the pet is summoned, dismissed or dies. **Swing Timer and Wand Timer** - **Swing Timer:** main-hand and off-hand swing timers styled like the classic cast bar, with the weapon's icon on the left. They sit just above the cast bar; hold **Ctrl+Shift+Alt** to drag them and right-click to reset. - **Wand Timer:** the time until your next wand shot in the same style. It also times Auto Shot for bows, guns and crossbows, turning red during the last half second, when moving would cancel the shot. - The timers follow the server's real attack timers through ClassicAPI's `PLAYER_SWING` event, including parry haste and on-next-swing abilities. A bar turns gray while the target is out of reach. - The main-hand bar shows a queued **Heroic Strike** in light blue and **Cleave** in green (warriors), and **Maul** in orange (druids). - Ported from [brues-code/pfUI](https://github.com/brues-code/pfUI)'s swing timer. Requires ClassicAPI v1.15.10 or newer. **Tooltips, items and action bars** - **Tooltip Details:** restored guild ranks and leader marker; optional modern class colors and health texture. NPC interaction and tooltip-clear handling prevent cached colors leaking between tooltips. - **Item Rarity Borders** cover merchant, quest, mail, trade, crafting and loot frames, and **Item Rarity Glows** add an independent glow using the same shared rarity engine. - **Range Color:** self/rangeless spells no longer use a misleading legacy fallback; invalid friendly/hostile target checks and stale red/no-mana tint are handled. No additional AoE-specific exceptions have been added. The range check runs five times a second instead of every frame. - **XP Bar Text:** hovering the experience bar shows current and needed XP like the reputation bar (`1555/3000`), then the percentage and the rested bonus. - **WorldMap Class Colors:** raid members on the world map and battlefield minimap show their own class color. - **WorldMap Window:** the map keeps the size you pick with Ctrl+Mousewheel (saved per character), and the title bar drags the window as well. With [OctoBus](https://github.com/Phridgey/OctoBus) installed, a **Transports** button left of the Continent dropdown shows or hides its transport timers. - **Loot History:** `/loothistory` lists recent group-loot rolls with the winner of each item; click an item for everyone's need, greed or pass and their rolls. Ported from [brues-code/pfUI](https://github.com/brues-code/pfUI). Requires ClassicAPI. **Performance and stability** - Reduced per-frame work, tooltip scans and repeated UI updates. - **Bounded player cache:** the shared player cache expires old entries and holds at most 10,000 players, so the saved variables file no longer grows without limit. See [Docs/PERFORMANCE.md](Docs/PERFORMANCE.md). - Event-driven target and nameplate castbars where possible. - Safer GUID-based handling for same-name enemies. - Safer hooks and fewer destructive global overrides. - **English-only loading:** only English data and translations are included, avoiding unused locale allocations. - Better Turtle WoW-like server compatibility for custom items, spells and UI changes, plus various stability fixes across legacy ShaguTweaks modules. ## ๐Ÿ”ท ClassicAPI integration ClassicAPI backs casts, auras, items and unit data: native cooldown support, filtered unit events, corrected chat identity/payload handling, and reduced duplicate player-cache records when native persistence is already enabled. Older fallbacks are retained for clients without the newer features. Modules that use ClassicAPI directly: - Range Color - AoE Loot - Auto Dismount - Chat Tweaks - Equip Compare - Free Slot Count - Improved Castbar - Item Rarity Borders - Item Rarity Glows - Loot History - Movable Unit Frames - Real Health Numbers - Nameplate Class Colors - Nameplate Castbar - No Toggle Auto-Attack - Sell Junk - Skip Gossip Text - Swing Timer - Wand Timer - Enemy Castbars - Tooltip Details - WorldMap Window Other modules can also benefit indirectly from ClassicAPI through shared ShaguTweaks libraries and caches. Per-version notes are in [Docs/CLASSICAPI_UPDATES.md](Docs/CLASSICAPI_UPDATES.md). ## โš™๏ธ Modules Names match the in-game options list. Modules marked *(off)* are disabled until you enable them. ### Action Bar - Auto Dismount - Auto Stance - Range Color *(off)* - Cooldown Numbers - Hide Gryphons *(off)* - Improved Castbar *(off)* - Swing Timer *(off)* - Wand Timer *(off)* - No Toggle Auto-Attack - Reduced Actionbar Size *(off)* ### Unit Frames - Unit Frame Big Health *(off)* - Unit Frame Class Colors *(off)* - Modern Class Colors *(off)* - Unit Frame Class Portraits *(off)* - Unit Frame Energy & Mana Tick *(off)* - Hide Pet Unit Frame *(off)* - Movable Unit Frames - Real Health Numbers *(off)* - White Unit Frame Numbers *(off)* - Enemy Castbars - Debuff Timer ### Nameplates - Nameplate Scale - Nameplate Class Colors - Nameplate Castbar ### Tooltip & Items - Equip Compare - Free Slot Count - Item Rarity Borders - Item Rarity Glows *(off)* - Sell Junk - Tooltip Details - Vendor Values ### Chat & Social - Blue Shaman Class Colors *(off)* - Chat Tweaks - Chat Levels *(off)* - Chat Spam Filter *(off)* - Social Colors ### Minimap & World Map - Minimap Clean *(off)* - MiniMap Clock - MiniMap Square *(off)* - MiniMap Tweaks - Enlarged Minimap *(off)* - Hide Tracking Icon - WorldMap Class Colors - WorldMap Coordinates - WorldMap Window ### Loot - AoE Loot *(off)* - Improved Roll Frames *(off)* - Loot Cursor - Loot History (`/loothistory`) ### Interface - Darkened UI *(off)* - Hide Errors *(off)* - Smaller Error Frame *(off)* - XP Bar Text (current/needed XP, percentage and rested bonus on hover) ### General - Super WoW Compatibility - Turtle WoW Compatibility - Skip Gossip Text *(off)* ## ๐Ÿงน Removed / integrated modules The following original ShaguTweaks modules are not included as standalone modules because their functionality is either integrated elsewhere or no longer required: - **Chat Links** โ†’ integrated into **Chat Tweaks** - **Movable Unit Frames Extended** โ†’ integrated into **Movable Unit Frames** ## ๐Ÿ“œ Project identity & licensing This is an independent community project. Compatibility with **World of Warcraft**, **Turtle WoW-like environments**, **ClassicAPI**, **SuperWoW**, or other referenced projects does not imply affiliation, endorsement, sponsorship, or ownership by their respective rights holders or maintainers. **World of Warcraft** and **Blizzard Entertainment** names, marks, and game assets remain the property of their respective rights holders. For detailed provenance and licensing information, see: - [CHANGELOG.md](CHANGELOG.md) - [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) - [PROJECT_IDENTITY.md](PROJECT_IDENTITY.md) - [Docs/ASSET_PROVENANCE.md](Docs/ASSET_PROVENANCE.md) - [Docs/MODERN_MANA.md](Docs/MODERN_MANA.md) - [Docs/PERFORMANCE.md](Docs/PERFORMANCE.md) โ€” player cache limits and other performance notes - [Docs/UPSTREAM_README.md](Docs/UPSTREAM_README.md) โ€” the Dusk fork's README, kept for reference - [LICENSES/](LICENSES) ## ๐Ÿ™ Credits Original addon and modules by **Shagu**. Additional maintenance and Turtle WoW work by **paokkerkir**. ClassicAPI compatibility fork maintained by **Dusk-92**. Special thanks to **Sandrea** for providing **AoELoot**, adapted here as the **AoE Loot** module. Special thanks to **Jesper_92** for reporting issues that helped improve the addon. Additional code and ideas from **pfUI** and **zUI**. Swing Timer, Wand Timer and Loot History ported from **brues-code/pfUI** (MIT, Shagu and contributors). Extended Movable Unit Frames support adapted from **TokensWorth/ShaguTweaks-mods**, originally released under MIT by **GryllsAddons**. See `THIRD_PARTY_NOTICES.md`. Released under the original **MIT License**.