Reference

Function reference

Custom condition callbacks

A custom condition is a set of Lua function bodies. Each receives these arguments; addon and L are available in all of them.

evaluate(value, cache, evalStart)

Decide whether this condition currently matches.

valuetableThe stored values for this condition.
cachetableShared data for this evaluation cycle.
evalStartnumberEvaluation start time, in seconds from GetTime().
Returnsboolean | nilTrue matches; false or nil does not match.

valid(spec, value)

Check whether the stored condition values are complete and valid.

specnumberRotation specialization scope.
valuetableThe stored values for this condition.
ReturnsbooleanTrue when the condition can be evaluated.

print(spec, value)

Describe the condition in readable words.

specnumberRotation specialization scope.
valuetableThe stored values for this condition.
Returnsstring | RMConditionPhraseA readable string, or a transient named phrase from Functions.presentation.phrase. Named values remain literal; typed predicates choose positive or negative wording. The legacy string format remains supported.

widget(parent, spec, value)

Build the controls used to edit this condition.

parentRMConditionGroupThe condition field container supplied by the UI adapter.
specnumberRotation specialization scope.
valuetableThe stored values for this condition.
ReturnsnilAdd controls to the supplied container.

help(frame)

Build the help content for this condition.

frameRMConditionGroupThe help container supplied by the UI adapter.
ReturnsnilAdd help content to the supplied container.

on_register(tag)

Initialize resources when the condition is registered.

tagstringThe condition identifier.
ReturnsnilNo return value is used.

on_unregister(tag)

Release resources when the condition is removed or replaced.

tagstringThe condition identifier.
ReturnsnilNo return value is used.

Values your code can use

addonRMAddonRotation Master addon instance. Public helper functions are documented in Functions.
LtableLocalized Rotation Master text, indexed by its English key.
addon.unitstable<string, string>Supported unit-token to localized unit-name lookup. Use value.unit as a key; for example addon.units[value.unit]. Available tokens vary by client.
addon.unitsPossessivetable<string, string>Supported unit-token to localized possessive unit-name lookup, such as your target.
addon.PlatformRMPlatformRotation Master client compatibility adapter. Its methods return ordinary readable results or nil with a reason when an observation is unavailable. Use a colon call, or pass addon.Platform explicitly as self with a dot reference.
addon.SpellCatalogRMSpellCatalogRotation Master spell catalog for resolving client-specific spell IDs, ranks, names, icons and links.
functionstable<string, function>Utility functions explicitly bound to this condition or function. Choose a completion to bind an available custom function before inserting its reference.

WoW API for custom code

Built In helpers

The helpers the in-game Functions tab lists as Built In. Public ones are called by name; the others are bound as a dependency (choose the completion, or add it under Dependencies) and called by their qualified name.

240 of 240 helpers.

Conditions.bossmod.encounterNote dependencyBuilds the status line the boss-mod condition editors show about the current encounter.
Conditions.bossmod.idEditor dependencyBuilds a full-width edit box for an optional boss-mod ID (such as the encounter ID) and adds it to parent.
Conditions.bossmod.note dependencyAdds a full-width text label to a boss-mod condition editor; used for the encounter and timer status lines.
Conditions.bossmod.timerNote dependencyBuilds the status line the boss-mod condition editors show about running boss-mod timers.
Conditions.bossmod.validCompare dependencyValidation check for a boss-mod condition's comparison: true when value.operator is one of addon.operators and value.value is a finite number of zero or more.
Conditions.bossmod.validID dependencyTrue when value is a positive whole number below 2^31, the accepted shape of a saved boss-mod encounter or spell ID.
Conditions.build.imbueObservation dependencyReads the temporary enchant ID on the main hand, or the off hand when value.offhand is set, for the WEAPON_IMBUE condition.
Conditions.build.setLabel dependencyFormats an item set ID for the SET_PIECES description: the set name with its ID when addon:GetItemSetName knows it, otherwise "item set N".
Conditions.build.wholeNumber dependencyTrue when value is a positive, finite whole number; SET_PIECES uses it to validate the saved item set ID.
Conditions.common.Widget_GetSpellId publicResolve the spell identifier stored by a condition.
Conditions.common.Widget_SpellWidget publicCreate a spell input with suggestions, validation and spell-link support for custom condition widgets.
Conditions.common.Widget_UnitWidget publicCreate a configured unit selector bound to a condition value record.
Conditions.edition_state.eclipseMeasures dependencyLists the two measures of the Eclipse condition with their editor labels.
Conditions.edition_state.validCompare dependencyChecks that a condition value carries a known comparison operator and a finite, non-negative number to compare against.
Conditions.encounter_state.validCompare dependencyChecks that a condition value carries a known comparison operator and a finite, non-negative number to compare against.
Conditions.encounter_state.validNumber dependencyChecks that a value is a finite number of zero or more (not NaN, not infinite).
Conditions.engraving.identifier dependencyTrue when value is a positive whole number below 2^31; RUNE_ENGRAVED uses it to validate a saved rune ID.
Conditions.engraving.runeLabel dependencyNames the rune selected in a RUNE_ENGRAVED condition: the known rune's name when the platform finds it, else the rune spell's name, else "rune spell N" or "rune N".
Conditions.equipment.matches dependencyTests one equipment slot record against a WEAPON_TYPE condition: empty slot, shield, any weapon, holdable, one-hand, two-hand, ranged, or a specific weapon subclass.
Conditions.equipment.subclassID dependencyTrue when value is a whole number from 0 to 31, the range of weapon subclass IDs WEAPON_TYPE accepts.
Conditions.equipment.subclassName dependencyNames a weapon subclass for WEAPON_TYPE descriptions, using the client's GetItemSubClassInfo when it returns a readable name, else the addon's built-in name, else "weapon type N".
Conditions.group_state.measureNames dependencyLists what the Group Count condition can count, with the editor label of each.
Conditions.group_state.validCompare dependencyChecks that a Group Count value carries a known operator and a finite, non-negative number, which is at most 100 when the count is a percent of the group.
Conditions.hero_talent.listedSpec dependencyReturns the specialization ID when it is one of the player's own class's specializations, which are the only ones whose hero talent trees the game can list.
Conditions.hero_talent.treeName dependencyNames a hero talent tree: the game's own name for it when Platform:GetHeroTreeName can read one, else "hero talent tree" followed by the ID.
Conditions.hero_talent.validTree dependencyChecks that a value can be a hero talent tree ID: a positive whole number below 2^31.
Conditions.item.get_item_desc dependencyDescribes an item reference for the item condition descriptions: an item set name (white for a profile set, cyan for a global one), or the first item's link or name followed by how many others are listed.
Conditions.item.itemHelp dependencyAdds the item condition editors' help text to frame: the shared item widget help, a gap, and a note on how item sets, bag counts and restricted observations are evaluated.
Conditions.known_spell.validID dependencyTrue when value is a positive, finite whole number; SPELL_KNOWN uses it to validate the saved spell ID.
Conditions.misc.difficultyKind dependencyNames the kind of group a difficulty is for, from the group GetDifficultyInfo reports.
Conditions.misc.difficultyName dependencyThe display name of an instance difficulty ID: the game's name for it (GetDifficultyInfo) with the kind of group in parentheses when the game gives one.
Conditions.misc.validWhole dependencyChecks that a value can be a difficulty or instance ID: a whole number from 0 up to 2^31.
Conditions.player_state.stateNames dependencyLists the states the Player State condition offers, with the editor label of each.
Conditions.player_state.statePhrase dependencyThe readable sentence for one Player State, such as "you are mounted", worded so a Not flips it to "you are not mounted".
Conditions.raid_marks.markListText dependencyFormats a valid list of markers in priority order.
Conditions.raid_marks.markName dependencyReturns the game's localized name for a raid marker, falling back to its English name.
Conditions.raid_marks.modeNames dependencyReturns the localized labels for the any, none and selected-mark modes.
Conditions.raid_marks.validMark dependencyChecks a saved marker mode or a comma-separated list of distinct marker names.
Conditions.spatial_stats.aggregate dependencyReduces the per-unit readings a PROXIMITY_* condition collected to one statistic: their average, minimum or maximum.
Conditions.spatial_stats.observation dependencyReads one health or mana number for a PROXIMITY_* condition through the evaluation cache, protected against errors.
Conditions.spatial_stats.statistic dependencyReads one unit's health or mana for the PROXIMITY_* conditions as an absolute value, a percentage of the maximum, or the deficit below the maximum.
Conditions.spatial.booleanRead dependencyCalls a yes/no game API through the evaluation cache, protected against errors, for the distance conditions.
Conditions.spatial.combatFilter dependencyApplies the In Combat option of Distance Count to one unit: with the option off every unit passes, with it on the unit must be in combat (UnitAffectingCombat).
Conditions.spatial.finite dependencyTrue when value is a number that is neither NaN nor infinite.
Conditions.spatial.nameplateDistanceCount dependencyCounts units for DISTANCE_COUNT from a nameplate unit snapshot: units that exist, whose hostility matches value.enemy, and that are definitely within value.distance yards.
Conditions.spatial.protectedRead dependencyPackaged helper from Conditions/spatial.lua.
Conditions.spatial.rangeMember dependencyDecides whether unit is within distance yards from the platform's cached range-check bounds: true when the maximum bound is at or inside distance, false when the minimum bound is beyond it (or equals a nonzero distance), otherwise unavailable.
Conditions.spatial.rcf dependencyReturns the LibRangeCheck-3.0 range estimate for a unit as minimum and maximum yards.
Conditions.specialization.classChoices dependencyBuilds the specialization choices for one class in the SPECIALIZATION editor.
Conditions.specialization.playerClass dependencyReturns the player's class file token (such as "MAGE") from UnitClass, or nil when the call fails or the value is restricted.
Conditions.specialization.specClass dependencyLooks up which class a specialization ID belongs to, from the built-in specialization table or else the platform's specialization display data.
Conditions.specialization.specID dependencyTrue when value is a positive, finite whole number, the accepted shape of a saved specialization ID.
Conditions.specialization.specName dependencyNames a specialization for SPECIALIZATION descriptions: the platform's display name and icon, else the built-in localized name, else "specialization N".
Conditions.talent.block dependencyAdds a full-width group laid out as icon rows (the icon on the left, the picker rows beside it) to a condition widget.
Conditions.talent.classSpecs dependencyLists the specializations of the player's class for the Talent condition's Specialization picker, so a rotation can pick the talents of a specialization other than the one being played.
Conditions.talent.dropdown dependencyCreates a full-width condition dropdown labeled title for the talent condition editors, forwards each selection to changed, and adds it to parent.
Conditions.talent.gridWidget dependencyBuilds the TALENT editor controls for the tier-and-column grid talent layout: a talent icon and a dropdown of the client's grid talents (up to 18).
Conditions.talent.group dependencyReturns the talent group to query for spec: spec itself on progression clients when it is a whole number from 1 to 4, otherwise nil so the platform uses its default group.
Conditions.talent.groupLabel dependencyThe heading above one group of talents in the Retail and Forever talent list: class talents, specialization talents, both, one hero tree, or a plain name.
Conditions.talent.icon dependencyCreates the 44-pixel talent icon for the TALENT editors, showing the referenced talent's icon and, on hover, its spell tooltip (or its name), and adds it to parent.
Conditions.talent.info dependencyLooks up the talent a TALENT condition refers to, according to its layout: a trait node and entry, a grid index, or a tree and talent index.
Conditions.talent.integer dependencyTrue when value is a whole number between minimum and maximum, inclusive.
Conditions.talent.legacySlot dependencyTrue when a TALENT condition still uses the historical single-number layout: no layout, tree or talent field, and value.value a whole number from 1 to 21.
Conditions.talent.ownTrees dependencyWhether the talent trees shown are the player's own class's, so the game can name them, rather than another class's trees from the addon's shipped list.
Conditions.talent.text dependencyAdds a full-width explanatory label to a talent condition editor.
Conditions.talent.traitFamily dependencyTrue when the client uses trait talents, that is the retail or forever client families.
Conditions.talent.traitShape dependencyTrue when value.layout is "traits", meaning the TALENT condition names a trait node.
Conditions.talent.traitsWidget dependencyBuilds the TALENT editor controls for trait talents: a talent tree dropdown when there are several, a talent dropdown, Talent Node ID and Choice Entry ID edit boxes, and a Rank comparison.
Conditions.talent.treeExists dependencyChecks that a talent condition's tree index exists on this client, using the cached platform talent tree count.
Conditions.talent.treeName dependencyNames the talent tree in a talent tree condition's description: the client's tree name, else "Talent tree N", else "<talent tree>" when no tree is set.
Conditions.talent.treePicker dependencyBuilds the Talent tree dropdown for the TALENT_TREE_POINTS and PRIMARY_TALENT_TREE editors, listing the client's talent trees, storing the selection in value.tree and calling update.
Conditions.talent.treeShape dependencyTrue when a TALENT condition uses the tree layout (layout nil or "tree") with both tree and talent set.
Conditions.talent.treeWidget dependencyBuilds the TALENT editor controls for Classic talent trees: a tree dropdown, a talent icon, a talent dropdown for the chosen tree, and a Points comparison.
Conditions.totem.amount dependencyTrue when a totem condition's comparison is usable: value.value is a nonnegative finite number and value.operator is one of addon.operators.
Conditions.totem.element dependencyTrue when value.spell is a valid spell ID of 4 or less, meaning the condition names a totem element slot rather than a totem spell.
Conditions.totem.findSpecific dependencySearches the totem slots for an active totem matching value.spell, by spell ID or name (only the exact spell ID when value.ranked is set).
Conditions.totem.observe dependencyCalls a totem platform method through the evaluation cache, passing the platform as its self argument.
Conditions.totem.remaining dependencySeconds left on a totem slot record at time start (or now): zero when the totem is inactive, and never negative.
Conditions.totem.specific dependencyTrue when a totem spell condition names a valid spell ID and value.ranked is nil or a boolean.
Conditions.weapon.enchantObservation dependencyReads whether the main hand, or the off hand when value.offhand is set, has a temporary weapon enchant for the weapon conditions, with its expiration and charges.
Conditions.weapon.numericObservation dependencyAccepts a readable, nonnegative, finite number from a weapon observation and returns it unchanged; anything else becomes nil with a reason.
Conditions.weapon.swingSpeed dependencyReads the player's main-hand, or off-hand when value.offhand is set, attack speed from the cached UnitAttackSpeed for the swing timer conditions.
Core.class_group_conditions.GetClassGroupCount publicCount matching class tokens in the current fixed roster.
Core.creature_conditions.configuredID dependencyMaps a stored CREATURE condition key to its numeric creature type, from BEAST (1) to GAS_CLUUD (13).
Core.creature_conditions.GetConditionCreatureTypeMatch publicCompare the selected unit creature ID with one existing saved creature-type key.
Core.health_forecast_conditions.finite dependencyChecks that a health-forecast number is readable and finite.
Core.health_forecast_conditions.GetConditionHealthForecast publicEstimate time until selected health.
Core.health_forecast_conditions.nativeValue dependencyReads a unit's current or maximum health through the platform's health-forecast observer and the evaluation cache, rejecting restricted, missing, nonfinite or negative values.
Core.health_forecast_conditions.readField dependencyReads object[key] for the health-forecast conditions without letting a restricted value, a non-table object or an index error escape.
Core.level_conditions.GetConditionUnitLevel publicResolve a readable raw unit level for condition evaluation.
Core.point_conditions.editionPointResource dependencySelects the point resource for era and progression clients from the addon's per-edition map (combo points, Holy Power, Soul Shards, Chi, Shadow Orbs and similar).
Core.point_conditions.GetConditionPointResource publicResolve the selected unit point-resource selector using the live class-to-resource map and ComboPoints fallback.
Core.point_conditions.GetConditionPointResourceV2 publicResolve point resources using the original live class mapping and identity cache, with an explicit TBC player ComboPoints-fallback transport policy.
Core.point_conditions.pointIdentity dependencyObserves whether unit exists and, if so, its class, for the point-resource selectors.
Core.threat_count_conditions.finite dependencyChecks that a threat-count number is readable and finite.
Core.threat_count_conditions.GetConditionThreatCount publicCount only GUID-keyed units already in the observed membership snapshot.
Core.threat_count_conditions.readField dependencyReads object[key] for the threat-count conditions without letting a restricted value, a non-table object or an index error escape.
Functions.cache.getCached publicCall an observation once per cache and exact argument tuple, including nil results.
Functions.cache.getRetryCached publicCache an observation after it returns a non-nil value; retry observations whose entire return tuple is nil.
Functions.collections.cleanArray publicRemove entries in place, preserving only keys listed among except values by default.
Functions.collections.compareArray publicVisit entries in both tables and compare each value with the indexed value in the other table using Lua equality.
Functions.collections.deepcopy publicCreate a shallow filtered copy despite the historical deepcopy name.
Functions.collections.index publicReturn the first key whose value equals the supplied value during pairs traversal.
Functions.collections.keys publicCollect table keys and sort them by their associated values using Lua less-than comparison.
Functions.collections.multiinsert publicInsert each value visited by ipairs at its corresponding leading index in the destination array.
Functions.collections.spairs publicCreate an iterator over a sorted snapshot of table keys.
Functions.collections.tablelength publicCount all entries visited by pairs, including false values and sparse numeric or nonnumeric keys.
Functions.collections.tomap publicCopy a table using tostring of each original key as the destination key.
Functions.forecast.calculate publicCalculate a checked health-history rate using an explicit finite window and clock.
Functions.forecast.finite dependencyChecks that a number used by Functions.forecast.calculate is readable and finite.
Functions.forecast.readField dependencyReads object[key] for Functions.forecast.calculate without letting a restricted value, a non-table object or an index error escape.
Functions.presentation.compareString publicFormat comparison wording with named Boolean alternatives when the operator has a negative form.
Functions.presentation.nullable publicReturn a present value unchanged, or a red display placeholder for nil.
Functions.presentation.nullable_value publicLook up a table key for display, preserving non-nil results; invalid tables, missing keys and nil keys use nullable placeholder text.
Functions.presentation.phrase publicCreate a transient named condition summary.
Functions.presentation.playerize publicChoose the supplied player value only for the literal player unit token; every other unit selects the nonplayer value.
Functions.presentation.predicate publicCreate a typed comparison predicate for a named condition phrase.
Functions.text.ends_with publicTest a literal byte suffix using a Lua string slice.
Functions.text.split publicSplit a string into nonempty runs between separator characters.
Functions.text.starts_with publicTest a literal byte prefix using a Lua string slice.
Functions.text.trim publicRemove leading and trailing Lua-pattern whitespace from a string.
Functions.text.wrap publicWrap text at whitespace boundaries near a target column count.
Functions.trends.calculate publicEstimate signed health change from weighted damage and healing history.
Functions.trends.calculateOld publicRun the historical health-snapshot trend formula using the live profile history window, clock and legacy rounding service.
Functions.values.compare publicCompare two values using an RM operator identifier: LESSTHAN, LESSTHANOREQUALS, GREATERTHAN, GREATERTHANOREQUALS, EQUALS, NOTEQUALS or DIVISIBLE.
Functions.values.isin publicCheck whether a table has a non-nil value at a key.
Functions.values.isint publicApply the legacy integer or canonical numeric-string spelling test.
Functions.values.round publicRound with the existing floor(num * 10^places + 0.5) / 10^places formula.
Platform.actions.call dependencyCalls a native API function in protected mode and returns its first result only when Rotation Master can read it.
Platform.actions.findSlot dependencyFinds the spell-book slot of a spell with FindSpellBookSlotBySpellID.
Platform.actions.GetSpellRangeState publicRead spell-specific range for a unit using the appropriate client API or spell-book slot.
Platform.actions.spellID dependencyValidates a spell ID argument.
Platform.announcement_recipient.GetAnnouncementRecipientGroupMembership publicResolve an exact cast-recipient name against the current bounded party or raid roster, then observe membership through a unit token.
Platform.casting.durationSeconds dependencyComputes the total length of a cast or channel in seconds from the millisecond start and end times in a UnitCastingInfo or UnitChannelInfo result.
Platform.casting.finite dependencyReturns true when value is a number that is neither NaN nor infinite, and false for anything else.
Platform.casting.GetUnitCastObservation publicObserve a unit casting or channeling on probe- and restricted-policy clients.
Platform.casting.interruptibility dependencyConverts the native notInterruptible flag of a cast or channel into an interruptible Boolean (its inverse).
Platform.casting.remainingSeconds dependencyConverts the millisecond end time of a cast or channel into the seconds left, measured against a fresh GetTime() and clamped at zero.
Platform.casting.spellIdentity dependencyValidates the spell ID field of a cast or channel result.
Platform.creature_type.GetUnitCreatureTypeID publicObserve creature identity from native UnitCreatureType return two on probe- and restricted-policy clients.
Platform.form.GetPlayerFormObservation publicObserve the current player form with one protected zero-argument GetShapeshiftForm call.
Platform.glyphs.GetGlyphItemInfo publicClassify a numeric item as a glyph for the requested class, using guarded native item metadata.
Platform.glyphs.GetGlyphSocketSnapshot publicObserve glyph sockets on verified Wrath, Cata and Mists client layouts.
Platform.glyphs.integer dependencyReturns true when value is a finite whole number no smaller than minimum, and false for anything else (including NaN and infinity).
Platform.glyphs.layout dependencyMaps client information to the position in the GetGlyphSocketInfo result that holds the glyph spell ID.
Platform.glyphs.socket dependencyReads one glyph socket by calling fn(index) in protected mode and always returns a slot record with slot=index.
Platform.groups.GetGroupMembership publicRead public group membership on identified client families.
Platform.groups.GetUnitGroupMembership publicRead a specified unit membership in the player party or raid.
Platform.health_forecast.finite dependencyReturns true when value is a number that is neither NaN nor infinite, and false for anything else.
Platform.health_forecast.GetHealthForecastIdentityObservation publicOn probe- and restricted-policy clients, observe exact UnitExists(unit), then UnitGUID(unit) only for a present unit.
Platform.health_forecast.GetHealthForecastProviderObservation publicRead optional RealMobHealth using its exact one-argument dot call.
Platform.health_forecast.GetHealthForecastTimeObservation publicObserve a fresh protected zero-argument GetTime for a needed health forecast.
Platform.health_forecast.GetHealthForecastValueObservation publicRead a lazy health scalar after a separate identity gate.
Platform.health_forecast.providerValue dependencyNormalizes one health figure returned by the RealMobHealth provider.
Platform.health_forecast.readField dependencyReads object[key] in protected mode.
Platform.instance.GetInstanceObservation publicObserve one protected zero-argument IsInInstance tuple.
Platform.items.finite dependencyReturns true when value is a finite, nonnegative number (not NaN or infinity), and false for anything else.
Platform.items.GetItemInfoInstant publicRead normalized native item classification metadata.
Platform.items.identifier dependencyValidates an item argument.
Platform.loss_of_control.GetLossOfControlCount publicRead the documented active loss-of-control count with a protected zero-argument dot call.
Platform.loss_of_control.GetLossOfControlEvent publicRead one documented active loss-of-control row by its native index and requested subject kind.
Platform.mobinfo2.finite dependencyChecks that a value is a readable finite number.
Platform.mobinfo2.GetMobInfo2Observation publicRead optional MobInfo2 historical observations on probe- and restricted-policy clients.
Platform.mobinfo2.hitCount dependencyReads the hit count for a spell school from a MobInfo2 resists table (the field named school.."Hits").
Platform.mobinfo2.presence dependencyChecks whether a unit exists with one protected UnitExists call.
Platform.mobinfo2.readField dependencyReads object[key] in protected mode for MobInfo2 data.
Platform.pet.GetPetObservation publicObserve exact pet existence and optionally its formatted GetUnitName display name.
Platform.player_flags.GetPlayerFlagObservation publicObserve one independent zero-argument player flag: stealthed uses IsStealthed, control uses HasFullControl, and outdoors uses IsOutdoors.
Platform.player_movement.GetPlayerMovementObservation publicObserve the player current movement speed on supported readable clients.
Platform.points.GetPlayerComboPointObservation publicObserve the explicitly selected TBC player combo transport.
Platform.points.GetUnitPointFragmentObservation publicObserve a point resource that the client reports in fragments (Mists of Pandaria Burning Embers).
Platform.points.GetUnitPointIdentityObservation publicObserve exact selected-unit existence and optionally its class filename for point-resource conditions.
Platform.points.GetUnitPointPowerObservation publicRead one explicitly selected point-resource quantity with an exact two-argument UnitPower or UnitPowerMax query.
Platform.range.GetNameplateMaxDistance publicRead the current positive nameplate visibility distance using the supported CVar API.
Platform.range.GetRangeCheckBounds publicRead the public LibRangeCheck interval for a unit.
Platform.role.GetInspectRoleObservation publicObserve a selected unit role on probe- and restricted-policy clients without issuing inspection requests.
Platform.role.GetTalentGroupRoleObservation publicObserve the first role result of the exact legacy GetTalentGroupRole(group) dot call on probe- and restricted-policy clients.
Platform.role.readField dependencyReads object[key] in protected mode, used to look up optional APIs.
Platform.role.roleValue dependencyValidates a role returned by a native API.
Platform.roster_class.GetRosterClassObservation publicRead public roster identity on identified client families.
Platform.roster_class.rosterUnit dependencyReturns true when unit is exactly player, party1 through party4, or raid1 through raid40 (no leading zeros), and false for any other string.
Platform.rotation_owner.GetPlayerOwnerClassObservation publicRead a fresh protected UnitClass player observation for rotation ownership.
Platform.runes.finite dependencyReturns true when value is a number that is neither NaN nor infinite, and false for anything else.
Platform.runes.GetRuneCooldownObservation publicRead one protected GetRuneCooldown tuple for an exact native slot.
Platform.runes.GetRuneEvaluationTime publicRead a fresh protected zero-argument GetTime for rune cooldown arithmetic.
Platform.runes.GetRuneTypeObservation publicObserve one exact native rune slot using GetRuneType with its single index argument.
Platform.runes.numberField dependencyNormalizes one numeric field of a native result.
Platform.runes.validIndex dependencyValidates a rune slot index.
Platform.spells.cooldownFlags dependencyExtracts the never-secret isEnabled, isActive and isOnGCD flags from a C_Spell.GetSpellCooldown record whose times are secret.
Platform.spells.cooldownValues dependencyReads a spell cooldown as separate values for the readiness checks.
Platform.spells.copy dependencyCopies the expected fields of a native result table into a new table, checking each type.
Platform.spells.finiteNonNegative dependencyReturns true when value is a nonnegative number that is not NaN or infinity, and false for anything else.
Platform.spells.flagReadiness dependencyDecides cooldown readiness from the never-secret flags when the cooldown times are hidden.
Platform.spells.gcdRunning dependencyReports whether the global cooldown is running at time now.
Platform.spells.GetSpellCharges publicRead a normalized charge record: currentCharges, maxCharges, cooldownStartTime, cooldownDuration, chargeModRate and isActive.
Platform.spells.GetSpellCooldown publicRead and normalize a spell cooldown across supported clients.
Platform.spells.identifier dependencyValidates a spell argument.
Platform.spells.IsAutoRepeatActive publicRead the player auto-repeat state for a spell such as Shoot or Auto Shot.
Platform.spells.IsSpellReady publicCheck whether a spell can be recommended now, allowing a spell whose remaining cooldown ends with the current global cooldown.
Platform.spells.own dependencyReturns a record holding only the expected fields, each checked by type.
Platform.threat.GetUnitThreatObservation publicObserve ordered selected-unit existence, hostility from player, then the player threat status on that unit.
Platform.unit_attackability.GetUnitAttackabilityObservation publicObserve whether the player can attack a selected unit that is not dead, using the exact UnitExists, UnitCanAttack and UnitIsDead predicates.
Platform.unit_flags.GetUnitFlagObservation publicObserve one current unit flag: combat uses UnitAffectingCombat, enemy uses UnitIsEnemy with player as the first unit, and pvp uses UnitIsPVP.
Platform.unit_health.finite dependencyReturns true when value is a number that is neither NaN nor infinite, and false for anything else.
Platform.unit_health.GetUnitHealthObservation publicObserve readable current health and optionally maximum health on supported clients.
Platform.unit_identity.GetUnitIdentityObservation publicCompare two exact unit tokens using UnitIsUnit after checking only the first token with UnitExists.
Platform.unit_level.finite dependencyReturns true when value is a number that is neither NaN nor infinite, and false for anything else.
Platform.unit_level.GetUnitLevelObservation publicObserve a readable raw unit level on known clients.
Platform.unit_metadata.GetUnitMetadataObservation publicObserve one consumed native unit metadata field after checking UnitExists: class uses UnitClass return two, creature uses the localized UnitCreatureType name, and classification uses UnitClassification.
Platform.unit_power.finite dependencyReturns true when value is a number that is neither NaN nor infinite, and false for anything else.
Platform.unit_power.GetUnitPowerObservation publicObserve explicit mana or the current raw power resource on supported readable clients.
Platform.unit_presence.GetUnitPresenceObservation publicObserve unit presence on identified client families.
Platform.unit_stat.finite dependencyReturns true when value is a number that is neither NaN nor infinite, and false for anything else.
Platform.unit_stat.GetUnitStatObservation publicObserve the effective statistic from native return two only.
Platform.unit_states.GetUnitStateObservation publicObserve death or ghost state, or friendliness to the player, for the exact selected unit on probe- and restricted-policy clients.
Platform.zone_pvp.GetZonePVPObservation publicObserve the first zone PvP classification result with one protected zero-argument dot call.
UI.checkbox.constructor dependencyConstructs a new RM-CheckBox condition widget: a 180 by 24 frame holding a workbench check box, with SetLabel, SetValue, GetValue and SetDisabled, firing OnValueChanged when clicked.
UI.checkbox.CreateConditionCheckBox publicCreate a native boolean condition control.
UI.condition_display.buttonConstructor dependencyConstructs a new RM-ConditionButton widget around a 200-pixel workbench button, with SetText, SetAutoWidth and SetDisabled, firing OnClick (with the mouse button), OnEnter and OnLeave only while its lease is live.
UI.condition_display.CreateConditionButton publicCreate a native button using the shared condition widget lifecycle and workbench theme.
UI.condition_display.CreateConditionLabel publicCreate native wrapping text that measures its height from its width and font.
UI.condition_display.CreateConditionLink publicCreate native wrapping text with optional leading image and pointer callbacks.
UI.condition_display.defaultFont dependencyReturns the default font for condition labels and buttons: the GameFontHighlightSmall font object, or its name when the object is not defined.
UI.condition_display.labelConstructor dependencyConstructs a new condition text widget: a plain wrapping RM-ConditionLabel, or with interactive set an RM-ConditionLink button that adds a leading image and OnEnter, OnLeave and OnClick callbacks.
UI.condition_icon.constructor dependencyConstructs a new RM-ConditionIcon widget: a clickable image with an optional caption below it, with SetImage, SetImageByAtlas, SetImageSize, SetLabel and SetDisabled, firing OnClick, OnEnter and OnLeave while its lease is live.
UI.condition_icon.CreateConditionIcon publicCreate a native image control using the condition widget lifecycle.
UI.condition_inputs.constructor dependencyConstructs a new condition input widget: an RM-ConditionEditBox text box, or with numeric set an RM-ConditionSlider pairing a slider with a numeric box (with range, step and percent display).
UI.condition_inputs.CreateConditionEditBox publicCreate a native text input using the condition widget contract.
UI.condition_inputs.CreateConditionSlider publicCreate a native numeric condition input with a slider and typed numeric field.
UI.condition_inputs.finite dependencyTrue when value is a number that is neither NaN nor infinite; the condition inputs use it to validate entered and slider values.
UI.condition_layout.constructor dependencyConstructs a new RM-ConditionGroup container that stacks condition widgets in List, Table or RM-SpellField layout, resizing itself to its contents and relaying out its parent.
UI.condition_layout.CreateConditionGroup publicCreate a condition field container with RM-owned List, Table and responsive spell-field layouts.
UI.condition_layout.layoutIconRows dependencyLays out the "RM-IconRows" container: an icon on the left, vertically centered beside the rows of fields, and an optional side widget (marked with the side user data) that sits beside the last row when there is room and below the rows when there is not.
UI.condition_layout.verticalAlignment dependencyConverts a table cell's alignV setting to a vertical offset fraction for the condition group's Table layout: 0 for nil, start or top, 0.5 for middle or center, and 1 for end or bottom (case-insensitive prefixes).
UI.condition_position.constructor dependencyConstructs a new RM-ConditionPositionPad widget around the shared workbench directional pad, with SetDisabled, firing OnOffsetChanged (horizontal and vertical direction, whether Center was pressed, and the step) only while its lease is live and it is enabled.
UI.condition_position.CreateConditionPositionPad publicCreate a native position pad using the shared directional controls.
UI.selector.CreateConditionDropdown publicCreate a native condition selector.
UI.selector.selectorWidget dependencyConstructs a new RM-Selector dropdown widget: an optional caption over a button that opens the workbench selector popup.
utils.getCachedInternal dependencyPackaged helper from utils.lua.
utils.packResults dependencyPackaged helper from utils.lua.