The section for trigger spells.
Code
<!--- Trigger Spells --->
<if spell="$TriggerSetOne|$TriggerSetTwo|$TriggerSetThree">
<if spell="$TriggerSetOne">
<!--- Auto Update Gear --->
<if spell="Dancing Chains">
<cancelspell />
<if status="idle">
<equip set="%Status|$Armor-%Status" />
</if>
<elseif status="engaged">
<if advanced='"$VAR-TP"="PDT"'>
<equip set="TP-$VAR-TP|$Armor-%Status" />
</if>
<else>
<equip set="TP-$VAR-TP|$Armor-%Status" />
</else>
</elseif>
<elseif status="engaged">
<equip set="%Status|$TwilightSet" />
</elseif>
</if>
</if>
</if>
You have a section for trigger sets, then another subsection for triggersetone, then one trigger in the whole thing.And both of those rules are variables, so it has to check your single trigger against everything on that variable list. and then again for trigger one alone.
Code
<if spell="Dancing Chains">
<cancelspell />
<if status="idle">
<equip set="%Status|$Armor-%Status" />
</if>
<elseif status="engaged">
<if advanced='"$VAR-TP"="PDT"'>
<equip set="TP-$VAR-TP|$Armor-%Status" />
</if>
<else>
<equip set="TP-$VAR-TP|$Armor-%Status" />
</else>
</elseif>
<elseif status="engaged">
<equip set="%Status|$TwilightSet" />
</elseif>
</if>
Could trim it down like this, and reduce the number of redundant checks.
Also, you see where you have <elseif status="engaged"> and then another one after it? That second one will never parse as true. It's impossible. For an else if to be true, the rule above it must be false, then the rule in it must be true. So if status is not engaged, that rule would be false, and if status is engaged, it'd never even get checked.
I'd fix it, but honestly I dunno what it's supposed to do in the first place.
There doesn't seem to be a return anywhere in the trigger rules. so even though you don't need to parse anything else after completing the trigger rules, it parse the whole rest of the XML.
The dancing chains trigger seems to be returning as true on the ws rules and trying to equip the ws base gear on all your trigger spells. Did this work before? Or is there something in those include that prevents this?
Anyway, I'd suggest a <return/> inside the trigger rule at the very end.
Next up, ws section.
Code
<if type="WeaponSkill">
<castdelay delay="0.03" />
<midcastdelay delay="0.7" />
<if Spell="Camlann's Torment|Drakesbane|Geirskogul|Wheeling Thrust|Sonic Thrust|Penta Thrust|Raiden Thrust|Full Swing|Stardiver|Cataclysm||Shattersoul|Retribution|Geirskogul">
<castdelay delay="0.03" />
<equip set="%Spell" />
</if>
<else>
<equip set="WS Base" />
</else>
<if SubJob="SAM|NIN|WAR|THF|DNC" notBuffactive="Spirit Surge" PetIsValid="True">
<if NotBuffactive="Embrava|March">
<aftercastdelay delay="1.8"/>
<equip when="Midcast" Set="TP-Haste">
<head>Wyrm Armet +2</head>
<neck>Lancer's Torque</neck>
<lear>Dragoon's Earring</lear>
<waist>Glassblower's Belt</waist>
</equip>
</if>
</if>
</if>
You have the same cast delay set twice. Once for ws globally, then again for polearm/staff ws. Next, you have geirskogul in that list twice. And there's a pair of || with nothing inside it. <,<