This update should be available sometime this afternoon or early evening (I am in the final testing stages).
Ever gotten annoyed that we test the Malo rotation to see if it should be run every cycle when we have Malo settings turned off? Probably not. But I sure have!
How about "LowLevelHealPoint" at endgame? etc, etc
With the next update, we are adding load conditions to rotations. They are fully optional and 100% backwards compatible.
Rotations will be loaded if either of these is true:
* The rotation load condition returns true; or
* The rotation does not have a load condition.
Adding these conditions will let us, for example, do things like adding 5 different era-specific DPS rotations for wizard, or 6 different level-based heal rotations for Cleric, all without the bloat/performance cost of making n checks every cycle for rotations that will never be run.
The meat and potatoes (so you can add this to your customs):
[CODE lang="Lua" title="Code Example:" highlight="5"]{
name = 'Tash',
state = 1,
steps = 1,
load_cond = function() return Config:GetSetting('DoTash') end,
targetId = function(self) return mq.TLO.Target.ID() == Config.Globals.AutoTargetID and { Config.Globals.AutoTargetID, } or {} end,
cond = function(self, combat_state)
return combat_state == "Combat" and Casting.DebuffConCheck() and not Casting.IAmFeigning() and
mq.TLO.Me.PctMana() >= Config:GetSetting('ManaToDebuff')
end,
},[/CODE]
Note that the DoTash setting check has also been removed from the run condition. There is no need for it. However, you should ensure that you trigger a loadout change for any setting you use as a load condition:
[CODE lang="Lua" title="RequiresLoadoutChange" highlight="5"]['DoTash'] = {
DisplayName = "Do Tash",
Category = "Debuffs",
Tooltip = "Cast Tash Spells",
RequiresLoadoutChange = true,
--Entry truncated for demonstration purposes
},[/CODE]
You can use nearly any condition you currently use as a run condition, with this caveat: You should be aware of what does, and does not, trigger a loadout change.
Things that automatically trigger a loadout change: A setting (provided you've set it up as above), scribing a spell, changing a mode, persona change.
Things that do not automatically trigger: Gaining a level, purchasing an AA, and most everything else.
The latter are safe to use as conditions, just be advised that you may need to hit the button to manually rescan (or use
[CODE title="Additional Load Condition Examples (truncated)"]name = 'FocusedParagon',
load_cond = function() return Config:GetSetting('DoParagon') and Casting.CanUseAA("Focused Paragon of Spirits") end,
-- only loads this rotation if we have the setting turned on and the AA purchased (we will need to manually trigger a loadout change here)
name = 'CombatBuff',
load_cond = function(self) return self:GetResolvedActionMapItem('ReverseDS') or self:GetResolvedActionMapItem('WardBuff') end,
-- only loads this rotation if we know at least one of the spells used in the rotation (scibing one of these spells should trigger the loadout change here)
name = 'GroupHeal(98+)',
load_cond = function() return mq.TLO.Me.Level() > 97 end,
-- only loads this rotation if we are over level 97 (we will need to manually trigger a loadout change here)
name = 'HateTools',
load_cond = function() return Core.IsTanking() end,
-- only loads this rotation if we are in tank mode (changing modes will automatically trigger the loadout change here)[/CODE]
Demonstration (watch the Tash settings and entries):
View attachment explorer_gLPpwA7B4P.mp4
As always, HMU here or in Discord with questions/issues! Enjoy!
Ever gotten annoyed that we test the Malo rotation to see if it should be run every cycle when we have Malo settings turned off? Probably not. But I sure have!
How about "LowLevelHealPoint" at endgame? etc, etc
With the next update, we are adding load conditions to rotations. They are fully optional and 100% backwards compatible.
Rotations will be loaded if either of these is true:
* The rotation load condition returns true; or
* The rotation does not have a load condition.
Adding these conditions will let us, for example, do things like adding 5 different era-specific DPS rotations for wizard, or 6 different level-based heal rotations for Cleric, all without the bloat/performance cost of making n checks every cycle for rotations that will never be run.
The meat and potatoes (so you can add this to your customs):
[CODE lang="Lua" title="Code Example:" highlight="5"]{
name = 'Tash',
state = 1,
steps = 1,
load_cond = function() return Config:GetSetting('DoTash') end,
targetId = function(self) return mq.TLO.Target.ID() == Config.Globals.AutoTargetID and { Config.Globals.AutoTargetID, } or {} end,
cond = function(self, combat_state)
return combat_state == "Combat" and Casting.DebuffConCheck() and not Casting.IAmFeigning() and
mq.TLO.Me.PctMana() >= Config:GetSetting('ManaToDebuff')
end,
},[/CODE]
Note that the DoTash setting check has also been removed from the run condition. There is no need for it. However, you should ensure that you trigger a loadout change for any setting you use as a load condition:
[CODE lang="Lua" title="RequiresLoadoutChange" highlight="5"]['DoTash'] = {
DisplayName = "Do Tash",
Category = "Debuffs",
Tooltip = "Cast Tash Spells",
RequiresLoadoutChange = true,
--Entry truncated for demonstration purposes
},[/CODE]
You can use nearly any condition you currently use as a run condition, with this caveat: You should be aware of what does, and does not, trigger a loadout change.
Things that automatically trigger a loadout change: A setting (provided you've set it up as above), scribing a spell, changing a mode, persona change.
Things that do not automatically trigger: Gaining a level, purchasing an AA, and most everything else.
The latter are safe to use as conditions, just be advised that you may need to hit the button to manually rescan (or use
/rgl spellreload). I will be adding an additional button to do so in the top area of the Class tab, but you can always use the existing "Spell Reload" button under your Spell Loadout.[CODE title="Additional Load Condition Examples (truncated)"]name = 'FocusedParagon',
load_cond = function() return Config:GetSetting('DoParagon') and Casting.CanUseAA("Focused Paragon of Spirits") end,
-- only loads this rotation if we have the setting turned on and the AA purchased (we will need to manually trigger a loadout change here)
name = 'CombatBuff',
load_cond = function(self) return self:GetResolvedActionMapItem('ReverseDS') or self:GetResolvedActionMapItem('WardBuff') end,
-- only loads this rotation if we know at least one of the spells used in the rotation (scibing one of these spells should trigger the loadout change here)
name = 'GroupHeal(98+)',
load_cond = function() return mq.TLO.Me.Level() > 97 end,
-- only loads this rotation if we are over level 97 (we will need to manually trigger a loadout change here)
name = 'HateTools',
load_cond = function() return Core.IsTanking() end,
-- only loads this rotation if we are in tank mode (changing modes will automatically trigger the loadout change here)[/CODE]
Demonstration (watch the Tash settings and entries):
View attachment explorer_gLPpwA7B4P.mp4
As always, HMU here or in Discord with questions/issues! Enjoy!

