LazyScript: Difference between revisions

From Turtle WoW Wiki
>Basedturtle
No edit summary
 
(No difference)

Latest revision as of 11:47, 8 May 2025

LazyScript is an in-game attack scripting language. It is aimed at users who would like to write more complex in-game macros, but who do not want to have to deal with the full blown API or do not want to have to write a separate add-on for every macro over 250 characters.

Installation

GitAddonsManager (Recommended)

The easiest way to keep LazyScript up to date is by using GitAddonsManager.

  1. Add the Repository: Add the following URL to GitAddonsManager: https://github.com/Gaverto/LazyScript-for-Turtle-WoW.git
  2. Select the Branch: Ensure that the master branch is selected.
  3. Update: Using GitAddonsManager, you can check for and install updates for all your AddOns with a single click.

Manual Installation

If you prefer manual installation, follow these steps:

  1. Go to the main page of the repository.
  2. Click the <> Code dropdown and download the repository as a .zip.
  3. Unpack the .zip and move these folders into your Interface/AddOns directory and restart the game:
  • LazyDruid
  • LazyHunter
  • LazyMage
  • LazyPaladin
  • LazyPriest
  • LazyRogue
  • LazyScript
  • LazyShaman
  • LazyWarlock
  • LazyWarrior



Git Links



Basic Usage

LazyScript works by defining "forms" which are lists of actions the addon will try to perform based on certain conditions. You can then activate these forms using a slash command or a keybinding.

The most common way to use LazyScript is to set a "default form" that the addon will automatically try to execute when you press the LazyScript keybinding (by default, this is likely unbound, you'll need to set it in the Key Bindings menu).


Slash Commands

You interact with LazyScript using slash commands, primarily /lazyscript or the shorter alias /ls.

Here are the main slash commands:

  • /lazyscript or /ls: Executes your currently set default form.
  • /lazyscript help: Displays a list of available slash commands and their descriptions.
  • /lazyscript about: Opens the in-game about frame for LazyScript, showing credits and basic information.
  • /lazyscript debug: Toggles debug mode on or off. Debug messages provide more detailed information about what the addon is doing, which can be helpful for troubleshooting.
  • /lazyscript list: Lists all the forms you have currently defined. The default form will be marked with an asterisk (*).
  • /lazyscript edit <formName>: Opens an in-game editor for the specified form. This is the primary way to create and modify your forms.
  • /lazyscript set <formName> <action1> -<condition1> <action2> -<condition2> ...: Creates or updates a form with the given name and defines its actions and conditions. This is a more advanced way to define forms directly via the chat.

Example: /ls set myform attack -ifTargetExists -ifTargetInCombat autoAttack

  • /lazyscript copy <formName1> <formName2>: Copies the definition of formName1 to formName2.
  • /lazyscript clear <formName>: Deletes the specified form.
  • /lazyscript do <action1> -<condition1> <action2> -<condition2> ...: Executes a single line of actions and conditions immediately without saving it as a form.
  • /lazyscript autoTarget: Toggles automatic targeting of the nearest enemy when you activate LazyScript and have no target.
  • /lazyscript initiateAutoAttack: Toggles whether LazyScript should automatically start auto-attack or auto-shot/wand when it can't execute any other action and you have a target.
  • /lazyscript useImmunitiesList: Toggles whether LazyScript checks for target immunities based on the internal list or detected immunities.
  • /lazyscript clearImmunitiesList: Clears the list of detected immunities.
  • /lazyscript summon: Shows the LazyScript minion frame (a small frame that shows the action being attempted).
  • /lazyscript dismiss: Hides the LazyScript minion frame.
  • /lazyscript hideMinionOutOfCombat: Toggles whether the minion frame should be hidden when you are out of combat.
  • /lazyscript summonDeath: Shows the Deathstimator frame (a small frame that attempts to estimate target health).
  • /lazyscript dismissDeath: Hides the Deathstimator frame.
  • /lazyscript hideDeathMinionOutOfCombat: Toggles whether the Deathstimator frame should be hidden when you are out of combat.
  • /lazyscript showReasonForTargetCCd: Toggles displaying the reason why the target is considered crowd-controlled (CCd).
  • /lazyscript showGankMessage: Toggles displaying a message when you are attacked by hostile players.
  • /lazyscript clearHistoryAfterCombat: Toggles clearing the action history after leaving combat.
  • /lazyscript mmshow: Shows the minimap button for LazyScript.
  • /lazyscript mmhide: Hides the minimap button for LazyScript.
  • /lazyscript immunityExceptionCriteria: Opens an editor for defining exceptions to immunity checks.
  • /lazyscript interruptExceptionCriteria: Opens an editor for defining exceptions to interrupt criteria.
  • /lazyscript noLongerInterruptLastInterrupted: Adds the last spell you successfully interrupted to the interrupt exception criteria.
  • /lazyscript showTargetCasts: Toggles displaying messages in chat when your target starts casting a spell.
  • /lazyscript assist <playerName>: Sets the specified player as your assist target. If no name is given and you have a friendly target, it sets your assist to that target.
  • /lazyscript default <formName>: Sets the specified form as your default form, which will be executed when you use the main LazyScript keybinding. If no form name is given, it tells you your current default form.
  • /lazyscript resetDefaultForms: Resets your forms to the default forms provided by LazyScript and any installed class-specific LazyScript addons.
  • /lazyscript resetAllForms: Clears all your custom forms and resets to the default forms.



Key Bindings

LazyScript provides several key binding options:

  • LAZYSCRIPT: Execute: This is the main keybinding. When pressed, it attempts to execute your currently set default form. You must bind this key in the WoW Key Bindings menu.
  • LAZYSCRIPT: Keybind 1 through LAZYSCRIPT: Keybind 10: These keybindings allow you to bind specific forms to a key. You can set which form is bound to each key using the /lazyscript bind <keybindNumber> <formName> command (this command was not in the provided code but is a common feature in such addons).

To set up key bindings:

  1. Open the Game Menu (Escape).
  2. Go to "Key Bindings".
  3. Scroll down to the "LazyScript" section.
  4. Click on the action you want to bind (e.g., "Execute").
  5. Press the desired key combination.
  6. Click "Okay".



Forms

Forms are the core of LazyScript. They consist of a sequence of "lines". Each line contains one or more "actions" and zero or more "conditions" (also called "masks").

When LazyScript attempts to execute a form, it goes through each line in order. For a line to be executed, ALL the conditions on that line must be true. If a line's conditions are met, LazyScript attempts to execute the actions on that line from left to right. Once a line is successfully executed (meaning at least one action on that line was used), LazyScript stops processing the form for that execution cycle.

If no lines in the form have their conditions met, LazyScript will not execute any actions from that form.



Actions

Actions are the spells, abilities, items, or special functions that LazyScript can perform. Actions are typically listed at the beginning of a line, separated by spaces.

You can also specify the rank of a spell or a target for a spell using the syntax: action[(rankXX)][@<UnitId>]

The <UnitId> can be any valid UnitId sequence as described in http://www.wowwiki.com/UnitId. For example, @player, @pet, @target, @targettarget. Note that the rank of the spell must always appear before the '@' symbol.

Example:

mindFlay(rank4)@target


Actions listed in green in the in-game help do not trigger the global cooldown. LazyScript is able to perform multiple of these actions together in one line along with at most one action that triggers the global cooldown.

Here's a list of known actions:

Full Name = Short Name
  • Aggressive = petAggressive
  • Battle Shout = battleShout
  • Berserker Rage = berserkerRage
  • Berserking = berserking
  • Blood Fury = bloodFury
  • Bloodrage = bloodrage
  • Bloodthirst = bloodthirst
  • Cannibalize = cannibalize
  • Challenging Shout = challengingShout
  • Charge = charge
  • Cleave = cleave
  • Concussion Blow = concussionBlow
  • Death Wish = deathWish
  • Defensive = petDefensive
  • Demoralizing Shout = demoShout
  • Disarm = disarm
  • Escape Artist = escapeArtist
  • Execute = execute
  • Find Herbs = findHerbs
  • Find Minerals = findMinerals
  • Find Treasure = findTreasure
  • Follow = petFollow
  • Hamstring = hamstring
  • Heroic Strike = heroicStrike
  • Intercept = intercept
  • Intimidating Shout = intimidatingShout
  • Last Stand = lastStand
  • Mocking Blow = mockingBlow
  • Mortal Strike = mortalStrike
  • Overpower = overpower
  • Passive = petPassive
  • Perception = perception
  • Piercing Howl = piercingHowl
  • Pummel = pummel
  • Recklessness = recklessness
  • Rend = rend
  • Retaliation = retaliation
  • Revenge = revenge
  • Shadowmeld = shadowmeld
  • Shield Bash = shieldBash
  • Shield Block = shieldBlock
  • Shield Slam = shieldSlam
  • Shield Wall = shieldWall
  • Shoot Bow = bow
  • Shoot Crossbow = crossbow
  • Shoot Gun = gun
  • Slam = slam
  • Stay = petStay
  • Stoneform = stoneForm
  • Sunder Armor = sunder
  • Sweeping Strikes = sweepingStrikes
  • Taunt = taunt
  • Throw = throw
  • Thunder Clap = thunderClap
  • War Stomp = warStomp
  • Whirlwind = whirlwind
  • Will of the Forsaken = forsaken
Other Actions
  • Battle Stance = battle
  • Berserker Stance = berserk
  • Defensive Stance = defensive
Special Actions
  • Assist Pet = assistPet
  • Assist = assist
  • Auto Shot = autoShot
  • Auto Target/Attack = autoAttack
  • Clear History = clearHistory
  • Clear Target = clearTarget
  • Dismount = dismount
  • Pet Attack = petAttack
  • Pet Stop = petStop
  • Ping = ping
  • Stop All = stopAll
  • Stop Auto Shot = stopShot
  • Stop Auto-Attack = stopAttack
  • Stop Casting = stopCasting
  • Stop Wand = stopWand
  • Stop = stop
  • Target Last = targetLast
  • Target Nearest Friend = targetNearestFriend
  • Target Nearest = targetNearest
  • Wand = wand
Actions that take parameters
  • Use an action: action=<action/macro name>
  • Use an action that does not trigger the global cooldown: freeAction=<action/macro name>
  • Use a pet action: petAction=<action>
  • Use an item in your equipment or inventory: use=<itemid/item name>
  • Use an item only if it is equipped: useEquipped=<itemid/item name>
  • Use an item in your equipment or inventory that does not trigger the global cooldown: useFreeItem=<itemid/item name>
  • Use an item that does not trigger the global cooldown only if it is equipped: useFreeEquippedItem=<itemid/item name>
  • Apply an item weapon buff: apply{MainHand,OffHand}Buff=<itemid/item name>
  • Equip a weapon in your main hand: equipMainHand=<itemid/item name>
  • Equip a weapon in your off hand: equipOffHand=<itemid/item name>
  • Echo the message to your chat: echo=<message>
  • Say the message in the specified channel: sayIn{Emote, Guild, Minion, Party, Raid, RAID_WARNING, Say, Yell} =<message>
  • Whisper the message to the specified player or unitId: whisperTo{playerName, <UnitId>} =<message>
  • Cancel the specified buff: cancelBuff=<buff>
  • Cancel the specified buff by title: cancelBuffTitle=<buffTitle>
  • Set the specified form as the default: setForm=<form name>
  • Target a specific unit: targetUnit=<UnitId>
  • Cast a spell on a specific unit: spellTargetUnit=<UnitId>
  • Target a player/creature by their exact name: targetByName=<exact name>
  • Perform emote (See WoWWiki: API_TYPE_Emotes_Token): doEmote=<emoteToken>
  • Play sound (See WoWWiki: API_PlaySound): playSound=<soundName>
Meta-Actions
  • Include the contents of the specified form: includeForm=<form name>
    • Note: This does not accept criteria. It must appear on a line by itself. You cannot include a form in itself, nor should you include a form which includes another form which includes the first (e.g. form A includes form B includes A == BAD).
  • Call the specified form: callForm=<form name>
    • This will try to find a usable action in the specified form, if the criteria on the callForm action are satisfied.



Conditions (Masks)

Conditions are used to determine when a specific line in a form should be executed. Conditions are preceded by a hyphen (-). You can stack multiple conditions on a single line, and they must all be true for the line to execute.

Conditions can be negated by adding a hyphen before the condition name (e.g., -!ifTargetExists).

Multiple values within curly braces ({}) means choose one or more. If more than one is chosen, separate them with commas (e.g. -ifRace=Human,Gnome) and the criteria will match if any of the choices match. If a multiple-choice criteria is negated with a "Not" (e.g. -ifNotRace=Human,Gnome) then the criteria will match only if none of the choices match. Square brackets ([]) mean the value is optional. Do NOT leave the curly braces or square brackets in your form.


Here's a list of recognised criteria:

Warrior Criteria:
  • -if[Fury]BloodthirstKillShot[XX%hp]
  • -if[Not]Stance={battle,berserk,defensive}
Action Criteria:
  • -everyXXs
  • -if[Not]{Ctrl,Alt,Shift}Down
  • -if[Not]Cooldown{<,>}XXs={action1,action2,...}
  • -if[Not]CurrentAction[=action1,action2,...]
  • -if[Not]GlobalCooldown
  • -if[Not]History{<,=,>}XX=action
  • -if[Not]HistoryCount{<,=,>}XX=action
  • -if[Not]LastAction=action
  • -if[Not]LastUsed>XXs=action
  • -if[Not]InCooldown={action1,action2,...}
  • -if[Not]InRange={action1,action2,...}
  • -if[Not]Timer>XXs=action
  • -if[Not]Usable={action1,action2,...}
Attack Criteria:
  • -if[Not]BehindAttackJustFailed[X[.Y]s]
  • -if[Not]InFrontAttackJustFailed[X[.Y]s]
  • -if[Not]OutdoorsAttackJustFailed[X[.Y]s]
  • -if[Not]Casting
  • -if[Not]Channelling
  • -if[Not]Shooting
  • -if[Not]Wanding
Buff/Debuff Criteria:
  • -if[Not]{Buff,Debuff}Duration{<,>}XXs={buff1,buff2,...} (player only)
  • -if[Not]{Buff,Debuff}TitleDuration{<,>}XXs={buffTitle1,buffTitle2,...}
  • -if[Not][<UnitId>]Has{Buff,Debuff}[{<,=,>}XX]={buff1,buff2,...}
  • -if[Not][<UnitId>]Has{Buff,Debuff}Title[{<,=,>}XX]={buffTitle1,buffTitle2,...}
  • -if[Not][<UnitId>]Is={Asleep, Bleeding, CCd, Charmed, Cursed, Diseased, Disoriented, Dotted, Drinking, Eating, Feared, Immobile, Incapacitated, Magicked, Poisoned, Polymorphed, Slowed, Stunned, Stung}
  • -if[Not]{MainHand, OffHand}Buffed
Item Criteria:
  • -if[Not]ItemCooldown{<,>}XXs={item1,item2,...}
  • -if[Not]ItemInCooldown={item1,item2,...}
Player Criteria:
  • -if[Not]Dueling
  • -if[Not]Equipped=item
  • -if[Not]Ganked
  • -if[Not]InGroup (party or raid)
  • -if[Not]InInstance
  • -if[Not]InBattleground
  • -if[Not]InRaid
  • -if[Not]Mounted
  • -if[Not]Shadowmelded
  • -if[Not]Tracking={Herbs, Minerals, Treasure}
  • -if[{<,=,>}]XAttackers (PvP only)
  • -if[Not]Zone=zonename
Pet:
  • -if[Not]HasPet
  • -if[Not]PetAlive
  • -if[Not]Pet{Attacking, Following, Staying, Aggressive, Defensive, Passive}
  • -if[Not]PetFamily={Bat, Bear, Boar, Carrion Bird, Cat, Crab, Crocolisk, Doomguard, Felhunter, Gorilla, Hyena, Imp, Infernal, Owl, Raptor, Scorpid, Spider, Succubus, Tallstrider, Turtle, Voidwalker, Windserpent, Wolf}
  • -if[Not]PetName=name
Player, Pet or Target Criteria:
  • -if[Not]{[Player],Target}{Blocked, Dodged, Parried, Resisted}[{<,>}XX.XXs] (defaults to <5s)
  • -if[Not]{[Player],Target}FlaggedPVP
  • -if[Not]{[Player],Target}FlagRunner
  • -if[Not]{[Player],Pet,Target}InCombat
  • -if[<UnitId>]{<,=,>}XX[%]{hp,mana/energy/rage/focus}[Deficit]
  • -if[Not]{[Player],Target}Race={Human, Night Elf, Gnome, Dwarf, Orc, Scourge/Undead, Tauren, Troll}
Target Criteria:
  • -if[Not]CanDebuff
  • -if[Not]HaveTarget
  • -if[Not]TargetAlive
  • -if[Not]TargetAttackable
  • -if[Not]TargetBoss
  • -if[Not]TargetClass={Druid, Hunter, Mage, Paladin, Priest, Rogue, Shaman, Warlock, Warrior}
  • -if[Not]TargetElite
  • -if[Not]TargetEnemy
  • -if[Not]TargetFleeing (NPC only)
  • -if[Not]TargetFriend
  • -if[Not]TargetHasTarget
  • -if[Not]TargetHostile
  • -if[Not]TargetIsCasting[={name regex,FIRE,FROST,NATURE,SHADOW,ARCANE,HOLY}]
  • -if[Not]TargetImmune[=action]
  • -if[Not]TargetInBlindRange (Within 10 yards)
  • -if[Not]TargetInLongRange (Within 28 yards)
  • -if[Not]TargetInMediumRange (Within 10 yards)
  • -if[Not]TargetInMeleeRange
  • -if[Not]TargetLevel{<,=,>}XX (Does not work for bosses)
  • -if[Not]TargetMyLevel{<,=,>}{plus,minus}XX (Does not work for bosses)
  • -if[Not]TargetNamed={regex1,regex2,...}
  • -if[Not]TargetNPC
  • -if[Not]TargetOfTarget
  • -if[Not]TargetOfTargetClass={Druid, Hunter, Mage, Paladin, Priest, Rogue, Shaman, Warlock, Warrior}
  • -if[Not]TargetTrivial
  • -if[Not]TargetType={Beast, Critter, Demon, Dragonkin, Elemental, Humanoid, Undead}
  • -ifTimeToDeath{<,=,>}XXs
  • -if[Not]UnitExists=[<UnitId>]


Criteria Notes

Here are some important notes regarding specific criteria:

  1. To use -if{Ctrl,Alt,Shift}Down, you MUST remove any existing Ctrl/Alt/Shift key bindings from the Main Menu, Key Bindings. Otherwise the game will intercept the key and LazyScript will not see it.
  2. Always use with -if[Not]TargetFriend since it will return true if the target is not a valid target for the spell.
  3. Within X.Y sec, defaults to 0.1.
  4. The buff/debuff name must be the full name (including capitalization and spaces) of the buff/debuff title as it appears in the tooltip.
  5. XX refers to the number of buff/debuff applications. e.g. -ifTargetHasDebuff<5=sunder
  6. As of patch 1.12 this only works on unfriendly targets for Rogue (Sinister Strike), Druid (Growl), Hunter (Wing Clip) and Warrior (Rend).
  7. The ifUsable criteria checks if the action is valid for use at present as per the Blizzard API call IsUsableAction. This does not include cooldown or range checking.
  8. The ifGlobalCooldown criteria requires a specific action to be placed on your action bar so that it may be checked for the global cooldown. It does not have to be on a visible action bar. For each class, the actions are as follows:
    Rogue: Sinister Strike
    Druid: Mark of the Wild
    Hunter: Track Beasts
    Priest: Power Word: Fortitude
    Warrior: Battle Shout
    Mage: Frost Armor
    Warlock: Demon Skin
    Shaman: Rockbiter Weapon
    Paladin: Seal of Righteousness
  1. The <UnitId> can be any valid UnitId sequence as described in the WoW API documentation. For example, player, pet, target, targettarget. Capitalization is not important.
  2. The ifLastUsed timer will perform the action immediately at the start of combat or if you changed targets if the action is available. The ifTimer criteria will first countdown XX seconds after initiating combat or changing targets before performing the action for the first time.
  3. This criteria only detects full blocks and resists. A partial block or resist ("Joe hits you for 10 damage (5 blocked).") either on the player or the target will NOT be detected by this criteria.


Including Other Forms

You can include the lines from another form into your current form using the includeForm= action. This allows you to create modular forms and reuse common sequences.

  • includeForm=<formName>: Includes all the lines from the specified form at this point in the current form.


Comments

You can add comments to your forms to explain your logic. Lines starting with #, //, or -- will be ignored by LazyScript.

Example Form<syntaxhighlight lang="lua">

  1. This is a simple example form for a Rogue

Sinister Strike -ifTargetExists -ifTargetInMeleeRange -ifTargetHostile Eviscerate -ifTargetExists -ifTargetInMeleeRange -ifTargetHostile -ifPlayerComboPoints>=5 Slice and Dice -ifTargetExists -ifTargetInMeleeRange -ifTargetHostile -ifPlayerComboPoints>=1 -ifPlayerHasBuff=!Slice and Dice attack -ifTargetExists -ifTargetInMeleeRange -ifTargetHostile </syntaxhighlight>This form would:

  1. Try to use Sinister Strike if you have a hostile target in melee range.
  2. If Sinister Strike can't be used, try to use Eviscerate if you have a hostile target in melee range and 5 or more combo points.
  3. If Eviscerate can't be used, try to use Slice and Dice if you have a hostile target in melee range, at least 1 combo point, and you don't currently have the Slice and Dice buff.
  4. If none of the above can be used, start auto-attacking if you have a hostile target in melee range.


Buff/Debuff Checks

  • ifHasBuffOrDebuff: This is a core command that allows you to check for specific buffs or debuffs by their internal code. You can specify the unit to check (e.g., player, target), whether to look for a Buff or Debuff, and even check the number of applications using comparison operators (>, <, =).
    • Syntax: if[Not][Unit]Has[Buff|Debuff][<=>][Number]=[Buff1,Buff2,...]
    • Examples: ifHasBuff=wellFed, ifTargetHasDebuff>2=Corruption, ifNotPlayerHasBuff=Stealth
  • ifHasBuffTitle: This command allows you to check for buffs or debuffs by their tooltip title. This is useful for buffs not in the buffTable or when you want to be more generic.
    • Syntax: if[Not][Unit]Has[Buff|Debuff]Title[<=>][Number]=[Title1,Title2,...]
    • Examples: ifHasBuffTitle=Arcane Intellect, ifTargetHasDebuffTitle>1=Curse of Weakness
  • ifBuffDuration: This command checks the remaining duration of a buff or debuff on the player by its internal code.
    • Syntax: if[Not][Buff|Debuff]Duration[<>][Number]s=[Buff1,Buff2,...]
    • Examples: ifBuffDuration<5s=SliceDice, ifDebuffDuration>10s=Corruption
  • ifBuffDurationByTitle: Similar to ifBuffDuration, but checks the duration of a buff or debuff on the player by its tooltip title.
    • Syntax: if[Not][Buff|Debuff]TitleDuration[<>][Number]s=[Title1,Title2,...]
    • Examples: ifBuffTitleDuration<3s=Power Word: Shield
  • ifShadowmelded: A specific, simplified check for the "Shadowmeld" buff on the player.
    • Syntax: if[Not]Shadowmelded
  • ifIsBuffed: This is a powerful command that checks if a unit has any buff/debuff belonging to a specific category. The recognized categories are implemented as separate functions (see below).
    • Syntax: if[Not][Unit]Is=[Category1,Category2,...]
    • Examples: ifTargetIs=CCd, ifPlayerIs=Eating,Drinking

Buff/Debuff Categories and Their Checks

  • Predefined Categories: The code defines functions to check for buffs/debuffs based on their categories:
    • IsStung (checks for "sting" category)
    • IsCCd (checks for "cc" category)
    • IsPolymorphed (checks for "polymorph" category)
    • IsBleeding (checks for "bleed" category)
    • IsCharmed (checks for "charm" category)
    • IsEating (checks for "food" category)
    • IsDrinking (checks for "drink" category)
    • IsDotted (checks for buffs/debuffs whose tooltip body contains strings defined in DOT_TTS locale string).
    • IsSlowed (checks for buffs/debuffs whose tooltip body contains strings defined in SLOWED_TTS locale string).
    • IsStunned (checks for buffs/debuffs whose tooltip body contains strings defined in STUNNED_TTS locale string).
    • IsFeared (checks for buffs/debuffs whose tooltip body contains strings defined in FEAR_TTS locale string).
    • IsImmobile (checks for buffs/debuffs whose tooltip body contains strings defined in IMMOBILE_TTS locale string).
    • IsAsleep (checks for buffs/debuffs whose tooltip body contains strings defined in ASLEEP_TTS locale string).
    • IsDisoriented (checks for buffs/debuffs whose tooltip body contains strings defined in DISORIENTED_TTS locale string).
    • IsIncapacitated (checks for buffs/debuffs whose tooltip body contains strings defined in INCAPACITATED_TTS locale string).
    • IsMagicked (checks for "Magic" debuff type).
    • IsCursed (checks for "Curse" debuff type).
    • IsPoisoned (checks for "Poison" debuff type).
    • IsDiseased (checks for "Disease" debuff type).


Preview

Form Editor:


Help:



Minimap Menu

The LazyScript minimap button provides quick access to key features:

  • Left-click: Opens a menu to select your default form.
  • Right-click and drag: Moves the minimap button.

Menu options:

  • (none): No default form selected.
  • Your forms list: Select a form to set it as default.
  • < Create new form >: Opens the form editor to create a new form.
  • < Options >: Opens a sub-menu for general options.
  • < Immunity Options >: Opens a sub-menu for immunity tracking options.
  • < Cast Interrupt Options >: Opens a sub-menu for interrupt options.
  • < Debugging >: Opens a sub-menu for debugging options.
  • < Help >: Opens the in-game help window.
  • < About >: Opens the about window.

Options Sub-menu

  • Auto-Target: Toggle auto-targeting.
  • ... and initiate Auto-Attack: Toggle initiating auto-attack when auto-targeting is enabled.
  • Show Minion: Toggle visibility of the LazyScript Minion window.
  • ... Only in combat: Toggle hiding the Minion when out of combat.
  • ... Always show action: Toggle the Minion displaying the attempted action even if it wasn't used.
  • Show Deathstimator Minion: Toggle visibility of the Deathstimator Minion window.
  • Deathstimator sample window:: Shows a sample Deathstimator window.

Immunity Options Sub-menu

  • Stop Immunity Tracking: Disable tracking new immunities.
  • Track New Immunities: Enable tracking new immunities.
  • Edit Immunity Exception Criteria: Opens the Immunity Exception Criteria editor.

Cast Interrupt Options Sub-menu

  • Edit Interrupt Exception Criteria: Opens the Interrupt Exception Criteria editor.
  • Last interrupted: <spell name>: Shows the last spell you interrupted.
  • ... Don't interrupt it again: Adds the last interrupted spell to the exception list.

Debugging Options Sub-menu

  • Log when target casts: Toggle logging when your target starts casting.
  • Show why when -ifTargetCCd is true: Toggle showing chat messages explaining why a target is considered crowd-controlled.
  • Display "Ganked" info: Toggle displaying "Ganked" information after combat.
  • < Action History >: Opens the Action History window.
  • ... Clear History after combat: Toggle clearing the action history after combat.
  • Internal debugging (noisy): Toggle verbose debugging output.

Form Options (when hovering over a form name in the minimap menu)

  • Edit: Opens the form editor for this form.
  • Copy: Copies this form.
  • Delete: Deletes this form.
  • < Set Keybinding >: Opens a sub-menu to bind a key to this form.

Set Keybinding Sub-menu

  • Keybinding <#> : Lists the current keybinding for this slot.
  • Set keybinding <#> to form: <form name>: Binds the selected keybinding slot to this form.


Minion Window

The LazyScript Minion is a small movable window that can display information about the addon's activity.

  • Displays the name of the form being executed or the action being attempted.
  • By default, the Minion is only visible when you are in combat. You can change this in the Minimap Menu under < Options > > Show Minion > ... Only in combat.
  • You can also choose to always show the attempted action, even if it wasn't successfully used, via the Minimap Menu under < Options > > Show Minion > ... Always show action.
  • Shift + Left Click to move it.
  • The code indicates it updates approximately every 0.1 seconds.



Deathstimator Window

The Deathstimator Minion is a small movable window that attempts to estimate the time until your target dies based on recent damage.

  • Displays the estimated time to death.
  • By default, the Deathstimator is only visible when you are in combat. You can change this in the Minimap Menu under < Options > > Show Deathstimator Minion > ... Only in combat.
  • It calculates the estimated time to death by tracking your target's health over time and computing a slope (health change per second) using a method similar to the method of least squares.
  • It requires at least two data points to make an estimate.
  • If your target is gaining health, it will display "RECALIBRATING".
  • It updates approximately every 0.25 seconds.
  • Shift + Left Click to move it.
  • Requires MobInfo2 (or an equivalent addon) to function.


Commands:

  • /ls summonDeath: Shows the Deathstimator frame.
  • /ls dismissDeath: Hides the Deathstimator frame.
  • /ls hideDeathMinionOutOfCombat: Toggles whether the Deathstimator frame should be hidden when you are out of combat.

Deathstimator-Specific Mask:

  • ifTimeToDeath([<=>])(%d+)s: This is the key mask in this file related to the Deathstimator. It allows users to create conditions based on the estimated time until the target's death.
    • Syntax: ifTimeToDeath[operator][value]s
    • Operator: Can be <, >, or =.
    • Value: A number representing seconds.

Example Usage:

  • ifTimeToDeath<10s: Checks if the estimated time to death is less than 10 seconds.
  • ifTimeToDeath>30s: Checks if the estimated time to death is greater than 30 seconds.
  • ifTimeToDeath=5s: Checks if the estimated time to death is exactly 5 seconds. (Less practical due to the dynamic nature of estimates).



Immunity Tracking

LazyScript can attempt to track when a target becomes immune to certain spells based on combat log messages. This information can be used in your forms with the -ifTargetImmune criteria.

Commands:

  • /ls useImmunitiesList: Toggles whether LazyScript checks for target immunities based on the internally tracked list or detected immunities.
  • /ls clearImmunitiesList: Clears the list of detected immunities.
  • /ls immunityExceptionCriteria: Opens an editor where you can manually define exceptions to immunity checks. The format for this editor is SpellName#ImmuneOn#CreatureName per line. For example: Cheap Shot#ImmuneOn#Example Creature.

Immunity Tracking Related Masks:

  • ifTargetImmune=?(.*)$: This mask checks if the current target is immune to a specific action or any action if no action is specified.
    • Syntax: ifTargetImmune or ifTargetImmune=[Action]
    • Action: The short name of a LazyScript action (e.g., gouge, polymorph). Multiple actions can be separated by commas.

Example Usage:

  • ifTargetImmune: Checks if the target is immune to the action immediately preceding this mask in the script line.
  • ifTargetImmune=gouge: Checks if the target is immune to the "gouge" action.
  • ifTargetImmune=polymorph,fear: Checks if the target is immune to either "polymorph" or "fear".


Advanced Topics

  • Localization: LazyScript uses localized spell and item names where possible. If you use a name that isn't recognized in your game client's language, it might not work. Using item IDs can be more reliable.
  • Performance: While generally efficient, complex forms with many conditions or included forms might have a slight performance impact. Keep your forms concise and focused.
  • Troubleshooting: If a form isn't working as expected, try enabling debug mode (/ls debug) to see why certain lines or actions are failing. The in-game form editor can also highlight syntax errors.
  • Class Addons: LazyScript has companion addons for specific classes (e.g., LazyRogue, LazyHunter). These addons provide default forms and class-specific actions and conditions. Ensure you have the correct class addon installed for your character.


LazyDruid

LazyDruid is an extension for the LazyScript addon, specifically designed to provide helpful automation and information for Druid players.

Note: LazyDruid requires the LazyScript addon to be installed and enabled.

Key Features

LazyDruid adds the following functionalities for Druids:

  • Ferocious Bite Tracking: Analyzes your Ferocious Bite damage to provide insights into its effectiveness based on combo points.
  • Druid-Specific Actions and Forms: Provides a comprehensive list of Druid abilities and shapeshift forms that can be used within LazyScript profiles.
  • Druid-Specific Conditions (Masks): Introduces conditions that are relevant to Druid gameplay, such as checking for Prowl, tracking humanoids, and predicting kill shots with Ferocious Bite.

Ferocious Bite Tracking

LazyDruid can track the actual damage dealt by your Ferocious Bite ability at different combo point levels. This information is compared to the theoretical optimal damage to give you an idea of your performance.

How it Works:

  • When you use Ferocious Bite, LazyDruid records the number of combo points you had.
  • When the damage from Ferocious Bite appears in your combat log, LazyDruid attempts to match it to the recorded usage based on the combo points.
  • It then calculates the average damage observed for each combo point level and compares it to the expected damage based on the spell's tooltip and your character's stats.

Commands:

You can control the Ferocious Bite tracking feature using the following slash commands with LazyScript (assuming your LazyScript command is /lazy):

  • /lazy resetBiteStats: Resets all recorded Ferocious Bite damage statistics.
  • /lazy useBiteTracking: Toggles whether Ferocious Bite tracking is active.
  • /lazy trackBiteCrits: Toggles whether critical strikes from Ferocious Bite are included in the tracking data (including crits can skew the average damage).

Minimap Menu Options:

LazyDruid adds a specific menu to the LazyScript minimap icon for Ferocious Bite options:

  • Ferocious Bite Options: Access this submenu to configure Ferocious Bite tracking.
    • Use Ferocious Bite Tracking: Toggle tracking on or off (same as /lazy useBiteTracking).
    • Include Crits (may skew kill shots): Toggle tracking of critical hits (same as /lazy trackBiteCrits).
    • Ferocious Bite sample window: Choose how many recent bites are used to calculate the average damage for each combo point level (options: Last 10, 25, 50, 100 Bites).
    • Ferocious Bite Stats: Displays your observed Ferocious Bite damage compared to the optimal damage for each combo point level, along with the number of bites seen for each level.
    • Reset: Resets the Ferocious Bite statistics (same as /lazy resetBiteStats).

Druid Actions and Forms

LazyDruid defines a comprehensive list of Druid abilities and shapeshift forms that can be used in your LazyScript profiles. These are referred to by their short names within the profile syntax.

Cat Form Abilities:

  • bite (Ferocious Bite)
  • claw (Claw)
  • cower (Cower)
  • dash (Dash)
  • pounce (Pounce)
  • prowl (Prowl)
  • rake (Rake)
  • ravage (Ravage)
  • rip (Rip)
  • shred (Shred)
  • tigersFury (Tiger's Fury)
  • trackHumanoids (Track Humanoids)

Bear Form Abilities:

  • bash (Bash)
  • challenge (Challenging Roar)
  • charge (Feral Charge)
  • demoralize (Demoralizing Roar)
  • enrage (Enrage)
  • frenziedRegen (Frenzied Regeneration)
  • growl (Growl)
  • maul (Maul)
  • swipe (Swipe)

General Abilities:

  • abolishPoison (Abolish Poison)
  • barkskin (Barkskin)
  • curePoison (Cure Poison)
  • faerieFire (Faerie Fire)
  • feralFire (Faerie Fire (Feral))
  • gotw (Gift of the Wild)
  • grasp (Nature's Grasp)
  • healingTouch (Healing Touch)
  • hibernate (Hibernate)
  • hurricane (Hurricane)
  • innervate (Innervate)
  • moonfire (Moonfire)
  • motw (Mark of the Wild)
  • ns (Nature's Swiftness)
  • ooc (Omen of Clarity)
  • rebirth (Rebirth)
  • regrowth (Regrowth)
  • rejuv (Rejuvenation)
  • removeCurse (Remove Curse)
  • roots (Entangling Roots)
  • soothe (Soothe Animal)
  • starfire (Starfire)
  • swarm (Insect Swarm)
  • swiftmend (Swiftmend)
  • teleMoonglade (Teleport: Moonglade)
  • thorns (Thorns)
  • tranquility (Tranquility)
  • wrath (Wrath)

Shapeshift Forms:

  • aquatic (Aquatic Form)
  • bear (Bear Form)
  • cat (Cat Form)
  • moonkin (Moonkin Form)
  • travel (Travel Form)
  • caster (Caster Form - Pseudo-action to shift out)

Druid Conditions (Masks)

LazyDruid introduces several conditions you can use in your LazyScript profiles to make decisions based on Druid-specific states.

  • -if[Not]LastChance[PlusX.Xs]: Checks if the target is likely to die within a certain time frame, considering energy ticks and your current energy. This is particularly useful for determining if you have time for energy regeneration before a target dies, which influences the effectiveness of Ferocious Bite. The default time buffer is 0.25 seconds, but you can specify a different value (e.g., -ifLastChancePlus1.0s). Requires MobInfo-2.
  • -if[Not]Prowling: Checks if you are currently in Prowl.
  • -ifKillShot[=XX%]: (For bite action only) Checks if a Ferocious Bite with your current combo points is likely to kill the target. You can optionally specify a percentage threshold (e.g., -ifKillShot=20% to bite if the target is below 20% health). This mask uses your observed Ferocious Bite damage if tracking is enabled, otherwise it uses the theoretical optimal damage.
  • -if[<=>]Xcp: Checks your current number of combo points.
    • =: Exactly X combo points.
    • >: More than X combo points.
    • <: Less than X combo points.
    • No operator: Greater than or equal to X combo points.
    • Examples: -if5cp, -if>3cp, -if<=4cp.
  • -if[Not]Tracking=Humanoids: Checks if you are currently tracking humanoids.

Custom AutoAttack

LazyDruid modifies the default auto-attack behavior. When you are in Prowl, auto-attack will be automatically stopped to maintain stealth. When you leave Prowl, auto-attack will resume.

Default Forms

LazyDruid provides some example LazyScript profiles tailored for Druids:

  • allPurpose: A general-purpose profile covering both Cat and Bear form abilities.
  • Tank: A profile focused on Bear form tanking abilities.
  • MsSmolderweb: A specific profile for handling the Ms. Smolderweb encounter in Molten Core, utilizing Hibernate.

You can use these as a starting point for creating your own custom profiles.

Custom Help Text

In addition to the standard LazyScript help, LazyDruid adds descriptions for its unique Druid-specific masks:

  • -if[Not]Prowling
  • -if[Not]Tracking=Humanoids



LazyHunter

LazyHunter is an extension for the LazyScript addon, specifically designed to provide helpful automation and information for Hunter players.

Note: LazyHunter requires the LazyScript addon to be installed and enabled.

Key Features

LazyHunter adds the following functionalities for Hunters:

  • Hunter and Pet Actions: Provides a comprehensive list of Hunter and Pet abilities that can be used within LazyScript profiles.
  • Hunter-Specific Conditions (Masks): Introduces conditions that are relevant to Hunter gameplay, such as checking pet status and aspects.
  • Custom Auto-Attack Logic: Modifies the default auto-attack behavior to intelligently switch between auto-shot and melee auto-attack based on range.

Hunter and Pet Actions

LazyHunter defines a comprehensive list of Hunter abilities and their corresponding pet abilities that can be used in your LazyScript profiles. These are referred to by their short names within the profile syntax.

Hunter Abilities:

  • aimed (Aimed Shot)
  • arcane (Arcane Shot)
  • aspectBeast (Aspect of the Beast)
  • aspectCheetah (Aspect of the Cheetah)
  • aspectHawk (Aspect of the Hawk)
  • aspectMonkey (Aspect of the Monkey)
  • aspectPack (Aspect of the Pack)
  • aspectWild (Aspect of the Wild)
  • eotb (Eyes of the Beast)
  • beastLore (Beast Lore)
  • bestialWrath (Bestial Wrath)
  • call (Call Pet)
  • concussive (Concussive Shot)
  • counter (Counterattack)
  • deterrence (Deterrence)
  • disengage (Disengage)
  • dismiss (Dismiss Pet)
  • distract (Distracting Shot)
  • eagleEye (Eagle Eye)
  • explosiveTrap (Explosive Trap)
  • feign (Feign Death)
  • flare (Flare)
  • freezingTrap (Freezing Trap)
  • frostTrap (Frost Trap)
  • huntersMark (Hunter's Mark)
  • immolationTrap (Immolation Trap)
  • intimidate (Intimidation)
  • mend (Mend Pet)
  • mongoose (Mongoose Bite)
  • multi (Multi-Shot)
  • raptor (Raptor Strike)
  • rapidFire (Rapid Fire)
  • revive (Revive Pet)
  • scare (Scare Beast)
  • scatter (Scatter Shot)
  • scorpid (Scorpid Sting)
  • serpent (Serpent Sting)
  • tame (Tame Beast)
  • trackBeasts (Track Beasts)
  • trackDemons (Track Demons)
  • trackDragonkin (Track Dragonkin)
  • trackElementals (Track Elementals)
  • trackGiants (Track Giants)
  • trackHidden (Track Hidden)
  • trackHumanoids (Track Humanoids)
  • trackUndead (Track Undead)
  • tranquilizing (Tranquilizing Shot)
  • trueshot (Trueshot Aura)
  • viper (Viper Sting)
  • volley (Volley)
  • wingClip (Wing Clip)
  • wyvern (Wyvern Sting)

Pet Abilities:

  • petBite (Bite)
  • petBreath (Lightning Breath)
  • petCharge (Charge)
  • petClaw (Claw)
  • petCower (Cower)
  • petDash (Dash)
  • petDive (Dive)
  • petGrowl (Growl)
  • petHowl (Furious Howl)
  • petPoison (Scorpid Poison)
  • petProwl (Prowl)
  • petStomp (Thunder Stomp)
  • petScreech (Screech)
  • petShell (Shell Shield)
  • petUnprowl (Stop Prowling)

Pseudo-Actions:

  • petDashDive: A convenience action that will attempt to use Pet Dash if available and usable, otherwise attempts to use Pet Dive.

Hunter Conditions (Masks)

LazyHunter introduces several conditions you can use in your LazyScript profiles to make decisions based on Hunter and pet states.

  • -if[Not]PetMood={happy,content,unhappy}: Checks the happiness level of your current pet. You can check for a single mood (e.g., -ifPetMood=happy) or multiple moods separated by commas (e.g., -ifPetMood={happy,content}).
  • -if[Not]PetProwling: Checks if your pet is currently in Prowl.
  • -ifHasPet: Checks if you currently have an active pet.
  • -ifTargetHasDebuff=huntersMark: Checks if your current target has Hunter's Mark applied.
  • -ifTargetHasDebuff=serpent: Checks if your current target has Serpent Sting applied.
  • -ifTargetHasDebuff=scorpid: Checks if your current target has Scorpid Sting applied.
  • -ifTargetHasDebuff=viper: Checks if your current target has Viper Sting applied.
  • -ifTargetHasDebuff=wyvern: Checks if your current target has Wyvern Sting applied.
  • -ifTargetHasDebuff=wingClip: Checks if your current target has Wing Clip applied.
  • -ifHasBuff=aspectBeast: Checks if you have Aspect of the Beast active.
  • -ifHasBuff=aspectCheetah: Checks if you have Aspect of the Cheetah active.
  • -ifHasBuff=aspectHawk: Checks if you have Aspect of the Hawk active.
  • -ifHasBuff=aspectMonkey: Checks if you have Aspect of the Monkey active.
  • -ifHasBuff=aspectPack: Checks if you have Aspect of the Pack active.
  • -ifHasBuff=aspectWild: Checks if you have Aspect of the Wild active.
  • -ifTargetIsImmune=scorpid: Checks if the target is immune to Scorpid Sting.
  • -ifTargetIsImmune=serpent: Checks if the target is immune to Serpent Sting.
  • -ifTargetIsImmune=viper: Checks if the target is immune to Viper Sting.
  • -ifTargetIsImmune=wyvern: Checks if the target is immune to Wyvern Sting.

Custom Auto-Attack Logic

LazyHunter provides a more intelligent auto-attack behavior than the default LazyScript. It will automatically switch between using your ranged auto-shot and your melee auto-attack based on your distance to the target.

  • When the target is within ranged attack range, it will initiate auto-shot.
  • When the target is outside of ranged attack range but still within 30 yards (the Hunter's "dead zone" or melee range), it will initiate melee auto-attack.

Default Forms

LazyHunter provides some example LazyScript profiles tailored for Hunters:

  • allPurpose: A general-purpose profile covering various Hunter abilities.
  • Melee: A profile focused on melee combat abilities for Hunters.
  • Range: A profile focused on ranged combat abilities for Hunters.

You can use these as a starting point for creating your own custom profiles.

Custom Help Text

In addition to the standard LazyScript help, LazyHunter adds descriptions for its unique Hunter-specific masks:

  • -if[Not]PetMood={happy,content,unhappy}
  • -if[Not]PetProwling



LazyMage

LazyMage is an extension for the LazyScript addon, specifically designed to provide helpful automation and information for Mage players.

Note: LazyMage requires the LazyScript addon to be installed and enabled.

Key Features

LazyMage adds the following functionalities for Mages:

  • Mage Actions: Provides a comprehensive list of Mage abilities that can be used within LazyScript profiles.
  • Mage-Specific Conditions (Masks): Introduces conditions relevant to Mage gameplay, such as checking for the presence of mana stones in your inventory.

Mage Actions

LazyMage defines a comprehensive list of Mage abilities that can be used in your LazyScript profiles. These are referred to by their short names within the profile syntax.

  • amplifyMagic (Amplify Magic)
  • arcanePower (Arcane Power)
  • arcaneRupture (Arcane Rupture) - Specific to TWOW
  • arcaneSurge (Arcane Surge) - Specific to TWOW
  • blastWave (Blast Wave)
  • blink (Blink)
  • blizzard (Blizzard)
  • brilliance (Arcane Brilliance)
  • coldSnap (Cold Snap)
  • combustion (Combustion)
  • coneCold (Cone of Cold)
  • conjureAgate (Conjure Mana Agate)
  • conjureCitrine (Conjure Mana Citrine)
  • conjureFood (Conjure Food)
  • conjureJade (Conjure Mana Jade)
  • conjureRuby (Conjure Mana Ruby)
  • conjureWater (Conjure Water)
  • counter (Counterspell)
  • dampenMagic (Dampen Magic)
  • detectMagic (Detect Magic)
  • evocation (Evocation)
  • explosion (Arcane Explosion)
  • fireball (Fireball)
  • fireBlast (Fire Blast)
  • fireWard (Fire Ward)
  • flamestrike (Flamestrike)
  • frostArmor (Frost Armor)
  • frostbolt (Frostbolt)
  • frostNova (Frost Nova)
  • frostWard (Frost Ward)
  • iceArmor (Ice Armor)
  • iceBarrier (Ice Barrier)
  • iceBlock (Ice Block)
  • intellect (Arcane Intellect)
  • mageArmor (Mage Armor)
  • manaShield (Mana Shield)
  • missiles (Arcane Missiles)
  • pig (Polymorph: Pig)
  • pom (Presence of Mind)
  • portDarnassus (Portal: Darnassus)
  • portIronforge (Portal: Ironforge)
  • portOgrimmar (Portal: Ogrimmar)
  • portStormwind (Portal: Stormwind)
  • portThunderBluff (Portal: Thunder Bluff)
  • portUndercity (Portal: Undercity)
  • pyroblast (Pyroblast)
  • removeCurse (Remove Curse)
  • scorch (Scorch)
  • sheep (Polymorph)
  • slowFall (Slow Fall)
  • teleDarnassus (Teleport: Darnassus)
  • teleIronforge (Teleport: Ironforge)
  • teleOgrimmar (Teleport: Ogrimmar)
  • teleStormwind (Teleport: Stormwind)
  • teleThunderBluff (Teleport: Thunder Bluff)
  • teleUndercity (Teleport: Undercity)
  • turtle (Polymorph: Turtle)

Mage Conditions (Masks)

LazyMage introduces several conditions you can use in your LazyScript profiles to make decisions based on Mage-specific states.

  • -if[Not]HaveAgate: Checks if you have a Mana Agate in your inventory.
  • -if[Not]HaveCitrine: Checks if you have a Mana Citrine in your inventory.
  • -if[Not]HaveJade: Checks if you have a Mana Jade in your inventory.
  • -if[Not]HaveRuby: Checks if you have a Mana Ruby in your inventory.

These conditions are updated whenever your inventory changes (e.g., when you conjure a new stone or use one).

Default Forms

LazyMage provides some example LazyScript profiles tailored for Mages:

  • frost: A profile focused on Frost spells.
  • fire: A profile focused on Fire spells.
  • lowbie: A basic profile suitable for lower-level Mages.

You can use these as a starting point for creating your own custom profiles.

Custom Help Text

In addition to the standard LazyScript help, LazyMage adds descriptions for its unique Mage-specific masks:

  • -if[Not]HaveAgate
  • -if[Not]HaveCitrine
  • -if[Not]HaveRuby
  • -if[Not]HaveJade


LazyPaladin

LazyPaladin is an extension for the LazyScript addon, specifically designed to provide helpful automation and information for Paladin players.

Note: LazyPaladin requires the LazyScript addon to be installed and enabled.

Key Features

LazyPaladin adds the following functionalities for Paladins:

  • Paladin Actions: Provides a comprehensive list of Paladin abilities that can be used within LazyScript profiles, including spells, blessings, seals, and auras.
  • Paladin Aura Forms: Introduces the concept of "Aura Forms" which can be used in profiles to switch between different Paladin Auras.

Paladin Actions

LazyPaladin defines a comprehensive list of Paladin abilities that can be used in your LazyScript profiles. These are referred to by their short names within the profile syntax.

  • blessFree (Blessing of Freedom)
  • blessKings (Blessing of Kings)
  • blessLight (Blessing of Light)
  • blessMight (Blessing of Might)
  • blessProt (Blessing of Protection)
  • blessSac (Blessing of Sacrifice)
  • blessSlv (Blessing of Salvation)
  • blessSnct (Blessing of Sanctuary)
  • blessWisdom (Blessing of Wisdom)
  • cleanse (Cleanse)
  • consecrate (Consecration)
  • crusaderStrike (Crusader Strike)
  • divFavor (Divine Favor)
  • divIntr (Divine Intervention)
  • divProt (Divine Protection)
  • divShield (Divine Shield)
  • exorcism (Exorcism)
  • flashLight (Flash of Light)
  • gBlessKings (Greater Blessing of Kings)
  • gBlessLight (Greater Blessing of Light)
  • gBlessMight (Greater Blessing of Might)
  • gBlessSlv (Greater Blessing of Salvation)
  • gBlessSnct (Greater Blessing of Sanctuary)
  • gBlessWisdom (Greater Blessing of Wisdom)
  • handFreedom (Hand of Freedom)
  • handProt (Hand of Protection)
  • hmrJustice (Hammer of Justice)
  • hmrWrath (Hammer of Wrath)
  • holyLight (Holy Light)
  • holyShield (Holy Shield)
  • holyShock (Holy Shock)
  • holyStrike (Holy Strike)
  • holyWrath (Holy Wrath)
  • judge (Judgement)
  • layOnHands (Lay on Hands)
  • purify (Purify)
  • redemption (Redemption)
  • repentance (Repentance)
  • rightFury (Righteous Fury)
  • sealCommand (Seal of Command)
  • sealCrusader (Seal of the Crusader)
  • sealJustice (Seal of Justice)
  • sealLight (Seal of Light)
  • sealRight (Seal of Righteousness)
  • sealWisdom (Seal of Wisdom)
  • senseUndead (Sense Undead)
  • smnCharger (Summon Charger)
  • smnWarhorse (Summon Warhorse)
  • turnUndead (Turn Undead)

Paladin Aura Forms

LazyPaladin introduces specific "forms" for Paladin Auras. This allows you to include aura switching directly in your LazyScript profiles. Using an aura as a form will attempt to activate that aura.

  • concAura (Concentration Aura)
  • devAura (Devotion Aura)
  • fireAura (Fire Resistance Aura)
  • frostAura (Frost Resistance Aura)
  • retAura (Retribution Aura)
  • sanctAura (Sanctity Aura)
  • shadowAura (Shadow Resistance Aura)

You can use these in your profile lines like any other action or form. For example:

devAura-ifNotHasBuff=devAura

This line would attempt to cast Devotion Aura if you do not currently have the Devotion Aura buff.

Paladin Conditions (Masks)

As of the provided code, LazyPaladin does not introduce any unique conditions (masks) beyond the standard ones provided by LazyScript. The help text explicitly states "Currently None!". However, you can use the standard LazyScript masks in conjunction with Paladin actions and aura forms.

Default Forms

LazyPaladin provides some example LazyScript profiles tailored for Paladins:

  • solo: A profile designed for solo gameplay, including self-healing and combat abilities.

You can use this as a starting point for creating your own custom profiles.

Custom Help Text

As noted in the code, the custom help text for LazyPaladin currently indicates that there are no Paladin-specific masks to describe.



LazyPriest

LazyPriest is an extension for the LazyScript addon, specifically designed to provide helpful automation and information for Priest players.

Note: LazyPriest requires the LazyScript addon to be installed and enabled.

Key Features

LazyPriest adds the following functionalities for Priests:

  • Priest Actions: Provides a comprehensive list of Priest abilities that can be used within LazyScript profiles, including healing spells, damage spells, buffs, and utility.
  • Shadowform Handling: Includes a special parser for the shadowform action to automatically check if you are already in Shadowform.

Priest Actions

LazyPriest defines a comprehensive list of Priest abilities that can be used in your LazyScript profiles. These are referred to by their short names within the profile syntax.

  • abolishDisease (Abolish Disease)
  • cureDisease (Cure Disease)
  • desperatePrayer (Desperate Prayer)
  • devouringPlague (Devouring Plague)
  • dispelMagic (Dispel Magic)
  • divineSpirit (Divine Spirit)
  • elunesGrace (Elune's Grace)
  • fade (Fade)
  • fearWard (Fear Ward)
  • feedback (Feedback)
  • flashHeal (Flash Heal)
  • greaterHeal (Greater Heal)
  • heal (Heal)
  • hexWeakness (Hex of Weakness)
  • holyFire (Holy Fire)
  • holyNova (Holy Nova)
  • innerFire (Inner Fire)
  • innerFocus (Inner Focus)
  • lesserHeal (Lesser Heal)
  • levitate (Levitate)
  • lightwell (Lightwell)
  • lightwellRenew (Lightwell Renew)
  • manaBurn (Mana Burn)
  • mindBlast (Mind Blast)
  • mindControl (Mind Control)
  • mindFlay (Mind Flay)
  • mindSoothe (Mind Soothe)
  • mindVision (Mind Vision)
  • powerInfusion (Power Infusion)
  • pwf (Power Word: Fortitude)
  • pws (Power Word: Shield)
  • prf (Prayer of Fortitude)
  • prh (Prayer of Healing)
  • prsp (Prayer of Shadow Protection)
  • prs (Prayer of Spirit)
  • psychicScream (Psychic Scream)
  • renew (Renew)
  • resurrection (Resurrection)
  • shackleUndead (Shackle Undead)
  • shadowProtection (Shadow Protection)
  • swp (Shadow Word: Pain)
  • shadowform (Shadowform)
  • shadowguard (Shadowguard)
  • silence (Silence)
  • smite (Smite)
  • starshards (Starshards)
  • touchWeakness (Touch of Weakness)
  • vampiricEmbrace (Vampiric Embrace)

Special Priest Action: Shadowform

The shadowform action has a special parser that automatically checks if you are already in Shadowform. When you include shadowform in a profile line, LazyPriest will automatically add a condition to only cast it if you are not currently in Shadowform.

For example, the profile line:

shadowform

is internally treated by LazyPriest as something similar to:

shadowform-ifNotHasBuff=shadowform@player

This makes it easier to include Shadowform activation in your profiles without needing to manually add the check.

Priest Conditions (Masks)

As of the provided code, LazyPriest does not introduce any unique conditions (masks) beyond the standard ones provided by LazyScript. The help text explicitly states "Currently None!". However, you can use the standard LazyScript masks in conjunction with Priest actions.

Default Forms

LazyPriest provides some example LazyScript profiles tailored for Priests:

  • lowbie: A basic profile suitable for lower-level Priests, including buffs, healing, and combat spells.

You can use this as a starting point for creating your own custom profiles.

Custom Help Text

As noted in the code, the custom help text for LazyPriest currently indicates that there are no Priest-specific masks to describe.



LazyRogue

LazyRogue is an extension for the LazyScript addon, specifically designed to provide helpful automation and information for Rogue players.

Note: LazyRogue requires the LazyScript addon to be installed and enabled.

Key Features

LazyRogue adds the following functionalities for Rogues:

  • Rogue Actions: Provides a comprehensive list of Rogue abilities that can be used within LazyScript profiles, including combat skills, stealth abilities, and utility.
  • Combo Actions: Allows combining certain abilities (currently Cold Blood and Eviscerate/Ambush) into a single action in your profile.
  • Item Actions: Supports using specific Rogue-relevant items (currently Thistle Tea) directly in profiles.
  • Eviscerate Tracking: Implements a system to track the average damage of your Eviscerate based on combo points and compares it to the theoretical optimal damage.
  • Custom Rogue Conditions (Masks): Introduces several Rogue-specific conditions for use in profiles, such as checking for stealth, combo points, and estimating "kill shot" opportunities.
  • Poison Application: Provides a method to apply poisons to your weapons directly from your profile.
  • Importing Old Settings: Includes functionality to import settings and forms from older versions of LazyRogue.

Rogue Actions

LazyRogue defines a comprehensive list of Rogue abilities that can be used in your LazyScript profiles. These are referred to by their short names within the profile syntax.

  • adrenaline (Adrenaline Rush)
  • ambush (Ambush)
  • bladeFlurry (Blade Flurry)
  • blind (Blind)
  • bs (Backstab)
  • cs (Cheap Shot)
  • coldBlood (Cold Blood)
  • distract (Distract)
  • evasion (Evasion)
  • evisc (Eviscerate)
  • expose (Expose Armor)
  • feint (Feint)
  • garrote (Garrote)
  • ghostly (Ghostly Strike)
  • gouge (Gouge)
  • hemo (Hemorrhage)
  • kick (Kick)
  • ks (Kidney Shot)
  • pickPocket (Pick Pocket)
  • premeditation (Premeditation)
  • preparation (Preparation)
  • riposte (Riposte)
  • rupture (Rupture)
  • sap (Sap)
  • snd (Slice and Dice)
  • sprint (Sprint)
  • ss (Sinister Strike)
  • stealth (Stealth)
  • sa (Surprise Attack)
  • vanish (Vanish)

Combo Actions

LazyRogue allows you to combine certain abilities that are often used together into a single "combo action" in your profile.

  • cbAmbush: Attempts to use Cold Blood and then Ambush.
  • cbEvisc: Attempts to use Cold Blood and then Eviscerate.

You can use these in your profile lines like any other action. For example:

cbEvisc-5cp-ifCbKillShot

This line would attempt to use Cold Blood and then Eviscerate if you have 5 combo points and the target is estimated to die from the Cold Blood Eviscerate (using the ifCbKillShot mask).

Item Actions

LazyRogue currently supports using Thistle Tea directly from your profile.

  • tea: Attempts to use a Thistle Tea.

Example usage in a profile:

tea-ifPlayer<20energy

This line would attempt to use Thistle Tea if your energy is below 20.

Special Rogue Actions and Parsers

Several Rogue abilities have special handling in LazyRogue profiles:

  • Ambush, Backstab, Feint, Garrote, Gouge, Kick: These actions have parsers that automatically include a check for the target being alive (ifTargetAlive) or the player being in a group (ifPlayerInGroup for Feint).
  • Stealth: The stealth action parser automatically includes a condition to only cast it if you are not currently stealthed.

Eviscerate Tracking

LazyRogue includes an Eviscerate tracking system. It hooks into your combat log to record the damage dealt by your Eviscerate based on the number of combo points used. This observed damage is then compared to the theoretically optimal damage for that rank of Eviscerate and your talents.

  • Tracking: The addon automatically tracks Eviscerate usage and damage when enabled.
  • Metrics: It tracks the average observed damage and the number of times Eviscerate has been observed for each combo point count (1-5).
  • Comparison: The addon can display the ratio of your observed damage to the optimal damage.
  • Crit Inclusion: You can choose whether or not to include critical Eviscerate hits in the average damage calculation. Including crits may skew the average, especially for the ifKillShot mask.
  • Sample Window: You can configure the number of recent Eviscerates to include in the average calculation.

Custom Rogue Conditions (Masks)

LazyRogue introduces several conditions (masks) that are specific to Rogues. These can be used in your LazyScript profile lines to add more complex logic.

  • -if[Not]Poisoned={MainHand,OffHand}: Checks if your MainHand or OffHand weapon is currently poisoned. Replace {MainHand,OffHand} with either MainHand or OffHand.
  • -if[Not]Stealthed: Checks if you are currently in Stealth.
  • -if[{<,=,>}]Xcp: Checks your current combo points. Replace {<,=,>} with <, =, or > to check if your combo points are less than, equal to, or greater than X, where X is a number (1-5). If no operator is provided, it defaults to >=.

Examples:

  • -if5cp: True if you have 5 or more combo points.
  • -if=3cp: True if you have exactly 3 combo points.
  • -if<2cp: True if you have less than 2 combo points.
  • -ifKillShot[=XX%]: (Only works with evisc or cbEvisc) Checks if your target is estimated to die from an Eviscerate with your current combo points.
    • ifKillShot: Checks if the target will die from a regular Eviscerate.
    • ifCbKillShot: Checks if the target will die from an Eviscerate used with Cold Blood active.
    • ifKillShot=XX%: Checks if the target's current health is less than or equal to XX% of the estimated Eviscerate damage. Replace XX with a number.
  • -if[Not]LastChance[PlusX.Xs]: Checks if you are likely to get at least two energy ticks before your target dies. This uses a death estimation based on recent damage taken by the target.
    • ifLastChance: Uses a default fudge factor of 0.25 seconds.
    • ifLastChancePlusX.Xs: Adds an additional X seconds to the tick timing for the check. Replace X with a number.

Applying Poisons

LazyRogue provides a specific action syntax for applying poisons:

  • applyPoison{MainHand,OffHand}=<poison>: Attempts to apply the specified <poison> to your MainHand or OffHand weapon. Replace {MainHand,OffHand} with either MainHand or OffHand, and <poison> with the exact name of the poison item in your inventory (e.g., applyPoisonMainHand=Instant Poison).

Default Forms

LazyRogue provides several example LazyScript profiles tailored for Rogues:

  • lr: A simple profile that uses Sinister Strike and Eviscerate.
  • lazy1: A more advanced solo profile including Cheap Shot, Eviscerate (with Kill Shot), Kidney Shot, and Rupture.
  • lazy2: A versatile profile for both solo and group play, incorporating utility spells like Vanish, Kick, Gouge, Slice and Dice, and Feint.
  • lazy3: A profile designed for Subtlety/Hemorrhage builds, focusing on applying Hemorrhage and using Eviscerate and Rupture.

You can use these as starting points for creating your own custom profiles.

Custom Command Line Arguments

LazyRogue adds the following commands to the LazyScript command-line interface (/ls or /lazyscript):

  • /ls resetEviscerateStats: Resets the collected Eviscerate damage statistics.
  • /ls useEviscerateTracking: Toggles the Eviscerate tracking feature on or off.
  • /ls trackEviscCrits: Toggles whether critical Eviscerate hits are included in the average damage calculation.
  • /ls importOldForms: Attempts to import forms from older versions of LazyRogue.
  • /ls convertOldForm <formName>: Attempts to convert a specific form from the older LazyRogue syntax to the current one. Replace <formName> with the name of the form you want to convert.

Custom Minimap Menu Entries

LazyRogue adds an "Eviscerate Options" submenu to the LazyScript minimap button menu. This menu allows you to:

  • Toggle "Use Eviscerate Tracking".
  • Toggle "... Include Crits".
  • Set the "Eviscerate sample window" (10, 25, 50, or 100 Eviscerates).
  • View "Eviscerate Stats" (Observed/Optimal damage ratio and number of Eviscerates seen for each combo point).
  • "Reset" the Eviscerate stats.



LazyShaman

LazyShaman is an extension for the LazyScript addon, specifically designed to provide helpful automation and information for Shaman players.

Note: LazyShaman requires the LazyScript addon to be installed and enabled.

Key Features

LazyShaman adds the following functionalities for Shamans:

  • Shaman Actions: Provides a comprehensive list of Shaman abilities that can be used within LazyScript profiles, including elemental spells, healing spells, weapon enhancements, and totems.

Shaman Actions

LazyShaman defines a comprehensive list of Shaman abilities that can be used in your LazyScript profiles. These are referred to by their short names within the profile syntax.

Elemental Spells:

  • earthShock (Earth Shock)
  • flameShock (Flame Shock)
  • frostShock (Frost Shock)
  • chainLight (Chain Lightning)
  • lightBolt (Lightning Bolt)
  • lightShield (Lightning Shield)
  • purge (Purge)

Healing Spells:

  • chainHeal (Chain Heal)
  • heal (Healing Wave)
  • lesserHeal (Lesser Healing Wave)
  • cureDisease (Cure Disease)
  • curePoison (Cure Poison)

Weapon Enhancements:

  • rockbiter (Rockbiter Weapon)
  • flametongue (Flametongue Weapon)
  • frostbrand (Frostbrand Weapon)
  • windfury (Windfury Weapon)

Utility Spells:

  • elemMastery (Elemental Mastery)
  • ghostWolf (Ghost Wolf)
  • natureSwift (Nature's Swiftness)
  • stormstrike (Stormstrike)

Totems:

  • diseaseTotem (Disease Cleansing Totem)
  • bindTotem (Earthbind Totem)
  • fireNovaTotem (Fire Nova Totem)
  • fireResistTotem (Fire Resistance Totem)
  • flameTotem (Flametongue Totem)
  • frostResistTotem (Frost Resistance Totem)
  • graceTotem (Grace of Air Totem)
  • groundingTotem (Grounding Totem)
  • hsTotem (Healing Stream Totem)
  • magmaTotem (Magma Totem)
  • msTotem (Mana Spring Totem)
  • mtTotem (Mana Tide Totem)
  • natureResistTotem (Nature Resistance Totem)
  • poisonTotem (Poison Cleansing Totem)
  • searingTotem (Searing Totem)
  • sentryTotem (Sentry Totem)
  • clawTotem (Stoneclaw Totem)
  • skinTotem (Stoneskin Totem)
  • strengthTotem (Strength of Earth Totem)
  • tranquilTotem (Tranquil Air Totem)
  • tremorTotem (Tremor Totem)
  • wfTotem (Windfury Totem)
  • windwallTotem (Windwall Totem)

You can use these action names in your profile lines like any other LazyScript action. For example:

lightBolt-ifInCombat

This line would attempt to cast Lightning Bolt if you are in combat.

Special Shaman Actions and Parsers

As of the provided code, LazyShaman does not include any special parsers for specific Shaman actions that add implicit conditions (like the Rogue's Stealth parser).

Shaman Conditions (Masks)

As of the provided code, LazyShaman does not introduce any unique conditions (masks) beyond the standard ones provided by LazyScript. The help text explicitly states "Currently None!". However, you can use the standard LazyScript masks in conjunction with Shaman actions.

Default Forms

LazyShaman provides some example LazyScript profiles tailored for Shamans:

  • solo: A profile designed for solo play, including healing, cleansing, buffs, and combat spells. It incorporates checks for being in or out of combat and target status.
  • lowbie: A simplified version of the solo profile, suitable for lower-level Shamans, focusing on basic spells and buffs.

You can use these as starting points for creating your own custom profiles.

Custom Help Text

As noted in the code, the custom help text for LazyShaman currently indicates that there are no Shaman-specific actions or masks to describe beyond what's listed.



LazyWarlock

LazyWarlock is an extension for the LazyScript addon, specifically designed to provide helpful automation and information for Warlock players.

Note: LazyWarlock requires the LazyScript addon to be installed and enabled.

Key Features

LazyWarlock adds the following functionalities for Warlocks:

  • Warlock Actions: Provides a comprehensive list of Warlock abilities that can be used within LazyScript profiles, including spells, summoning spells, and stone creation.
  • Pet Actions: Includes actions for controlling Warlock pets and utilizing their unique abilities.
  • Stone Tracking: Monitors your inventory for Healthstones, Soulstones, and Firestones.
  • Soul Shard Tracking: Keeps track of the number of Soul Shards you have in your inventory.
  • Custom Warlock Conditions (Masks): Introduces several Warlock-specific conditions for use in profiles, such as checking for stones, soul shards, and "kill shot" opportunities with Conflagrate.
  • Banishable/Shardable Target Checks: Provides conditions to check if your current target is a valid target for Banish or Drain Soul (for Soul Shards).

Warlock Actions

LazyWarlock defines a comprehensive list of Warlock abilities that can be used in your LazyScript profiles. These are referred to by their short names within the profile syntax.

Spells:

  • amplifyCurse (Amplify Curse)
  • banish (Banish)
  • conflagrate (Conflagrate)
  • corruption (Corruption)
  • curseAgony (Curse of Agony)
  • curseDoom (Curse of Doom)
  • curseElements (Curse of Elements)
  • curseExhaustion (Curse of Exhaustion)
  • curseReckless (Curse of Recklessness)
  • curseShadow (Curse of Shadow)
  • curseTongues (Curse of Tongues)
  • curseWeakness (Curse of Weakness)
  • darkPact (Dark Pact)
  • deathCoil (Death Coil)
  • demonArmor (Demon Armor)
  • demonicSacrifice (Demonic Sacrifice)
  • demonSkin (Demon Skin)
  • detectGreaterInvis (Detect Greater Invisibility)
  • detectInvis (Detect Invisibility)
  • detectLesserInvis (Detect Lesser Invisibility)
  • drainLife (Drain Life)
  • drainMana (Drain Mana)
  • drainSoul (Drain Soul)
  • enslave (Enslave Demon)
  • fear (Fear)
  • felDomination (Fel Domination)
  • funnel (Health Funnel)
  • hellfire (Hellfire)
  • howl (Howl of Terror)
  • immolate (Immolate)
  • inferno (Inferno)
  • lifeTap (Life Tap)
  • pain (Searing Pain)
  • rainFire (Rain of Fire)
  • senseDemons (Sense Demons)
  • shadowBolt (Shadow Bolt)
  • shadowburn (Shadowburn)
  • shadowWard (Shadow Ward)
  • siphon (Siphon Life)
  • soulFire (Soul Fire)
  • soulLink (Soul Link)

Summoning Spells:

  • summonDread (Summon Dreadsteed)
  • summonFel (Summon Felhunter)
  • summonImp (Summon Imp)
  • summonSteed (Summon Felsteed)
  • summonSuc (Summon Succubus)
  • summonVW (Summon Voidwalker)

Stone Creation Spells:

  • createFire (Create Firestone)
  • createGreaterFire (Create Firestone (Greater))
  • createLesserFire (Create Firestone (Lesser))
  • createMajorFire (Create Firestone (Major))
  • createGreaterHealth (Create Healthstone (Greater))
  • createHealth (Create Healthstone)
  • createLesserHealth (Create Healthstone (Lesser))
  • createMajorHealth (Create Healthstone (Major))
  • createMinorHealth (Create Healthstone (Minor))
  • createGreaterSoul (Create Soulstone (Greater))
  • createLesserSoul (Create Soulstone (Lesser))
  • createMajorSoul (Create Soulstone (Major))
  • createMinorSoul (Create Soulstone (Minor))
  • createSoul (Create Soulstone)
  • createGreaterSpell (Create Spellstone (Greater))
  • createMajorSpell (Create Spellstone (Major))
  • createSpell (Create Spellstone)

You can use these action names in your profile lines like any other LazyScript action. For example:

shadowBolt-ifInCombat

This line would attempt to cast Shadow Bolt if you are in combat.

Pet Actions

LazyWarlock provides actions for controlling your Warlock pet and using its abilities. These actions automatically include checks to ensure you have a pet, the pet is alive, and the pet is of the correct family for the ability.

Imp Actions:

  • bloodPact (Blood Pact)
  • firebolt (Firebolt)
  • phaseShift (Phase Shift)
  • fireShield (Fire Shield)

Voidwalker Actions:

  • consumeShadows (Consume Shadows)
  • sacrifice (Sacrifice)
  • suffering (Suffering)
  • torment (Torment)

Succubus Actions:

  • seduction (Seduction)
  • lesserInvisibility (Lesser Invisibility)
  • lashPain (Lash of Pain)
  • soothingKiss (Soothing Kiss)

Felhunter Actions:

  • taintedBlood (Tainted Blood)
  • spellLock (Spell Lock)
  • devourMagic (Devour Magic)
  • paranoia (Paranoia)

Example usage in a profile:

firebolt-ifTargetHostile-ifPetAlive

This line would attempt to have your Imp cast Firebolt if you have a living pet, the pet is an Imp, and your target is hostile.

Special Warlock Actions and Parsers

Several Warlock abilities have special handling in LazyWarlock profiles:

  • Immolate: The immolate parser automatically includes a check to ensure the target does not already have the Immolate debuff active.
  • Banish: The banish parser automatically includes a check to ensure the target is Banishable (Demon or Elemental).
  • Drain Soul: The drainSoul parser automatically includes a check to ensure the target is "Shardable" (a valid target from which you can obtain a Soul Shard).
  • Enslave Demon: The enslave parser automatically includes a check to ensure the target is a Demon.
  • Conflagrate: The conflagrate parser automatically includes a check to ensure the target has the Immolate debuff active.

Stone and Soul Shard Tracking

LazyWarlock automatically tracks whether you have at least one Healthstone, Soulstone, or Firestone in your bags or equipped (for Firestone). It also counts the total number of Soul Shards you have. This information is used by the Warlock-specific masks.

The tracking is updated whenever your bags are updated (BAG_UPDATE event).

Custom Warlock Conditions (Masks)

LazyWarlock introduces several conditions (masks) that are specific to Warlocks. These can be used in your LazyScript profile lines to add more complex logic.

  • -if[Not]HaveFirestone: Checks if you have at least one Firestone in your bags or equipped.
  • -if[Not]HaveHealthstone: Checks if you have at least one Healthstone in your bags.
  • -if[Not]HaveSoulstone: Checks if you have at least one Soulstone in your bags.
  • -if[Not]LastConflagrateChance: Checks if your target is estimated to die from a Conflagrate, taking into account your talent points and spell power. It also returns true if the Immolate debuff is about to expire.
  • -if[{<,=,>}]XShards: Checks your current number of Soul Shards. Replace {<,=,>} with <, =, or > to check if your shard count is less than, equal to, or greater than X, where X is a number. If no operator is provided, it defaults to >=.

Examples:

  • -if16Shards: True if you have 16 or more Soul Shards.
  • -if=5Shards: True if you have exactly 5 Soul Shards.
  • -if<3Shards: True if you have less than 3 Soul Shards.
  • -if[Not]TargetShardable: Checks if your current target is a valid target from which you can obtain a Soul Shard using Drain Soul. This includes checks for the target being trivial, tapped by you, attackable, and not dead.

Default Forms

LazyWarlock provides some example LazyScript profiles tailored for Warlocks:

  • conflagrate: A profile focused on using Conflagrate, including checks for Immolate and "Last Conflagrate Chance". It also includes stone creation, pet summoning, and basic combat spells.
  • affliction: A profile designed for Affliction Warlocks, prioritizing DoTs like Corruption, Curse of Agony, and Siphon Life. It includes logic for Life Tap, Drain Life/Mana, and pet management.
  • demonology: A profile focused on Demonology Warlocks, incorporating Soul Link, Demonic Sacrifice, and pet abilities. It includes logic for Life Tap, Drain Life/Mana, and pet management.
  • lowbie: A simplified profile for lower-level Warlocks, covering basic spells like Shadow Bolt, Corruption, Curse of Agony, and Drain Soul, along with stone creation and pet summoning.

You can use these as starting points for creating your own custom profiles.

Custom Help Text

The custom help text for LazyWarlock focuses on the unique Warlock-specific masks available for use in profiles.


LazyWarrior

LazyWarrior is an extension for the LazyScript addon, specifically designed to provide helpful automation and information for Warrior players.

Note: LazyWarrior requires the LazyScript addon to be installed and enabled.

Key Features

LazyWarrior adds the following functionalities for Warriors:

  • Warrior Actions: Provides a comprehensive list of Warrior abilities that can be used within LazyScript profiles, including combat abilities, shouts, stances, and cooldowns.
  • Stance Handling: Provides masks to check your current stance and actions to switch between them.
  • Slam Timing: Includes a mask to help time your Slam ability effectively.
  • Bloodthirst Kill Shot: Offers a mask to determine if your Bloodthirst is likely to be a killing blow.
  • Shield Equipped Check: Provides a mask to check if you have a shield equipped.

Warrior Actions

LazyWarrior defines a comprehensive list of Warrior abilities that can be used in your LazyScript profiles. These are referred to by their short names within the profile syntax.

Combat Abilities:

  • bloodrage (Bloodrage)
  • charge (Charge)
  • cleave (Cleave)
  • concussionBlow (Concussion Blow)
  • disarm (Disarm)
  • execute (Execute)
  • hamstring (Hamstring)
  • heroicStrike (Heroic Strike)
  • intercept (Intercept)
  • mockingBlow (Mocking Blow)
  • mortalStrike (Mortal Strike)
  • overpower (Overpower)
  • pummel (Pummel)
  • rend (Rend)
  • revenge (Revenge)
  • shieldBash (Shield Bash)
  • shieldBlock (Shield Block)
  • shieldSlam (Shield Slam)
  • slam (Slam)
  • sunder (Sunder Armor)
  • sweepingStrikes (Sweeping Strikes)
  • thunderClap (Thunder Clap)
  • whirlwind (Whirlwind)

Shouts:

  • battleShout (Battle Shout)
  • challengingShout (Challenging Shout)
  • demoShout (Demoralizing Shout)
  • intimidatingShout (Intimidating Shout)
  • piercingHowl (Piercing Howl)
  • taunt (Taunt)

Stances:

  • battle (Battle Stance) - Note: This is a shapeshift action.
  • defensive (Defensive Stance) - Note: This is a shapeshift action.
  • berserk (Berserker Stance) - Note: This is a shapeshift action.

Cooldowns:

  • berserkerRage (Berserker Rage)
  • deathWish (Death Wish)
  • lastStand (Last Stand)
  • recklessness (Recklessness)
  • retaliation (Retaliation)
  • shieldWall (Shield Wall)

You can use these action names in your profile lines like any other LazyScript action. For example:

heroicStrike-ifInCombat

This line would attempt to use Heroic Strike if you are in combat.

Special Warrior Actions and Parsers

  • Slam: The slam parser automatically includes the IsSlamTime mask, which helps ensure you use Slam when it's most effective (usually when your weapon swing timer is close to finishing).
  • Stances: The stance actions (battle, defensive, berserk) are handled as shapeshift forms. Using one of these actions in a profile will attempt to switch to that stance.

Custom Warrior Conditions (Masks)

LazyWarrior introduces several conditions (masks) that are specific to Warriors. These can be used in your LazyScript profile lines to add more complex logic.

-if[Fury]BloodthirstKillShot[XX%hp]: Checks if casting Bloodthirst is likely to reduce the target's health below XX%hp. The Fury prefix is not used in the current implementation but might be intended for future use to consider talents or effects. Replace XX%hp with a percentage value (e.g., 20%hp) to check if Bloodthirst will bring the target below that health threshold. This is useful for timing Bloodthirst as a finishing move. If no percentage is specified, it defaults to checking if Bloodthirst will kill the target (bring them below 0% hp).

Example:

bloodthirst-ifBloodthirstKillShot20%hp

This line would attempt to use Bloodthirst if the target's health is likely to drop below 20% after the Bloodthirst damage.

  • -if[Not]Stance={battle,berserk,defensive}: Checks your current stance. Replace {battle,berserk,defensive} with one or more stance names separated by commas (e.g., battle, defensive,berserk).
    • -ifStance=battle: True if you are in Battle Stance.
    • -ifNotStance=defensive: True if you are not in Defensive Stance.
    • -ifStance=battle,berserk: True if you are in either Battle Stance or Berserker Stance.
  • -if[Not]ShieldEquipped: Checks if you have a shield equipped in your offhand. This is particularly useful for abilities like Shield Bash and Shield Slam.

Example:

shieldBash-ifShieldEquipped-ifTargetIsCasting

This line would attempt to use Shield Bash if you have a shield equipped and your target is casting a spell.


Default Forms

LazyWarrior provides some example LazyScript profiles tailored for Warriors:

  • tank: A basic tanking profile that includes abilities like Battle Shout, Demoralizing Shout, Sunder Armor, Heroic Strike, Taunt, and Mocking Blow. It also includes a condition to use Berserker Rage if feared and a health potion if low on health.

You can use this as a starting point for creating your own custom profiles.


Custom Help Text

The custom help text for LazyWarrior focuses on the unique Warrior-specific masks available for use in profiles.



Contributing

LazyScript is an open-source project. If you'd like to contribute bug fixes, new features, or localization updates, please visit the project's repository.