Standalone click casting for WoW 1.12 clients (OctoWoW / Turtle / vanilla).
The behaviour is a port of pfUI's click casting (pfUI/api/unitframes.lua →
EnableClickCast / ClickAction), lifted out of pfUI so it works with any
unit frames instead of only pfUI's own.
Drop the Clickcast folder into Interface\AddOns\, so that
Interface\AddOns\Clickcast\Clickcast.toc exists. No dependencies — pfUI is
not required.
If you downloaded the ZIP from GitHub, rename the folder. GitHub unpacks it as
Clickcast-main, and WoW requires the folder name to match the.tocname. Left asClickcast-mainthe addon never appears in the AddOns list at all. Rename it to exactlyClickcast.
Type /cc status first. It prints everything needed to tell these apart:
symptom in /cc status |
cause | fix |
|---|---|---|
| command does nothing / unknown | addon never loaded | folder must be named Clickcast; also tick Load out of date AddOns on the character select AddOns screen |
bound actions: NONE |
nothing configured | settings are per character and every slot starts empty — open /cc and enter a spell name |
hooked unit frames: none |
your unit frames weren't detected | run /cc scan; if still none, open an issue naming your unit frame addon |
click casting: OFF |
disabled | /cc on |
SuperWoW: not detected |
no SuperWoW | works anyway, but each cast briefly switches your target and switches back |
Settings do not travel with the addon files. Copying the folder to another person or another character gives them an empty config, not yours.
/cc opens the settings window. Also /clickcast and /ccast.
| command | effect |
|---|---|
/cc |
open the settings window |
/cc status |
why isn't it casting? start here |
/cc on / /cc off |
toggle click casting |
/cc scan |
re-scan the UI for unit frames |
/cc list |
list every hooked frame and the unit it resolved to |
/cc debug |
print each frame as it gets hooked |
Each of the five mouse buttons has four slots: plain, Shift, Alt and Ctrl — exactly the set pfUI exposes under Unit Frames → Click Casting.
| value | effect |
|---|---|
| (empty) | leave the click alone — the frame keeps its normal behaviour |
Flash of Light |
cast that spell on the clicked unit |
Flash of Light(Rank 4) |
cast a specific rank |
/script UseAction(1) |
anything starting with / is run as macro text |
target |
target the clicked unit |
menu |
open the unit's dropdown menu |
Only one modifier at a time is recognised, matching pfUI. Holding two at once resolves to nothing and the click falls through to normal behaviour.
- the default Blizzard frames (player, pet, target, target-of-target, party 1-4 and their pets)
- the Blizzard raid window and raid pullouts — those buttons carry no usable unit id, so the unit is resolved from the name shown on the button
- any other frame in the UI that resolves to a valid unit, if Auto-detect unit
frames from other addons is on. This covers pfUI, HoryUI, and most other
unit frame addons, which expose the unit as
frame.unitor, in pfUI's case,frame.label+frame.id. - anything registered the Clique way:
ClickCastFrames[myFrame] = true
Other addons can also register explicitly:
Clickcast:Register(myFrame) -- unit resolved automatically
Clickcast:Register(myFrame, "party2") -- or pinned to a fixed unitpfUI owns its unit frames outright, so its click handler replaces everything. Clickcast layers on top of frames it does not own, so:
- A click is only intercepted when something is bound to that exact button and
modifier. Unbound clicks are handed to the frame's original
OnClick, so targeting, right-click menus, spell-cursor targeting and dropping items on party members all keep working untouched. - Hooked frames are widened to accept all five mouse buttons. Middle-click and buttons 4/5 do nothing unless you bind them.
- With pfUI installed, Disable pfUI's built-in click casting (on by default) neutralises pfUI's own handler so the two can't both fire on one click.
When SuperWoW is loaded, casts go through CastSpellByName(spell, unit) and
your target is never touched. Without it, Clickcast falls back to pfUI's
approach: target the unit, cast, then restore the previous target. The
Use SuperWoW direct casting option in the Frames tab controls this.
| file | contents |
|---|---|
core.lua |
namespace, saved variables, helpers, slash commands |
engine.lua |
unit resolution, frame hooking, the click handler |
frames.lua |
frame discovery and event handling |
gui.lua |
settings window |
Settings are stored per character in ClickcastDB.
The click-casting logic is derived from pfUI
by Eric Mauser (Shagu) — pfUI/api/unitframes.lua (EnableClickCast /
ClickAction) and the RunMacroText shim from pfUI/compat/vanilla.lua.
MIT licensed, retaining pfUI's copyright notice. See LICENSE.