Pretty simple WHM xml here. Some things are automated (Aflatus Misery for Esuna, Light Arts before strategems, etc) but it's mostly meant for WHMs who idle in their cure gear. I use a macro to switch to Herald's Gaiters when I need them.
I've set up some pretty basic melee rules in here because I usually get stuck doing red triggers in abyssea.
<?xml version="1.0"?>
<spellcast>
<config
Debug="true"
/>
<variables clear="yes">
<!-- What to wear on not-Lightsday -->
<var name="Belt">Pythia Sash +1</var>
<!-- G15 tank party coverage setup - can remove -->
<var name="tank1" />
<var name="tank2" />
</variables>
<sets>
<group name="WHM">
<!-- As taru, I -never- wear anything on WHM that lowers my HP. This set has
plenty of MND to cap stoneskin. Cure potency capped at 50%. -->
<set name="Idle">
<main>Surya's Staff +1</main>
<sub>Raptor Strap +1</sub>
<ammo>White Tathlum</ammo>
<head>Orison Cap +2</head>
<neck>Beguiling Collar</neck>
<lear>Novia Earring</lear>
<rear>Roundel Earring</rear>
<body>Aristocrat's Coat</body>
<hands>Blessed Mitts +1</hands>
<lring>Tamas Ring</lring>
<rring>Star Ring</rring>
<back>Orison Cape</back>
<waist>$Belt</waist>
<legs>Orsn. Pantaln. +1</legs>
<feet>Orsn. Duckbills +2</feet>
</set>
<!-- For Devotion, 1685 HP -> 421 Devotion -->
<set name="MaxHP">
<main>Rsv.Cpt. Mace</main>
<sub>Ptr.Prt. Shield</sub>
<head>Walahra Turban</head>
<neck>Cougar Pendant</neck>
<lear>Morukaka Earring</lear>
<rear>Cassie Earring</rear>
<body>Marduk's Jubbah</body>
<hands>Creek F Mitts</hands>
<lring>Meridian Ring</lring>
<rring>Bomb Queen Ring</rring>
<back>Gigant Mantle</back>
<waist>Steppe Sash</waist>
<legs>Oracle's Braconi</legs>
<feet>Creek F Clomps</feet>
</set>
<!-- For reraise, protect(ra), and shell(ra), where recast values don't particularly
matter -->
<set name="FastCast" BaseSet="Idle">
<main>Seveneyes</main>
<sub>Muse Tariqah</sub>
<head>Selenian Cap</head>
<lear>Loquac. Earring</lear>
<body>Marduk's Jubbah</body>
<legs>Nashira Seraweels</legs>
<feet>Nashira Crackows</feet>
</set>
<!-- For haste and raises -->
<set name="Recast" BaseSet="FastCast">
<head>Walahra Turban</head>
<waist>Swift Belt</waist>
</set>
<!-- This will change as I acquire more AF3 +2 pieces. -->
<set name="Bar">
<body>Blessed Briault +1</body>
<legs>Cleric's Pantaln.</legs>
</set>
<!-- Divine skill, M.acc, Haste -->
<set name="Banish" BaseSet="Idle">
<main>Neptune's Staff</main>
<sub>Light Grip</sub>
<rear>Sapphire Earring</rear>
<body>Augur's Jaseran</body>
<hands>Nashira Gages</hands>
<rring>Balrahn's Ring</rring>
<legs>Nashira Seraweels</legs>
<feet>Nashira Crackows</feet>
</set>
<set name="Repose" BaseSet="Banish">
<main>Apollo's Staff</main>
<lring>Balrahn's Ring</lring>
</set>
<!-- hMP +41, can't currently get very much better. (I know, need Legion
Scutum and new craftable body, but I said "very much better" not "zomg
best hMP set evar!")-->
<set name="Resting" BaseSet="Idle">
<main>Pluto's Staff</main>
<ammo>Clarus Stone</ammo>
<head>Mirror Tiara</head>
<neck>Eidolon Pendant</neck>
<lear>Relaxing Earring</lear>
<rear>Antivenom Earring</rear>
<!-- Removed for higher efficiency resting -->
<!--<body>Oracle's Robe</body>-->
<hands>Oracle's Gloves</hands>
<lring>Star Ring</lring>
<rring>Star Ring</rring>
<back>Felicitas Cape</back>
<waist>Austerity Belt</waist>
<legs>Oracle's Braconi</legs>
<feet>Goliard Clogs</feet>
</set>
<set name="Melee">
<head>Walahra Turban</head>
<neck>Peacock Charm</neck>
<body>Reverend Mail</body>
<lring>Sniper's Ring +1</lring>
<rring>Blood Ring</rring>
<waist>Swift Belt</waist>
<legs>Nashira Seraweels</legs>
<feet>Nashira Crackows</feet>
</set>
</group>
</sets>
<rules>
<!-- Yay abyssea red triggers -->
<if TPGT="15">
<disable slot="main|sub|range" />
</if>
<elseif TPLT="10">
<enable slot="main|sub|range" />
</elseif>
<if spell="autoset">
<equip when="idle" set="Idle" />
<equip when="resting" set="Resting" />
<command when="resting">wait 15;input /equip body "Oracle's Robe"</command>
<equip when="engaged" set="Melee" />
</if>
<if notBuffActive="Afflatus*">
<if notBuffActive="Impairment">
<addtochat color="121">----------[: Afflatus :]----------</addtochat>
</if>
</if>
<!-- Avoids chat spam when subjob level is 0 (salvage, dynamis) -->
<if SubJob="SCH" SLvlGT="1">
<if notBuffActive="Light Arts|Dark Arts|Addendum*">
<if notBuffActive="Impairment">
<addtochat color="121">----------[: Arts :]----------</addtochat>
</if>
</if>
</if>
<if Type="JobAbility">
<if SubJob="SCH">
<!-- Change Light Arts strategems to Dark Arts equivalents if Dark Arts is active -->
<if BuffActive="Dark Arts|Addendum: Black">
<if Spell="Celerity">
<changespell Spell="Alacrity" />
</if>
<elseif Spell="Penury">
<changespell Spell="Parsimony" />
</elseif>
<elseif Spell="Accession">
<changespell Spell="Manifestation" />
</elseif>
</if>
<else>
<!-- Activate Light Arts if not already active when strategems macros are
used -->
<if Spell="Celerity" notBuffActive="Light Arts">
<changespell Spell="Light Arts" />
<command when="aftercast">pause 1;input /ma "Celerity" <me></command>
</if>
<elseif Spell="Penury" notBuffActive="Light Arts">
<changespell Spell="Light Arts" />
<command when="aftercast">pause 1;input /ma "Penury" <me></command>
</elseif>
<elseif Spell="Accession" notBuffActive="Light Arts">
<changespell Spell="Light Arts" />
<command when="aftercast">pause 1;input /ma "Accession" <me></command>
</elseif>
<!-- Only reason to use Dark Arts is for access to black magic, so activate
Addendum also -->
<elseif Spell="Dark Arts">
<command when="aftercast">pause 1;input /ma "Addendum: Black" <me></command>
</elseif>
</else>
</if>
<if Spell="Devotion">
<!-- In-game macro is simple:
/ma "Cure V" <me>
/wait 4
/ja "Devotion" <stpt>
Aftercast delay is to prevent HP loss from gear swapping too soon...rare,
but happens! -->
<aftercastdelay delay="2" />
<equip when="aftercast" set="Idle" />
</if>
</if>
<elseif Type="WhiteMagic">
<!-- Probably could have used AutoExec to handle day rule but this is unintrusive
and never fails me -->
<if Advanced='"%WeatherElement" = "Light" OR "%DayElement" = "Light"'>
<var cmd="set Belt Korin Obi" />
</if>
<else>
<var cmd="set Belt Pythia Sash +1" />
</else>
<if Spell="Stoneskin">
<!-- Changes cancel delay if Celerity is active. No need for special gear,
idle set has plenty of MND for capped stoneskin (taru) -->
<if notBuffActive="Celerity">
<midcastdelay delay="4" />
<command when="MidCast">cancel 37</command>
</if>
<else>
<midcastdelay delay="2" />
<command when="MidCast">cancel 37</command>
</else>
</if>
<elseif Spell="Cure V*">
<!-- Usually only Cure 5ing myself for Devotion, so put on MaxHP gear and
stop parsing. -->
<if SpellTargetType="Self" HPGT="900">
<equip when="precast" set="MaxHP" />
<return />
</if>
<else>
<equip when="precast" set="Idle" />
<if Status="Engaged">
<equip when="aftercast" set="Melee" />
</if>
</else>
</elseif>
<!-- For the love of god, max -enmity for Curagas... -->
<elseif Spell="Cura*">
<equip when="precast">
<sub>Staff Strap</sub>
<head>Mirror Tiara</head>
<hands>Marduk's Dastanas</hands>
<rring>Trooper's Ring</rring>
</equip>
<equip when="aftercast" set="Idle" />
</elseif>
<elseif Spell="Regen*">
<equip when="precast">
<body>Cleric's Briault</body>
</equip>
<equip when="aftercast">
<body>Aristocrat's Coat</body>
</equip>
</elseif>
<elseif Spell="Barstonra|Barwatera|Baraera|Barfira|Barblizzara|Barthundra">
<equip when="precast" set="Bar" />
<castdelay delay=".2" />
<if notStatus="Engaged">
<equip when="aftercast" set="Idle" />
</if>
<else>
<equip when="aftercast" set="Melee" />
</else>
</elseif>
<elseif Spell="Haste">
<equip when="precast" set="Recast" />
<if notStatus="Engaged">
<equip when="aftercast" set="Idle" />
</if>
<else>
<equip when="aftercast" set="Melee" />
</else>
<!-- Only notify when Haste is cast on myself, otherwise chatlog spam is
excessive. I use <command></command> here instead of <addtochat>
</addtochat> because I needed to utilize aftercast without a delay.
Requires AddToChat plugin, available here:
http://windower.net/plugins/AddToChat.dll -->
<if Advanced='"%SpellTargetName" = "Giacorleone"'>
<command>pause 170;input //addtochat 121 **************************************** [: Haste :] ****************************************</command>
</if>
</elseif>
<elseif Spell="Reraise*|Protect*|Shell*">
<if Spell="Protectra*|Shellra*">
<!-- Damn people always trying to stand as far away as possible... -->
<command>input /p %Spell » Stay put! «</command>
</if>
<equip when="precast" set="FastCast" />
<if notStatus="Engaged">
<equip when="aftercast" set="Idle" />
</if>
<else>
<equip when="aftercast" set="Melee" />
</else>
</elseif>
<elseif Spell="Raise*">
<equip when="precast" set="Recast" />
<if notStatus="Engaged">
<equip when="aftercast" set="Idle" />
</if>
<else>
<equip when="aftercast" set="Melee" />
</else>
</elseif>
<elseif Spell="Esuna" notBuffActive="Afflatus Misery">
<changespell Spell="Afflatus Misery" />
<command when="aftercast">pause 1;input /ma "Esuna" <me></command>
</elseif>
<elseif Spell="Banish*|Holy">
<equip when="precast" set="Banish" />
<if notStatus="Engaged">
<equip when="aftercast" set="Idle" />
</if>
<else>
<equip when="aftercast" set="Melee" />
</else>
</elseif>
<elseif Spell="Repose">
<equip when="precast" set="Repose" />
<if notStatus="Engaged">
<equip when="aftercast" set="Idle" />
</if>
<else>
<equip when="aftercast" set="Melee" />
</else>
</elseif>
</elseif>
</rules>
</spellcast>