Hello. This is my blm.xml.
Everything works fully. It's up to complete standards for V 3.431.
Please take advantage of this xml file and enjoy your adventures in Vana'diel.
<?xml version="1.0" ?>
<!DOCTYPE spellcast PUBLIC "spellcast" "spellcast.dtd">
<spellcast xmlns:xi="http://www.w3.org/2001/XInclude">
<config
ShowGearSwaps="false"
Debug="false"
ShowSpellInfo="false"
/>
<sets>
<!--
Set overview:
Idle = -% physical damage, movement speed set. References $EarthStaff. Some of the idle gear is town gear.
Resting = Healing MP set.
Fast Cast = Pre-cast fast cast set. For Yellow HP, this set also forces Yellow HP.
Recast = Set that is used to focus recast time. This is mainly used for status cures and Stun.
Cure = Set for Cures.
Nuking = Elemental Magic damage set.
Enfeebling = Enfeebling Magic set.
Dark = Dark Magic set.
ElementalDebuff = Set that optimizes the DoT and landing rate of elemental debuffs. References $INTStaff.
Stoneskin = Set that caps out Stoneskin absorbtion.
Blink = Based on the Idle set. Adds in additional fast cast items as appropiate.
Utsu = Based on recast. Adds in additional -% physical damage as appropiate. References $EarthStaff.
Spikes = Optimizes Spike damage.
Melee = lolblmmelee set.
-->
<!-- Normal: Max DMG set -->
<group default="yes" name="normal">
<set name="Idle">
<main>Teiwaz</main>
<sub>Wise Strap</sub>
<lear>Moldavite Earring</lear>
<rear>Novio Earring</rear>
<head>Goetia petasos +1</head>
<body>Yhel Jacket</body>
<hands>Goetia Gloves +1</hands>
<lring>Tamas Ring</lring>
<rring>Omega Ring</rring>
<back>Searing Cape</back>
<waist>Searing sash</waist>
<legs>Tatsumaki sitagoromo</legs>
<feet>Goetia sabots +1</feet>
<ammo>Witchstone</ammo>
<neck>Lmg. Medallion</neck>
</set>
<set name="Resting">
<main>$DarkStaff</main>
<sub>Wise Strap</sub>
<ammo>Clarus Stone</ammo>
<head>Selenian cap</head>
<body>Errant Houppelande</body>
<neck>Grandiose Chain</neck>
<lear>Loquacious earring</lear>
<rear>Magnetic Earring</rear>
<hands>Goetia gloves +1</hands>
<lring>Tamas Ring</lring>
<rring>Omega Ring</rring>
<back>Ixion cape</back>
<waist>Hierarch belt</waist>
<legs>Goetia chausses +1</legs>
<feet>Goetia Sabots +1</feet>
</set>
<set name="FastCast">
<feet>Rostrum Pumps</feet>
<lear>Loquac. Earring</lear>
</set>
<set name="Recast">
<lear>Loquac. Earring</lear>
<feet>Nashira Crackows</feet>
</set>
<set name="Cure">
<main>$LightStaff</main>
<sub>Bugard leather strap +1</sub>
<head>Selenian cap</head>
<neck>Lmg. Medallion</neck>
<lear>Loquacious Earring</lear>
<rear>Magnetic Earring</rear>
<body>Errant Houppelande</body>
<hands>Augur's gloves</hands>
<lring>Tamas Ring</lring>
<rring>Omega Ring</rring>
<waist>Penitent's Rope</waist>
<legs>Tatsumaki sitagoromo</legs>
<feet>Rostrum Pumps</feet>
<back>Ixion Cape</back>
<ammo>Clarus Stone</ammo>
</set>
<set name="Nuking">
<sub>Wise Srap</sub>
<lear>Moldavite Earring</lear>
<rear>Novio Earring</rear>
<head>Goetia petasos +1</head>
<body>Yhel Jacket</body>
<hands>Goetia Gloves +1</hands>
<lring>Tamas Ring</lring>
<rring>Omega Ring</rring>
<back>Searing Cape</back>
<waist>Searing sash</waist>
<legs>Goetia Chausses +1</legs>
<feet>Goetia sabots +1</feet>
<ammo>Witchstone</ammo>
<neck>Lmg. Medallion</neck>
</set>
<set name="Enfeebling">
<main>Pluto's Staff</main>
<sub>Macero Grip</sub>
<neck>Enfeebling Torque</neck>
<head>Selenian cap</head>
<body>Wizard's Coat</body>
<lear>Loquacious Earring</lear>
<rear>Magnetic Earring</rear>
<hands>Goetia gloves +1</hands>
<lring>Tamas Ring</lring>
<waist>Searing sash</waist>
<legs>Goetia Chausses +1</legs>
<ammo>Witchstone</ammo>
<back>Ixion Cape</back>
<feet>Rostrum Pumps</feet>
</set>
<set name="Dark">
<main>Pluto's Staff</main>
<sub>Bugard Strap +1</sub>
<head>Selenian cap</head>
<neck>Dark Torque</neck>
<lear>Loquacious Earring</lear>
<rear>Magnetic Earring</rear>
<body>Yhel Jacket</body>
<feet>Goetia Sabots +1</feet>
<back>Ixion Cape</back>
<legs>Wizard's Tonban</legs>
</set>
<set name="ElementalDebuff">
<main>Aquilo's staff</main>
<lear>Loquacious Earring</lear>
<rear>Magnetic Earring</rear>
<head>Goetia petasos +1</head>
<body>Yhel Jacket</body>
<legs>Goetia chausses +1</legs>
<hands>Wizard Gloves +1</hands>
<neck>Elemental Torque</neck>
<lring>Tamas Ring</lring>
<rring>Omega Ring</rring>
<back>Ixion Cape</back>
<waist>Searing sash</waist>
<feet>Nashira Crackows</feet>
<ammo>Witchstone</ammo>
<neck>Lmg. Medallion</neck>
</set>
<set name="Stoneskin">
<main>Neptune's staff</main>
<sub>Raptor leather strap +1</sub>
<head>Selenian cap</head>
<body>Errant Houppelande</body>
<hands>Goetia gloves +1</hands>
<lear>Loquacious Earring</lear>
<rear>Magnetic Earring</rear>
<lring>Tamas Ring</lring>
<rring>Omega Ring</rring>
<back>Ixion Cape</back>
<waist>Penitent's Rope</waist>
<legs>Goetia chausses +1</legs>
<feet>Rostrum Pumps</feet>
</set>
<set name="Blink" BaseSet="Idle">
<lear>Loquac. Earring</lear>
<feet>Rostrum Pumps</feet>
<rear>Magnetic earring</rear>
</set>
<set name="Utsu" BaseSet="Recast">
<main>$EarthStaff</main>
<lear>Loquac. Earring</lear>
<feet>Rostrum Pumps</feet>
<rear>Magnetic earring</rear>
</set>
<set name="Melee" BaseSet="Idle">
<main>Warmage's pole +1</main>
<lear>Loquac. Earring</lear>
</set>
</group>
</sets>
<variables>
<!--
Aht Urghan Mission Reward
Used to force the Aht Urghan reward.
AhtUrghanRing = Ring type to use.
AhtUrghanRingSlot = Slot to use.
-Valid values: rring or lring
-Note: any other value will cause the macro to not execute.
-->
<var name="AhtUrghanRing">Balrahn's Ring</var>
<var name="AhtUrghanRingSlot">rring</var>
<!--
Staff Variables
Change to match the HQ/NQ staff that you have.
-->
<var name="INTStaff">Kirin's Pole</var>
<var name="EarthStaff">Terra's Staff</var>
<var name="WaterStaff">Neptune's Staff</var>
<var name="WindStaff">Auster's Staff</var>
<var name="FireStaff">Vulcan's Staff</var>
<var name="IceStaff">Teiwaz</var>
<!--Aquilo's Staff-->
<var name="ThunderStaff">Jupiter's Staff</var>
<var name="DarkStaff">Pluto's Staff</var>
<!--<var name="DrainStaff">Yama's Staff</var>-->
<var name="DrainStaff">Pluto's Staff</var>
<var name="LightStaff">Apollo's Staff</var>
<!--
Obi Variables.
DO NOT CHANGE
They are used in translating $%SpellElementObi into the appropiate obi.
-->
<var name="EarthObi">Dorin Obi</var>
<var name="WaterObi">Suirin Obi</var>
<var name="WindObi">Furin Obi</var>
<var name="FireObi">Karin Obi</var>
<var name="IceObi">Hyorin Obi</var>
<var name="ThunderObi">Rairin Obi</var>
<var name="DarkObi">Anrin Obi</var>
<var name="LightObi">Korin Obi</var>
</variables>
<rules>
<!--
Stun set.
Placed at the very top to ensure that Stun executes as fast as possible.
Focuses only staff opitmization, recast optimizations, and aftercast idle set
Aftercast is repeated here since it returns immediately.
-->
<if spell="Stun">
<equip when="precast">
<main>$ThunderStaff</main>
<lear>Loquac. Earring</lear>
<feet>Rostrum Pumps</feet>
<rear>Magnetic earring</rear>
</equip>
<equip when="precast" Set="Recast" />
<equip when="aftercast" set="Idle" />
<return />
</if>
<!--
Force the Aht Urghan Ring to lock into position.
Uses $AhtUrghanRing to locate the ring and $AhtUrghanRingSlot to determine if it should be rring, lring, or not used.
-->
<if Area="* Remnants|Nyzul Isle|Mamool Ja Training Grounds|Lebros Cavern|Leujaoam Sanctum|Periqia">
<if Advanced='"$AhtUrghanRingSlot"="rring"'>
<equip when="precast|midcast|aftercast">
<rring lock="t">$AhtUrghanRing</rring>
</equip>
</if>
<elseif Advanced='"$AhtUrghanRingSlot"="lring"'>
<equip when="precast|midcast|aftercast">
<lring lock="t">$AhtUrghanRing</lring>
</equip>
</elseif>
</if>
<!--
If subjob is NIN, use White Mage friendly names of spellnames.
This is useful for condensing macro sets so that a special NIN SJ set is not needed.
It's also friendlier for people who can't type Utsusemi very well.
Blink = Utsu: Ichi
Stoneskin = Utsu: Ni
Sneak = Monomi: Ichi
Invisible = Tonko: Ni
-->
<if SubJob="NIN">
<if Spell="Blink">
<changespell Spell="Utsusemi: Ichi" />
</if>
<elseif Spell="Stoneskin">
<changespell Spell="Utsusemi: Ni" />
</elseif>
<elseif Spell="Sneak">
<changespell Spell="Monomi: Ichi" />
</elseif>
<elseif Spell="Invisible">
<changespell Spell="Tonko: Ni" />
</elseif>
</if>
<!--
Utility: Change targets to prevent silly errors that are obviously wrong.
-->
<if SpellTargetType="MONSTER" NotValidTarget="*Enemy*" ValidTarget="*Self*">
<action type="changetarget" target="<me>" />
</if>
<elseif SpellTargetType="NONE" ValidTarget="*Self*">
<action type="changetarget" target="<me>" />
</elseif>
<if Skill="*Magic">
<equip when="precast" set="FastCast" />
<midcastdelay delay="1.3" />
</if>
<!--
Main If/elif
Performs the following checks in order.
Since this is an if structure, this switches in
1 ) AutoSet -> spellcast special auto set rules
2 ) All Elemental Magic -> switches between ele DoT vs magic damage
3 ) All Dark Magic
4 ) All Enfeebling Magic
5 ) Stoneskin
6 ) Blink
7 ) Cures
8 ) Utsusumei
9 ) Sneak and Invisible
10 ) Spikes.
11 ) Status Cures (*na and Erase) & Transportation Spells
12 ) Spirit Taker | Vidohunir
-->
<if spell="autoset">
<equip when="idle" set="Idle" />
<equip when="resting" set="Resting" />
</if>
<elseif skill="ElementalDebuff">
<!-- If the cast time is too short, forego fast cast because of midcast delay -->
<if Advanced="%Casttime < 4">
<equip when="precast" Set="Nuking" />
</if>
<!-- Always use elemental staff -->
<equip when="precast">
<main>$%SpellElementStaff</main>
</equip>
<if notspell="Shock|Choke|Burn|Frost|Rasp|Drown">
<!-- Delay for equipping the rest of the equipment midcast -->
<!--
If elemental seal is active, use the damage set from the highest damage group.
Otherwise, use the nuking set from the current group.
-->
<if BuffActive="Elemental Seal">
<equip when="precast" Set="Nuking" SetGroup="Normal" />
</if>
<else>
<equip when="precast" Set="Nuking" />
</else>
<!-- Obi Rules -->
<if advanced='"%SpellElement"=="%WeatherElement" or "%SpellElement"=="%DayElement"'>
<equip when="midcast">
<waist lock="t">$%SpellElementObi</waist>
</equip>
</if>
<!--
IF we are in the Yellow HP or Normal group (i.e. two highest damage sets that ignore accuracy entirely)
Then equip the Sorcerer's Ring, Uggalepih Pendant, and Sorcerer's Tonban IF the conditions for their use are met.
-->
<action type="Addtochat">--| %group Nuke Set |--</action>
<if advanced='"%MPPaftercast"<"50"'>
<if spell="Bli*|Fre*|Aer*|Tor*|Sto*|Qua*|Thu*|Bur*|Wat*|Flo*|Fir*|Fla*">
<action type="equip" when="MidCast">
<neck>Uggalepih Pendant</neck>
</action>
</if>
</if>
<if advanced='("%SpellElement"=="%DayElement x2")'>
<action type="equip" when="Midcast">
<waist>$%SpellElementObi</waist>
<legs>Sorcerer's Tonban</legs>
<rring>Zodiac Ring</rring>
</action>
</if>
<if advanced='("%SpellElement"=="%DayElement")'>
<action type="equip" when="Midcast">
<waist>$%SpellElementObi</waist>
<legs>Sorcerer's Tonban</legs>d
<rring>Zodiac Ring</rring>
</action>
</if>
<if advanced='("%SpellElement"=="%WeatherElement")'>
<action type="equip" when="Midcast">
<waist>$%SpellElementObi</waist>
</action>
</if>
<if hpplt="75">
<equip when="midcast" set="%skill">
<lring>Sorcerer's Ring</lring>
</equip>
</if>
</if>
<else>
<equip when="precast" Set="ElementalDebuff" />
</else>
</elseif>
<elseif skill="DarkMagic">
<equip when="precast">
<main>$DrainStaff</main>
</equip>
<if Mode="OR" DayElement="Dark" WeatherElement="Dark" Area="Dynamis*">
<equip when="midcast">
<waist lock="t">$DarkObi</waist>
</equip>
</if>
<equip when="midcast" Set="Dark" />
<if spell="Bio*">
<equip when="precast" Set="Dark" />
</if>
</elseif>
<elseif skill="EnfeeblingMagic">
<equip when="midcast">
<main>$%SpellElementStaff</main>
</equip>
<equip when="midcast" Set="Enfeebling" />
<if spell="Dia*">
<equip when="precast|midcast" Set="Idle" />
</if>
<elseif spell="Gravity">
<equip when="precast|midcast">
<main>$%SpellElementStaff</main>
</equip>
<equip when="precast|midcast" Set="Enfeebling" />
</elseif>
</elseif>
<elseif Spell="Stoneskin">
<equip when="midcast" Set="Stoneskin" />
<command when="midcast">/wait 4;cancel 37</command>
</elseif>
<elseif Spell="Blink">
<equip when="midcast" Set="Blink" />
</elseif>
<elseif Spell="Cur*">
<equip when="midcast" Set="Cure" />
<if Mode="OR" DayElement="Light" WeatherElement="Light">
<equip>
<waist>$LightObi</waist>
</equip>
</if>
</elseif>
<elseif Spell="Utsusemi*">
<equip when="midcast" Set="Utsu" />
</elseif>
<elseif Spell="* Spikes">
<equip when="midcast" Set="Idle" />
</elseif>
<elseif Spell="*na|Erase|Reraise|Tractor|Refresh">
<equip when="midcast" Set="Recast" />
</elseif>
<elseif Spell="Warp*|Retrace|Escape|Teleport-*">
<if Mode="OR" SpellTargetType = "Self">
<equip when="precast" Set="Idle" />
</if>
<else>
<equip when="midcast" Set="Recast" />
</else>
</elseif>
<elseif Spell="Spirit Taker|Vidohunir">
<equip when="prews" Group="Normal" Set="Nuking" />
<equip when="afterws" Group="Normal" Set="Melee" />
</elseif>
<!-- We always want the idle set equipped aftercast. -->
<equip when="aftercast" Set="Idle" />
</rules>
</spellcast>