KNOW YOUR ROTATION.
Search the Lazy Raider Lua condition reference for player health, target distance, casts, buffs, cooldowns and game-specific observation limits.
The complete compact condition vocabulary in the current engine: 78 fields and 29 calls. The downloadable skill also includes registration, commands, settings, examples, APL translation, and validation tools.
PERCENTAGES ARE EXPLICIT.
player.health is raw health. Use player.healthpercent < 35 for a percentage. target.phealth is not supported. Unknown observations remain unknown, even under negation.
107 documented entries
| Condition | Meaning and limits |
|---|---|
player.health | Number: raw health points; may be estimated from percent × readable maximum; unknown if unavailable. NOT percent. |
player.healthpercent | Number: observed health percentage, 0–100. |
player.healthmax | Number: readable maximum raw health points. |
player.mana | Number: raw current mana, unknown for non-mana power types. |
player.manapercent | Number: mana percentage, 0–100; unknown on rage/energy classes. |
player.manamax | Number: readable maximum mana. |
player.rage | Number: observed current matching primary power (0–100 for current classes), not generic mana. |
player.mainhand.enchanted | Boolean: observed temporary weapon enchant presence. |
player.mainhand.remaining | Number: remaining temporary enchant seconds;0 when confirmed absent. |
player.mainhand.enchant | Number: enchant identity from tooltip-name hash or readable game enchant ID; not a spell ID. Prefer imbue(Name). |
player.offhand.enchanted | Boolean: observed temporary weapon enchant presence. |
player.offhand.remaining | Number: remaining temporary enchant seconds;0 when confirmed absent. |
player.offhand.enchant | Number: enchant identity from tooltip-name hash or readable game enchant ID; not a spell ID. Prefer imbue(Name). |
player.energy | Number: observed current matching primary power (0–100 for current classes), not generic mana. |
player.combopoints | Number: 0–5 points on settled selected target, otherwise unknown. |
player.form | Number: observed form index; do not assume form indexes are universal between classes/clients. |
player.stealthed | Boolean: observed player stealth. |
pet.exists | Boolean: observed pet existence. |
pet.healthpercent | Number: readable pet health percentage, only with known existing pet. |
player.enemies | Number: confirmed observed enemy proximity within10yd of player; not total visible nameplates or whole-world count. |
player.shards | Number: observed resource count; not available to arbitrary classes. |
player.level | Number: observed character level. |
player.combat | Boolean: current combat state; aliases. Shared pulse already dispatches combat/OOC. |
player.mounted | Boolean: mounted state; shared pulse blocks while mounted or unknown. |
player.casting | Boolean: casting OR channeling. Shared pulse normally blocks during either. |
player.gcd | Boolean: GCD active, not remaining seconds. Current Pixel may fall back to 1.5 seconds after last cast when API probe unavailable. |
player.behind | Boolean heuristic: true unless recent behind-target rejection; not geometric proof. |
player.channeling | Boolean: channeling only. |
player.isincombat | Boolean: current combat state; aliases. Shared pulse already dispatches combat/OOC. |
player.holypower | Number: observed resource count; not available to arbitrary classes. |
target.health | Number: raw health points; may be estimated from percent × readable maximum; unknown if unavailable. NOT percent. |
target.healthpercent | Number: observed health percentage, 0–100. |
target.healthmax | Number: readable maximum raw health points. |
target.distance | Number: upper observed player-to-target range bound, yards; not exact center distance. |
target.distanceMin | Number: lower observed player-to-target range bound, yards. |
target.distanceMax | Number: upper observed player-to-target range bound, yards; not exact center distance. |
target.enemies | Number: observed8yd target-neighborhood estimate including selected target. Complete readable positions preferred; conservative summed player-range upper bounds otherwise. May undercount. Unknown if target/range unavailable. |
mouseover.exists | Boolean: corresponding mouseover state. No mouseover health/distance/TTD condition. |
mouseover.tapdenied | Boolean: tapped by another player/group; false when ours or untapped. |
mouseover.threat | Boolean: observed threat entry against player; not a threat percentage or exact tank status. |
target.tapdenied | Boolean: tapped by another player/group; false when ours or untapped. |
target.isfocus | Boolean: selected target matches focus. |
focus.exists | Boolean: focus exists; dead focus can still exist. |
focus.alive | Boolean: focus dead flag is false; pair with focus.exists. No focus health or friendly-healing recipient API. |
target.threat | Boolean: observed threat entry against player; not a threat percentage or exact tank status. |
mouseover.hostile | Boolean: corresponding mouseover state. No mouseover health/distance/TTD condition. |
mouseover.alive | Boolean: corresponding mouseover state. No mouseover health/distance/TTD condition. |
target.ttd | Number: seconds; measured damage trend, then early damage, then class/level/health/group-adjusted cold-start estimate. Dead0; invalid/friendly/unsettled unknown. Not a guaranteed lifespan. |
target.exists | Boolean: selected target exists; existence alone does not imply settled identity. |
target.casting | Boolean: raw cast OR channel activity. Unlike target.casting(Spell), this bare field currently DOES NOT apply interrupt blacklist/whitelist. |
target.channeling | Boolean: target channel activity only. |
target.castspell | Number: current observed target cast/channel spell ID. Unknown when idle/unreadable; no string comparison support. |
target.castpercent | Number: elapsed cast/channel percent 0–100; aliases; only while active and observed. |
target.castremaining | Number: remaining cast/channel seconds, rendered up to60s; aliases. No total-duration field. |
target.casting.percent | Number: elapsed cast/channel percent 0–100; aliases; only while active and observed. |
target.casting.remaining | Number: remaining cast/channel seconds, rendered up to60s; aliases. No total-duration field. |
target.interruptible | Boolean: current target cast/channel can be interrupted; false for known idle/dead, otherwise may be unknown. |
target.hostile | Boolean: attackable hostile settled target; aliases. |
target.alive | Boolean: living settled target; absent target false. |
target.isplayer | Boolean: settled target is a player; aliases. |
target.caster | Boolean: target has mana power type. Not proof it knows or is currently casting a spell. |
target.humanoid | Boolean: observed humanoid classification. |
target.isnpc | Boolean: settled target is not a player; aliases; not a guarantee it is attackable. |
target.player | Boolean: settled target is a player; aliases. |
target.npc | Boolean: settled target is not a player; aliases; not a guarantee it is attackable. |
target.boss | Boolean: observed worldboss or boss-level classification. |
target.elite | Boolean: elite, rareelite or worldboss classification. |
target.rare | Boolean: rare or rareelite classification. |
target.level | Number: readable target level; client boss/unknown encoding may be unavailable. |
target.facing | Boolean: separately observed player-facing-target evidence. Can be unavailable when position/rejection evidence is unavailable. Not interchangeable with permissive player.facing. |
player.facing | Boolean heuristic: true unless recent facing rejection; not geometric proof. False for recent tfsource=2. |
target.ishostile | Boolean: attackable hostile settled target; aliases. |
attack.enabled | Boolean: active state of known Attack6603 bound action. |
wand.enabled | Boolean: active state of known Shoot5019 bound action; NOT Hunter Auto Shot. |
modifier.cooldowns | Boolean: global cooldown toggle plus Always/Bosses & Players target policy. Unknown identity can remain unknown. |
modifier.interrupt | Boolean: Interrupts toggle plus raw target cast and configured elapsed-percent window. Does not independently require interruptibility or apply lists. |
modifier.player | Boolean: alias of target.isplayer. |
modifier.multitarget | Boolean: AoE toggle. Static on→true; Dynamic compares target.enemies against setting.aoeenemies; off→false. |
target.casting | (SpellNameOrID) → boolean: active cast/channel matches full exact name or ID and passes blacklist/whitelist. Unknown identity stays unknown. No empty argument. |
target.cancast | (Spell) → boolean: player.cancast eligibility plus living hostile settled target and action range; missing bound action false, required unknown data nil. |
player.cancast | (Spell) → boolean: bound/known/usable/ready and stillness if required; no target range/hostility check. Not proof of facing or line of sight. |
player.buff | (Spell) → boolean: observed helpful player aura; aliases. .duration/.remains give REMAINING seconds, not original duration. |
player.aura | (Spell) → boolean: observed helpful player aura; aliases. .duration/.remains give REMAINING seconds, not original duration. |
target.aura | (Spell) → boolean: observed helpful target aura; aliases; requires that unit/kind coverage. .duration/.remains supported. |
player.hasbuff | (Spell) → boolean: observed helpful player aura; aliases. .duration/.remains give REMAINING seconds, not original duration. |
player.debuff | (Spell) → boolean: observed harmful player aura. .duration/.remains supported; snapshot has no generic harmful-player bank. |
player.hasdebuff | (Spell) → boolean: observed harmful player aura. .duration/.remains supported; snapshot has no generic harmful-player bank. |
target.buff | (Spell) → boolean: observed helpful target aura; aliases; requires that unit/kind coverage. .duration/.remains supported. |
target.hasbuff | (Spell) → boolean: observed helpful target aura; aliases; requires that unit/kind coverage. .duration/.remains supported. |
target.debuff | (Spell) → boolean: observed own harmful target aura. .duration/.remains supported. |
target.hasdebuff | (Spell) → boolean: observed own harmful target aura. .duration/.remains supported. |
player.spell | (Spell) → boolean: observed learned family or bound known action. Missing from bars is unknown, not unlearned. No duration. |
spell.known | (Spell) → boolean: observed learned family or bound known action. Missing from bars is unknown, not unlearned. No duration. |
player.recentcast | (Spell[,seconds]) → boolean: recent record on current target, default3s; may include cast recorded at80% progression. Not proof of debuff presence; no record/new target false. |
player.selfcast | (Spell[,seconds]) → boolean: recent record regardless of target, default3s, up to an hour memory; name does not prove self recipient. |
player.usable | (Spell) → boolean: known bound action usable (resource/stance/proc gates). Does NOT independently prove range, cooldown or line of sight. |
spell.usable | (Spell) → boolean: known bound action usable (resource/stance/proc gates). Does NOT independently prove range, cooldown or line of sight. |
player.ready | (Spell) → boolean: usable plus observed action cooldown/GCD readiness; not all target eligibility. |
player.active | (Spell) → boolean: bound action active flag. Use for Auto Shot; not a general aura check. |
target.inrange | (Spell) → boolean: bound known action range against living settled hostile target. False may mean too close for ranged attacks. |
spell.cooldown | (Spell) → numeric/interval:0 when ready, actual remaining if supplied, otherwise interval(0,infinity) while cooldown active. >0 may resolve while <5 stays unknown. No .remains suffix. |
player.mainhand.imbue | (Name) → boolean: compares enchant identity to rankless tooltip-name hash. Use Rockbiter/Windfury names, not full Weapon spell or arbitrary spell ID. Unknown if identity unobserved. |
player.offhand.imbue | (Name) → boolean: compares enchant identity to rankless tooltip-name hash. Use Rockbiter/Windfury names, not full Weapon spell or arbitrary spell ID. Unknown if identity unobserved. |
enemies.missing | (Spell[,yards]) → number: other observed enemies eligible under combat/threat/tap rules within player range (default30yd) with observed missing own debuff. Unknown units omitted; never unknown. Not target-centered. |
enemies.with | (Spell[,yards]) → number: same count for observed present debuff. Excludes current target; conservative observed subset. |
mouseover.debuff | (Spell) → boolean: target-family debuff on observed mouseover. No duration suffix. |
mouseover.hasdebuff | (Spell) → boolean: target-family debuff on observed mouseover. No duration suffix. |
WHAT THIS DOESN’T PROMISE.
Enemy counts and TTD can be estimates. Aura checks require observed coverage. Named target.casting(Spell) checks apply interrupt lists; bare target.casting currently reports raw activity. Party/raid healing and future game profiles remain staged. The current Lua namespace is LazyRaider.
Back to Rotation Author ↗BEFORE
YOU PULL.
Know your setup. Make it yours. Head into the next encounter with a clearer picture.
Explore the setup guideIs player.health a percentage?
No. player.health is raw health. Use player.healthpercent for a percentage.
Does target.phealth exist?
No. target.phealth is not a supported condition. Use the documented target health fields in this reference.
What happens when a condition is unknown?
Missing, stale or restricted observations remain unknown. Negating an unknown observation does not convert it into reliable true evidence.
Does a documented condition work on every game edition?
Not necessarily. A condition describes the authoring API; actual observation availability depends on the game profile and client validation.
Where should spell IDs be declared?
Declare the rotation’s spell IDs and ranks in its catalog. Class priorities belong in editable rotation files rather than app code.