Caster Form
/run for i = 1, GetNumShapeshiftForms() do local _, _, active = GetShapeshiftFormInfo(i) if active then CastShapeshiftForm(i) return end end
Bear Form / Charge
/run local _, _, active = GetShapeshiftFormInfo(1) if not active or IsControlKeyDown() then CastShapeshiftForm(1) else CastSpellByName"Feral Charge" end
Cat Form / Prowl
/run local _, _, active = GetShapeshiftFormInfo(3) if not active or IsControlKeyDown() then CastShapeshiftForm(3) else CastSpellByName"Prowl" end
Aquatic / Travel Form
/run UIErrorsFrame:UnregisterEvent"UI_ERROR_MESSAGE" for i = 2, GetNumShapeshiftForms(), 2 do local _, _, active = GetShapeshiftFormInfo(i) if not active then CastShapeshiftForm(i) end if i == 2 then UIErrorsFrame:RegisterEvent"UI_ERROR_MESSAGE" end end