Here is the spellcast XML I use with my BRD. This is my 2nd XML I've made and is more suited to my end-game needs than some of the other user submitted XMLs here, but anyone can freely edit this for there own needs. This version supports sub BST, WHM, RDM, NIN, and SCH (although the SCH section is theoretical, I haven't tested it yet). This version will also automatically provide support for Pianissimo which can be enabled or disabled. Other features include:

  • spell swapping cures when MP is low
  • Equips user defined Pet Food for /BST reward
  • Applies all day/weather gear including elemental Obis and Diabolos's Earring
  • Has different gear sets to that equip automatically depending on what EG event I am doing
  • Switches to a ranged attack if pulling when silenced.
  • Has support for Main Healing as BRD
  • Automatically applies correct Addendum when /SCH if it is not active (in theory only)
  • many other features

Note: This XML requires the “Cancel” plugin

<?xml version="2.0" ?>
<spellcast>
	<config
		RequiredVersion="2.11"
		HideErrors="false"
		RestingSet="Rest"
		ShowGearSwaps="false"
		Debug="false"
		ShowspellInfo="false"
	/>
 
	<variables clear="false">
 
		<var name="PetFood">Pet Food Zeta</var>
 
		<var name="MainHeal">False</var>
		<!-- MainHeal   = Tells spellcast it is ok to swap equipment slots if it will lower your max MP.
				  This can be toggled in game with "//sc set MainHeal True/False"
		-->
 
		<var name="AddendumTarget">&lt;t&gt;</var>
		<var name="AddendumSpell">String</var>
		<var name="AddendumRules">True</var>
		<!-- AddendumRules   = Tells spellcast if you want it to manage Addendum spells. 
				       This can be toggled in game with "//sc var set AddendumRules True/False"
		-->
 
		<var name="PianTarget">&lt;me&gt;</var>
		<var name="PianSong">String</var>
 
		<var name="Madrigal">"Sword Madrigal"</var>
		<var name="Minuet">"Valor Minuet III"</var>
		<var name="March">"Advancing March"</var>
		<var name="Mambo">"Sheepfoe Mambo"</var>
		<var name="Minne">"Knight's Minne III"</var>
		<var name="Ballad">"Mage's Ballad"</var>
		<var name="Paeon">"Army's Paeon IV"</var>
 
		<var name="PianRules">True</var>
		<!-- PianRules  = Tells spellcast if you want it to manage Pianissimo spells. 
				  This can be toggled in game with "//sc var set PianRules True/False"
		-->
 
		<var name="IceStaff">Aquilo's Staff</var>
		<var name="WindStaff">Wind Staff</var>
		<var name="EarthStaff">Terra's Staff</var>
		<var name="ThunderStaff">Thunder Staff</var>
		<var name="WaterStaff">Water Staff</var>
		<var name="FireStaff">Fire Staff</var>
		<var name="DarkStaff">Pluto's Staff</var>
		<var name="LightStaff">Apollo's Staff</var>
 
		<var name="IceObi">Suirin Obi</var>
		<var name="WindObi">Furin Obi</var>
		<var name="EarthObi">Dorin Obi</var>
		<var name="ThunderObi">Rairin Obi</var>
		<var name="WaterObi">Suirin Obi</var>
		<var name="FireObi">Karin Obi</var>
		<var name="DarkObi">Anrin Obi</var>
		<var name="LightObi">Korin Obi</var>
 
		<var name="IceGrip">Ice Grip</var>
		<var name="WindGrip">Wind Grip</var>
		<var name="EarthGrip">Earth Grip</var>
		<var name="ThunderGrip">Thunder Grip</var>
		<var name="WaterGrip">Water Grip</var>
		<var name="FireGrip">Fire Grip</var>
		<var name="DarkGrip">Dark Grip</var>
		<var name="LightGrip">Light Grip</var>
 
	</variables>
 
	<sets>
		<group name="Rocky's Bard" default="yes">
 
			<set name="standard">
				<main>Apollo's Staff</main>
				<head>Bard's Roundlet</head>
				<body>Sha'ir Manteel</body>
				<back>Jester's Cape +1</back>
				<sub>Bugard Strap +1</sub>
				<neck>Wind Torque</neck>
				<hands>Chl. Cuffs +1</hands>
				<waist>Korin Obi</waist>
				<range>Storm Fife</range>
				<lear>Magnetic Earring</lear>
				<rear>Loquac. Earring</rear>
				<rring>Nereid Ring</rring>
				<lring>Wedding Ring</lring>
				<legs>Byakko's Haidate</legs>
				<feet>Goliard Clogs</feet>
 
			</set>
 
			<set name="Haste" baseset="standard">
				<head>Walahra Turban</head>
				<body>Sha'ir Manteel</body>
				<lear>Magnetic Earring</lear>
				<rear>Loquac. Earring</rear>
				<legs>Byakko's Haidate</legs>
				<feet>Rostrum Pumps</feet>
				<range>Angel Lyre</range>
				<main>Apollo's Staff</main>
				<sub>Staff Strap</sub>
				<rring>Trooper's Ring</rring>
			</set>
 
			<set name="Ballad-Set">
				<main>Terra's Staff</main>
				<range>Storm Fife</range>
				<sub>Staff Strap</sub>
				<head>Bard's Roundlet</head>
				<body>Sha'ir Manteel</body>
				<hands>Bard's Cuffs</hands>
				<rear>Loquac. Earring</rear>
				<legs>Byakko's Haidate</legs>
				<feet>Rostrum Pumps</feet>>
				<rring>Trooper's Ring</rring>
				<lring>Wedding Ring</lring>
				<waist>Penitent's Rope</waist>
			</set>
 
			<set name="Mana-cast">
				<main>Apollo's Staff</main>
				<head>Bard's Roundlet</head>
				<body>Errant Hppl.</body>
				<sub>Staff Strap</sub>
				<hands>Bard's Cuffs</hands>
				<waist>Penitent's Rope</waist>
				<lear>Magnetic Earring</lear>
				<rear>Loquac. Earring</rear>
				<rring>Trooper's Ring</rring>
				<lring>Wedding Ring</lring>
				<legs>Chl. Cannions +1</legs>
				<feet>Rostrum Pumps</feet>
			</set>
 
			<set name="idle">
				<main>Apollo's Staff</main>
				<head>Bard's Roundlet</head>
				<body>Sha'ir Manteel</body>
				<back>Jester's Cape +1</back>
				<sub>Bugard Strap +1</sub>
				<neck>Wind Torque</neck>
				<hands>Chl. Cuffs +1</hands>
				<waist>Korin Obi</waist>
				<range>Storm Fife</range>
				<lear>Magnetic Earring</lear>
				<rear>Loquac. Earring</rear>
				<rring>Nereid Ring</rring>
				<lring>Wedding Ring</lring>
				<legs>Byakko's Haidate</legs>
				<feet>Goliard Clogs</feet>
			</set>
 
			<set name="Rest">
				<main>Pluto's Staff</main>
				<sub>Staff Strap</sub>
				<head>Zenith Crown</head>
				<waist>Qiqirn Sash +1</waist>
				<legs>Baron's Slops</legs>
				<feet>Goliard Clogs</feet>
				<lear>Magnetic Earring</lear>
				<rear>Loquac. Earring</rear>
				<body>Errant Hpl.</body>
				<lring>Wedding Ring</lring>
				<rring>Trooper's Ring</rring>
			</set>
 
			<set name="debuff">
				<head>Bard's Roundlet</head>
				<body>Sha'ir Manteel</body>
				<back>Jester's Cape +1</back>
				<sub>Bugard Strap +1</sub>
				<hands>Chl. Cuffs +1</hands>
				<waist>Gleeman's Belt</waist>
				<feet>Goliard Clogs</feet>
			</set>
 
			<set name="wind-debuff" baseset="debuff">
				<neck>Wind Torque</neck>
				<lear>Musical Earring</lear>
				<rear>Melody Earring</rear>
				<rring>Nereid Ring</rring>
				<lring>Angel's Ring</lring>
				<legs>Chl. Cannions +1</legs>
			</set>
 
			<set name="string-debuff" baseset="debuff">
				<neck>String Torque Torque</neck>
				<lear>Musical Earring</lear>
				<rear>String Earring</rear>
				<rring>Angel's Ring</rring>
				<lring>Angel's Ring</lring>
				<legs>Sha'ir Seraweels</legs>
			</set>
 
			<set name="buff">
				<main>Chanter's Staff</main>
				<head>Bard's Roundlet</head>
				<body>Sha'ir Manteel</body>
				<back>Jester's Cape +1</back>
				<sub>Staff Strap</sub>
				<hands>Chl. Cuffs +1</hands>
				<waist>Penitent's Rope</waist>
				<lear>Musical Earring</lear>
				<rear>Loquac. Earring</rear>
				<rring>Trooper's Ring</rring>
			</set>
 
			<set name="wind-buff" baseset="buff">
				<neck>Wind Torque</neck>
				<rear>Loquac. Earring</rear>
				<legs>Chl. Cannions +1</legs>
				<feet>Rostrum Pumps</feet>
				<lring>Nereid Ring</lring>
			</set>
 
			<set name="string-buff" baseset="buff">
				<neck>String Torque</neck>
				<rear>String Earring</rear>
				<legs>Byakko's Haidate</legs>
				<feet>Bard's Slippers</feet>
				<lring>Wedding Ring</lring>
			</set>
 
			<set name="MND">
				<main>Apollo's Staff</main>
				<sub>Bugard Strap +1</sub>
				<head>Zenith Crown</head>
				<body>Errant Hpl.</body>
				<waist>Penitent's Rope</waist>
				<legs>Zenith Slacks</legs>
				<feet>Goliard Clogs</feet>
			</set>
 
			<set name="CHR">
				<main>Apollo's Staff</main>
				<head>Bard's Roundlet</head>
				<body>Errant Hpl.</body>
				<back>Jester's Cape +1</back>
				<sub>Bugard Strap +1</sub>
				<neck>Star Necklace</neck>
				<hands>Chl. Cuffs +1</hands>
				<waist>Gleeman's Belt</waist>
				<range>San d'Orian Horn</range>
				<lear>Melody Earring</lear>
				<rear>Melody Earring</rear>
				<rring>Angel's Ring</rring>
				<lring>Angel's Ring</lring>
				<legs>Sha'ir Seraweels</legs>
				<feet>Goliard Clogs</feet>
			</set>
 
			<set name="MaxMP-Set">
				<head lock="t">Zenith Crown</head>
				<body>Sha'ir Manteel</body>
				<sub lock="t">Bugard Strap +1</sub>
				<neck lock="t">Star Necklace</neck>
				<hands lock="t">Sha'ir Gages</hands>
				<waist lock="t">Qiqirn Sash +1</waist>
				<range lock="t">San d'Orian Horn</range>
				<lear lock="t">Magnetic Earring</lear>
				<rear lock="t">Loquac. Earring</rear>
				<rring lock="t">Astral Ring</rring>
				<lring lock="t">Serket Ring</lring>
				<legs lock="t">Zenith Slacks</legs>
				<feet>Rostrum Pumps</feet>
			</set>
 
		</group>
	</sets>
 
	<rules>
 
		<if spell="autoset">
			<if Advanced='"$MainHeal"="False"'>
				<action type="equip" when="resting" set="Rest" />
			</if>
			<elseif Advanced='"$MainHeal"="True"'>
				<action type="equip" when="resting">
					<main>$DarkStaff</main>
					<body>Errant Hpl.</body>
					<feet>Goliard Clogs</feet>
				</action>
				<action type="equip" when="idle" set="MaxMP-Set"/>
			</elseif>
		</if>
 
 
		<if Spell="Cure*|Curaga*|*aise*|*na|Dia*|Banish*|Protect*|Shell*|Bar*|Regen*|Teleport*|Erase|Stoneskin|Blink">
			<action type="DefaultTarget" target="&lt;stpc&gt;"/>
			<if Spell="Cure*|Curaga*|Dia*|Banish*">
				<action type="equip" when="midcast">
					<main>$%SpellElementStaff</main>
				</action>
				<if advanced='("%WeatherElement"="Light") OR ("%DayElement"="Light")'>
					<action type="Equip" when="midcast">
						<waist>$%SpellElementObi</waist>
					</action>
				</if>
				<if Advanced='"$MainHeal"="False"'>
					<action type="equip" when="precast" set="Mana-Cast" />
				</if>
				<if Spell="Dia*|Banish*">
					<action type="equip" when="midcast">
						<sub>$%SpellElementGrip</sub>
					</action>
				</if>
			</if>
			<if spell="Cure*|Curaga*|Regen*" NotBuffActive="Penury">
				<if Spell="Curaga II" MPLT="120">
					<action type="ChangeSpell" Spell="Curaga" />
				</if>
				<elseif Spell="Curaga" MPLT="60">
					<action type="CancelSpell" />
					<action type="AddToChat" color="50">Not enough MP.</action>
				</elseif>
				<elseif Spell="Cure III" MPLT="46" MPGT="23">
					<action type="ChangeSpell" Spell="Cure II" />
				</elseif>
				<elseif Spell="Cure III" MPLT="24" MPGT="7">
					<action type="ChangeSpell" Spell="Cure" />
				</elseif>
				<elseif Spell="Cure III" MPLT="8">
					<action type="CancelSpell" />
					<action type="AddToChat" color="50">Not enough MP.</action>
				</elseif>
				<elseif Spell="Cure II" MPLT="24" MPGT="7">
					<action type="ChangeSpell" Spell="Cure" />
				</elseif>
				<elseif Spell="Cure II" MPLT="8">
					<action type="CancelSpell" />
					<action type="AddToChat" color="50">Not enough MP.</action>
				</elseif>
				<elseif Spell="Cure" MPLT="8">
					<action type="CancelSpell" />
					<action type="AddToChat" color="50">Not enough MP.</action>
				</elseif>
				<elseif Spell="Regen II" MPLT="36" MPGT="14">
					<action type="ChangeSpell" Spell="Regen" />
				</elseif>
				<elseif Spell="Regen II" MPLT="15">
					<action type="CancelSpell" />
					<action type="AddToChat" color="50">Not enough MP.</action>
				</elseif>
				<elseif Spell="Regen" MPLT="15">
					<action type="CancelSpell" />
					<action type="AddToChat" color="50">Not enough MP.</action>
				</elseif>
			</if>
			<elseif spell="Cure*|Curaga*|Regen*" BuffActive="Penury">
				<if Spell="Cure III" MPLT="23" MPGT="11">
					<action type="ChangeSpell" Spell="Cure II" />
				</if>
				<elseif Spell="Cure III" MPLT="12" MPGT="3">
					<action type="ChangeSpell" Spell="Cure" />
				</elseif>
				<elseif Spell="Cure III" MPLT="4">
					<action type="CancelSpell" />
					<action type="AddToChat" color="50">Not enough MP.</action>
				</elseif>
				<elseif Spell="Cure II" MPLT="12" MPGT="3">
					<action type="ChangeSpell" Spell="Cure" />
				</elseif>
				<elseif Spell="Cure II" MPLT="4">
					<action type="CancelSpell" />
					<action type="AddToChat" color="50">Not enough MP.</action>
				</elseif>
				<elseif Spell="Cure" MPLT="4">
					<action type="CancelSpell" />
					<action type="AddToChat" color="50">Not enough MP.</action>
				</elseif>
				<elseif Spell="Regen II" MPLT="18" MPGT="7">
					<action type="ChangeSpell" Spell="Regen" />
				</elseif>
				<elseif Spell="Regen II" MPLT="7">
					<action type="CancelSpell" />
					<action type="AddToChat" color="50">Not enough MP.</action>
				</elseif>
				<elseif Spell="Regen" MPLT="7">
					<action type="CancelSpell" />
					<action type="AddToChat" color="50">Not enough MP.</action>
				</elseif>
			</elseif>
			<elseif spell="Poisona|Paralyna|Blindna|Silena|Cursna" subJob="SCH" notBuffActive="Addendum: White" Advanced='"$AddendumRules"="True"'>
				<action type="Var" when="precast" cmd="set AddendumTarget %target" />
				<action type="Var" when="precast" cmd="set AddendumSpell %spell" />
				<action type="ChangeSpell" Spell="Addendum: White" />
				<action type="command" when="aftercast">wait 1;input /ma "$AddendumSpell" &lt;$AddendumTarget&gt;</action>
 
			</elseif>
			<elseif spell="Poisona|Paralyna|Blindna|Silena|Cursna" subJob="SCH" notBuffActive="Addendum: White" Advanced='"$AddendumRules"="False"'>
				<action type="addtochat" when="precast">[INFO] Addendum Rules are disabled.</action>
				<action type="addtochat" when="precast">[INFO] Enable with "//sc var set AddendumRules True"</action>
 
			</elseif>
		</if>
 
		<if spell="Sleep|Dispel|Stone*|Water*|Aero|Fire|Blizzard|Thunder|Drain|Aspir" subJob="SCH" notBuffActive="Addendum: Black">
			<if Advanced='"$AddendumRules"="True"'>
				<action type="Var" when="precast" cmd="set AddendumTarget %target" />
				<action type="Var" when="precast" cmd="set AddendumSpell %spell" />
				<action type="ChangeSpell" Spell="Addendum: Black" />
				<action type="command" when="aftercast">wait 1;input /ma "$AddendumSpell" &lt;$AddendumTarget&gt;</action>
 
			</if>
			<elseif Advanced='"$AddendumRules"="False"'>
				<action type="addtochat" when="precast">[INFO] Addendum Rules are disabled.</action>
				<action type="addtochat" when="precast">[INFO] Enable with "//sc var set AddendumRules True"</action>
 
			</elseif>
		</if>
 
		<if spell="Utsusemi*">
			<action type="equip" when="midcast" set="Haste"/>
			<if spell="*Ichi" BuffActive="Copy Image">
				<action type="midcastdelay" delay="2.5" />
				<action type="Command" when="midcast">cancel 66</action>
			</if>
		</if>
 
		<if spell="Sneak|Monomi*">
			<action type="equip" when="precast" set="Haste">
				<main>$%SpellElementStaff</main>
			</action>
			<if BuffActive="Sneak">
				<action type="midcastdelay" delay="2.5" />
				<action type="Command" when="midcast">cancel 71</action>
			</if>
		</if>
 
		<if spell="Stoneskin">
			<action type="equip" when="precast" set="MND"/>
			<if BuffActive="Stoneskin">
				<action type="midcastdelay" delay="5.0" />
				<action type="Command" when="midcast">cancel 37</action>
			</if>
		</if>
 
		<if spell="Blink">
			<action type="equip" when="precast" set="MND"/>
			<if BuffActive="Blink">
				<action type="midcastdelay" delay="5.0" />
				<action type="Command" when="midcast">cancel 36</action>
			</if>
		</if>
 
		<if Spell="Charm">
			<action type="equip" when="precast" set="CHR"/>
			<action type="equip" when="aftercast">
				<main>$EarthStaff</main>
			</action>
			<action type="command" when="aftercast">wait 1;input /ja "Tame" &lt;t&gt;</action>
		</if>
 
		<if Spell="Reward">
			<action type="equip" when="precast">
				<ammo>$PetFood</ammo>
			</action>
		</if>
 
		<if Advanced='"$PianRules"="True"' spell="Blade Madrigal|Valor Minuet IV|Victory March|Dragonfoe Mambo|Knight's Minne IV|Mage's Ballad II|Army's Paeon V" BuffActive="Pianissimo">
			<action type="Var" cmd="set PianTarget %target" when="precast" />
 
			<if spell="*Madrigal">
				<action type="Var" cmd="set PianSong $Madrigal" />
			</if>
			<elseif spell="Valor Minuet IV">
				<action type="Var" cmd="set PianSong $Minuet" />
			</elseif>
			<elseif spell="*March">
				<action type="Var" cmd="set PianSong $March" />
			</elseif>
			<elseif spell="*Mambo">
				<action type="Var" cmd="set PianSong $Mambo" />
			</elseif>
			<elseif spell="Knight's Minne IV">
				<action type="Var" cmd="set PianSong $Minne" />
			</elseif>
			<elseif spell="Mage's Ballad II">
				<action type="Var" cmd="set PianSong $Ballad" />
			</elseif>
			<elseif spell="Army's Paeon V">
				<action type="Var" cmd="set PianSong $Paeon" />
			</elseif>
 
			<action type="command" when="aftercast">wait 4;input /ja "Pianissimo" &lt;me&gt;</action>
			<action type="command" when="aftercast">wait 5;input /ma "$PianSong" $PianTarget</action>
 
		</if>
 
		<if Advanced='"$PianRules"="False"' spell="Blade Madrigal|Valor Minuet IV|Victory March|Dragonfoe Mambo|Knight's Minne IV|Mage's Ballad II|Army's Paeon V" BuffActive="Pianissimo">
			<action type="addtochat" when="precast">[INFO] Pianissimo Rules are disabled.</action>
			<action type="addtochat" when="precast">[INFO] Enable with "//sc var set PianRules True"</action>
 
		</if>
 
		<if type="BardSong">
			<if spell="*Madrigal|Valor Minuet*|*March|*Mambo|*Prelude|*Carol">
				<if Advanced='"$MainHeal"="False"'>
					<action type="equip" when="precast" set="wind-buff"/>
				</if>
				<action type="MidCastDelay" Delay="3"/>
				<if spell="*Madrigal">
					<action type="equip" when="midcast">
						<range>Traversiere +1</range>
					</action>
				</if>
				<elseif spell="Valor Minuet*">
					<action type="equip" when="midcast">
						<range>Cornette +1</range>
					</action>
				</elseif>
				<elseif spell="*March">
					<action type="equip" when="midcast">
						<range>Faerie Piccolo</range>
					</action>
				</elseif>
				<elseif spell="*Mambo">
					<action type="equip" when="midcast">
						<range>Gemshorn +1</range>
					</action>
				</elseif>
				<elseif spell="*Prelude">
					<action type="equip" when="midcast">
						<range>Angel Flute +1</range>
					</action>
				</elseif>
				<elseif spell="*Carol">
					<action type="equip" when="midcast">
						<range>Crumhorn +1</range>
					</action>
				</elseif>
			</if>
			<elseif spell="Knight's Minne*|*Etude|Army's Paeon*">
				<if Advanced='"$MainHeal"="False"'>
					<action type="equip" when="precast" set="string-buff"/>
				</if>
				<action type="MidCastDelay" Delay="3"/>
				<if spell="Knight's Minne*">
					<action type="equip" when="midcast">
						<range>Harp +1</range>
					</action>
				</if>
				<elseif spell="*Etude">
					<action type="equip" when="midcast">
						<range>Rose Harp +1</range>
					</action>
				</elseif>
				<elseif spell="Army's Paeon*">
					<action type="equip" when="midcast">
						<range>Ebony Harp +1</range>
					</action>
				</elseif>
			</elseif>
			<elseif spell="*Hymnus|*Mazurka">
				<if Advanced='"$MainHeal"="False"'>
					<action type="equip" when="precast" set="Haste"/>
				</if>
				<action type="MidCastDelay" Delay="3"/>
				<if spell="*Hymnus">
					<action type="equip" when="midcast">
						<range>Angel Lyre</range>
					</action>
				</if>
				<elseif spell="*Mazurka">
					<action type="equip" when="midcast">
						<range>Angel Lyre</range>
					</action>
				</elseif>
			</elseif>
			<elseif spell="Mage's Ballad*">
				<if Advanced='"$MainHeal"="False"'>
					<action type="equip" when="precast" set="Ballad-Set"/>
				</if>
				<if Area="Dynamis*|The Shrine*|Ru'Aun*|*Ru'Hmet">
					<action type="equip" when="midcast">
						<range>Nursemaid's Harp</range>
					</action>
				</if>
				<elseif Area="Leujaoam*|*Training Grounds|Lebros*|Periqia|Ilrusi*|Nyzul*|*Remnants">
					<action type="equip" when="midcast">
						<range>Storm Fife</range>
					</action>
				</elseif>
				<elseif notArea="Leujaoam*|*Training Grounds|Lebros*|Periqia|Ilrusi*|Nyzul*|*Remnants|Dynamis*|The Shrine*|Ru'Aun*|*Ru'Hmet">
					<action type="equip" when="midcast">
						<range>Horn +1</range>
					</action>
				</elseif>
			</elseif>
 
			<elseif spell="*Elegy">
				<action type="equip" when="midcast">
					<main>$%SpellElementStaff</main>
					<sub>$%SpellElementGrip</sub>
				</action>
				<if advanced='("%SpellElement"="%WeatherElement") OR ("%DayElement"="%SpellElement")'>
					<action type="equip" when="midcast">
						<waist>$%SpellElementObi</waist>
					</action>
				</if>