Knickili - Midnight Rotation Helper

Damage Dealer 2 more categories

A rotation helper that indicates which keybind is bound to the key shown by the Single Button Assistant. As a tribute to the no longer maintained addon Hekili.

WoW 12.0.7 Actively Maintained

Trend Explorer

Recent download momentum

Hourly download deltas for the last 48 hours.

Latest hour +0 Jun 2, 12 PM
Peak hour +90 Jun 3, 9 AM
Average +3 per hour

About this addon

What it does

Knickili – Midnight Rotation Helper

A lightweight World of Warcraft addon that shows the icon and keybind of the spell currently recommended by your Single Button Assistant — always visible, right when you need it.

Thank you!!!

Knickili just passed 7,000 downloads, which is wild because I genuinely thought maybe five people would ever use it. Huge thanks to everyone who tried it, broke it, improved it, or just vibed with it. You’re all awesome.


Features

  • Live icon display — automatically shows the spell recommended by Blizzard's C_AssistedCombat API (Midnight 12.0+).
  • Visual availability feedback — spell icon dims and shows a dark overlay when not ready (insufficient resources/on cooldown).
  • Keybind label — the key for that spell is shown directly on the icon in white outlined text. Modifier keys and numpad entries are abbreviated for compactness (e.g. SHIFT-NUMPAD0S-N0).
  • Zero configuration — just install and play. No setup, no slot tracking, no manual placement needed.
  • Macro support — automatically detects spells in macros to find keybinds on your action bars.
  • Form/stance support — automatically detects druid shapeshift forms (Bear, Cat, Travel, Moonkin) and rogue stealth, showing the correct keybind for the spell on the active bar.
  • Customisable border & glow — choose any colour for the border and glow via the options panel, or hide them entirely with a checkbox.
  • Cooldown sweep — uses WoW's native CooldownFrameTemplate with spell-based cooldown tracking.
  • Draggable frame — click and drag to reposition the display anywhere on screen while unlocked.
  • Lockable position — lock the frame to prevent accidental movement; unlock reveals X/Y sliders for pixel-perfect placement.
  • Icon size — resize the display from 24 to 128 px in steps of 8.
  • Transparency — set the opacity of the entire display from 0–100%.
  • Display visibility — show or hide the frame from the options panel or via slash commands.
  • Persistent settings — all settings are remembered across sessions and per-specialization via SavedVariables.
  • In-game options panel — accessible via Esc → Options → AddOns → Knickili, with a scrollable layout.

Installation

  1. Download or clone this repository.
  2. Copy the Knickili folder into your AddOns directory:
   World of Warcraft\_retail_\Interface\AddOns\Knickili\
  1. Launch (or reload) the game and enable Knickili in the AddOns list on the character select screen.

Usage

Initial setup

Knickili requires no setup. Just install the addon and it will automatically display the spell recommended by your Single Button Assistant. The addon queries Blizzard's C_AssistedCombat API directly — no need to place SBA on action bars or configure anything.

Slash commands

Command Description
/kn Open the Knickili options panel.
/kn show Show the display frame.
/kn hide Hide the display frame.
/kn status Show API mode, current spell, and availability status.
/kn help Print a command summary to chat.

Options

All options are available under Esc → Options → AddOns → Knickili (scrollable panel):

Option Description
Keybind Font Size Adjusts the size of the keybind label on the icon (range 8–32, step 2).
Icon Size Resizes the entire display (range 24–128 px, step 8). Default is 64 px.
Transparency Sets the opacity of the whole display (0 = invisible, 100 = fully opaque).
Border Colour Choose any colour for the border and glow using the built-in colour picker.
Border → Hide Checkbox that hides the border and glow entirely (stops the pulse animation).
Display Visibility Show or hide the display frame.
Lock Position Lock the frame to prevent dragging. When unlocked, X and Y sliders allow pixel-perfect positioning. The sliders show the current UI coordinate space, which is your physical resolution divided by your UI Scale.

Settings are saved per character and per specialization via the KnickiliDB SavedVariable. When you change specs, your settings for that spec are automatically loaded.


Compatibility

Version Status
WoW Midnight 12 ✅ Fully supported
The War Within 11.x ✅ Compatible
Dragonflight 10.x ✅ Compatible (legacy Settings API fallback)

How it works

Knickili leverages WoW Midnight 12.0's C_AssistedCombat API to query the rotation engine directly:

  • C_AssistedCombat.GetNextCastSpell() — Returns the spell ID currently recommended by the Single Button Assistant
  • C_AssistedCombat.IsAvailable() — Returns whether the spell can be cast (checks resources, cooldowns, etc.)
  • C_Spell.GetSpellCooldown(spellID) — Queries cooldown information by spell ID

No slot tracking, no macro parsing for rotation detection, no manual setup. The addon simply asks Blizzard's rotation system "what spell should I cast?" and displays it with visual feedback for availability.

Keybind lookup still searches your action bars to find where you've placed the recommended spell (or a macro containing it) so it can show you which key to press.

The X/Y position sliders operate in WoW's virtual UI coordinate space, not physical pixels. This space equals your physical resolution divided by your UI Scale setting — so a 2560×1440 monitor at 1.2 UI Scale would show a coordinate space of roughly 2133×1200. This is expected behaviour.


Changelog

Version 1.8.0 (May 2026)

  • Major: Migrated to C_AssistedCombat API architecture
    • Now uses C_AssistedCombat.GetNextCastSpell() to query recommended spell directly
    • No longer requires SBA button to be placed on action bars
    • Removed all slot-tracking, auto-detection, and fallback code
    • Removed SBA drag button from options panel - no manual placement needed
    • Architecture fully leverages Midnight 12.0+ C_AssistedCombat namespace
  • New: Visual feedback for spell availability
    • Uses C_AssistedCombat.IsAvailable() to check if spell can be cast
    • Not ready state shows: desaturation + dark overlay + vertex dimming
    • Glow dims to 20% when unavailable (respects border hidden setting)
    • Clear visual indication when spell is not castable due to resources/cooldown
  • Changed: Cooldown display now uses spell-based API
    • Uses C_Spell.GetSpellCooldown(spellID) instead of slot-based queries
    • No longer requires ActionButton_ApplyCooldown or slot tracking
    • More reliable cooldown tracking independent of action bar state
  • Removed: Debug mode and slot inspection features
    • Removed /kn debug command (no longer relevant without slot tracking)
    • Removed debug hooks and slot inspection functions
    • Removed all slot-mapping and detection code
  • Removed: API_TEST.lua development tool from production build
  • Updated: /kn status command now shows API mode and spell availability
  • Updated: Options panel intro text reflects C_AssistedCombat architecture

Version 1.6.5 (April 2026)

  • Fixed: Minus key keybind now displays correctly
    • Resolved issue where the minus (-) keybind was not shown properly on the icon

Version 1.6.4 (April 2026)

  • Fixed: Combat taint error with cooldown comparisons
    • Wrapped ShowGCDSweep() in pcall to protect against tainted startTime values during combat
    • Wrapped UpdateCastingSweep() in pcall to protect against tainted cast time values during combat
    • Resolves error: "attempt to compare field 'startTime' (a secret number value tainted by 'Knickili')"
    • Addon now gracefully handles WoW's combat-protected values without breaking or spamming errors
    • All cooldown sweeps continue working normally in and out of combat

Version 1.6.3 (March 2026)

  • Fixed: GCD sweep now shows for instant-cast spells
    • Detects instant-cast spells via UNIT_SPELLCAST_SUCCEEDED event
    • Shows GCD sweep when no cast bar is present (instant casts like Arcane Shot, Multi-shot, Volley)
    • Uses C_Spell.GetSpellCooldown to read GCD data (returns table in Midnight 12.0+)
    • Tracks GCD end time to prevent premature sweep clearing
    • Works correctly with both instant casts and spells with cast times
    • Prevents UpdateCastingSweep from clearing the GCD sweep before it expires
  • Removed: Spammy "Loaded settings for current specialization" message
    • This message was firing 6 times when changing spec and on every party roster change
    • Settings still load automatically per spec, just silently now

Version 1.6.2 (March 2026)

  • Fixed: Cooldown sweep now properly tracks all casts and channels
    • Tracks all player casts/channels regardless of spell (not just rotation spell)
    • Resolves issue where cast tracking stopped working after channeled spells
    • Sweep duration now accurately matches actual cast/channel time
    • Works correctly when using direct keybinds instead of clicking Single Button Assistant
    • Prevents combat-protected cooldown system from overriding manual cast sweeps

Version 1.6.1 (March 2026)

  • Added: Initial cast/channel time tracking implementation
    • Shows cast time sweep while casting the rotation spell
    • Shows channel time sweep while channeling the rotation spell
    • Channel sweep overrides GCD ready state to show full channel duration
    • Immediately resets to actual cooldown when cast/channel finishes or is interrupted
    • Ensures the sweep accurately reflects when you're actively casting/channeling
  • Changed: Settings are now character and specialization-specific
    • Each character's specs have independent settings (size, color, position, border, etc.)
    • Settings automatically switch when changing specializations
    • Position, appearance, and all options are remembered per spec

Version 1.6.0 (March 2026)

  • New: Form/stance detection for druids and rogues
    • Automatically detects active druid shapeshift forms (Bear, Cat, Travel, Moonkin)
    • Automatically detects rogue stealth
    • Shows the correct keybind for the spell on the active form/stance bar
    • Prioritizes active bar slots when finding keybinds
  • New: Added slot mappings for all form/stance bars
    • Cat Form / Rogue Stealth: Slots 73-84
    • Bear Form: Slots 97-108
    • Moonkin Form: Slots 109-120
    • Travel Form: Slots 121-132
  • New: Instant display updates when shifting forms via UPDATE_SHAPESHIFT_FORM and UPDATE_STEALTH events
  • New: /kn debug command - toggle slot inspection mode to click action buttons and see their slot numbers, bindings, and spell info

Version 1.5.2 (March 2026)

  • Removed: Manual slot picker - no longer needed
    • Removed "Rotation Button Slot" UI section from options panel
    • Removed /kn set command
    • Auto-detection using "assistedcombat" subType is now the only method
  • Improved: Simplified setup process - just place SBA on a bar and /reload

Version 1.5.1 (March 2026)

  • New: Automatic Single Button Assistant slot detection on login
    • Scans all action slots and automatically sets the rotation slot if SBA is found
    • Only runs if no valid rotation slot is currently set
    • Eliminates the need to manually pick the slot in most cases

Version 1.5.0 (March 2026)

  • Fixed: Corrected action bar slot-to-keybind mappings for all 8 action bars
    • Bar 1 (ACTIONBUTTON): Slots 1-12
    • Bar 2 (MULTIACTIONBAR1): Slots 61-72
    • Bar 3 (MULTIACTIONBAR2): Slots 49-60
    • Bar 4 (MULTIACTIONBAR3): Slots 25-36
    • Bar 5 (MULTIACTIONBAR4): Slots 37-48
    • Bar 6 (MULTIACTIONBAR5): Slots 145-156
    • Bar 7 (MULTIACTIONBAR6): Slots 157-168
    • Bar 8 (MULTIACTIONBAR7): Slots 169-180
  • Improved: Macro spell detection now parses macro body for #showtooltip and /cast lines
  • Improved: Extended slot range scanning to support all WoW action bar configurations
  • Changed: Unbound spells now display "?" instead of "No Bind" for better display fit

Version 1.4.1 (March 2026)

  • Initial release with full WoW Midnight 12.0 support
  • Combat-protected cooldown API compatibility
  • Draggable frame with customizable appearance
  • Support for all standard action bars

Author

Knicklighter-Stormscale


License

All Rights Reserved. You are welcome to share this addon with friends, but please do not redistribute modified versions without permission.

At-a-glance numbers

Performance highlights

  • Peaked at Hot #101 on May 29, 2026.
  • Peaked at Rising #96 on May 31, 2026.
  • Featured on the Hot list across 5 distinct weeks.
  • Shipped 3 releases in the last 30 days.
  • Averaging 233 new downloads per day over the past week.

Visuals

Screenshots 3

Use real gameplay shots to assess the addon before installing.

Discover more

Keep exploring

Similar addons you might also want to check out.