APR / API

Route syntax

Find a field. Understand its behavior. Copy an example into your route.

198 documented fieldsLuaExplore Route Recorder ↗

198 results

Technical descriptions are preserved in source English. Field names and Lua examples are unchanged.

Route definition20

category

Route category enum. Common values are leveling, speedrun, campaign, etc.

conditions

Route selection rules; see the supported scopes in Filters and Conditions.

expansion

Expansion enum used to group the route in the UI.

gameVersion

Client family: "retail", "forever" or "classic". Incompatible routes are hidden and unavailable.

label

Display name shown in the route list.

mapID

Main map ID for the route. Used as route metadata and zone fallback.

nextRoute

Follow-up route keys. Conditional entries must also pass the target route's selection rules.

parallelSteps

Declare before steps. Insert eligible groups at the current position, or after the current InstanceQuest block. Single EquipItem/UseItem actions inherit live group conditions; other groups retain activation-only conditions.

parallelSteps[].repeatable

For a single UseItem action, allow a fresh activation after the previous action was passed and the conditions became false then true (for example, another book was received).

prefab

Prefab membership and ordering. Entry conditions select membership without hiding manual route selection.

requiredRoute

Required route keys. Applicable unfinished requirements are added before this route; hard visibility failures waive them, temporary level/spec/zone restrictions do not.

steps

Main ordered list of route steps.

legacyLabels

Previous labels recognized when resolving saved route names.

autoStartOnMap

Allows starter-route detection on the route's map.

notSkippable

Prioritize this starter route and protect it from automatic prefab reset suggestions.

hiddenFromSelection

Hide the route from manual route selection.

temporary

Temporary guide that preserves the parent route for resuming afterward.

sojournerAchievementID

Completed Sojourner achievement that allows campaign auto-skip when the player enables that setting.

scenarios

Scenario variants for an instance route; each has scenarioID, steps and optional label/index.

delve

Marks a route as a Delve guide.

Actions & progression55

Achievement

Track an achievement or criterion. Prefer criteriaID over positional criteriaIndex; if both are given, the ID wins.

BankDeposit

Move every listed bag stack into the open Classic character bank and bank bags; excludes guild, reagent and warband banks.

BankWithdraw

Move every listed Classic character-bank stack into bags while the bank is open.

BuyMerchant

Buy quantities from the open merchant as a main or secondary action. MerchantNPC restricts the merchant; place junk sales before purchases.

ChromiePick

Selects a specific Chromie Time timeline by option ID.

DeathSkip

Wait for death, confirm resurrection at a spirit healer, then finish on resurrection. Does not kill the character or accept an ordinary player resurrection as completion.

DestroyItems

Delete every bag stack of the listed items and wait until absent; no quantity limit.

EquipItem

Show the localized item name and an item button; complete once the specified slot contains the item. Use possession and level conditions for deferred parallel reminders.

Done

Quests to turn in. The step completes once all listed quests are handed in. If using DoneDB, keep a base Done field as well.

DoneDB

Alternative quest IDs counted as the same hand-in. Requires Done.

DoScenario

Indicates that the player should complete the scenario.

DroppableQuest

Defines passive or active dropped-quest tracking. When used without DropQuest, it behaves like a filler hint.

DropQuest

Quest obtained from a mob drop. Must be paired with a corresponding DroppableQuest.

Emote

Requires performing an emote on a target or at a step.

EnterInstance

Guides the player into an instance.

EnterScenario

Guides the player to a scenario entrance.

ExitTutorial

Exile's Reach specific step that auto-skips if the exit quest is no longer tracked.

Fillers

Optional side objectives that can progress during any step without blocking the route.

GetFP

Learn a flight path node.

Grind

Wait until the level/XP threshold is reached; supports numbers, absolute XP and named profiles.

Group

Marks an optional group quest and shows a popup (questID, Number).

GroupTask

Associates the step with WantedQuestList to store the player's decision for a group quest.

LearnProfession

Checks if a specific profession spell is learned.

LearnSkill

Train spells at a trainer. Waits if unavailable or unaffordable; add the required MinLevel and class filters.

LeaveInstance

Prompts to leave the instance once objectives are done.

LeaveQuest

Abandons a single quest from the quest log.

LeaveQuests

Abandons multiple quests from the quest log.

LeaveScenario

Prompts to leave the scenario once objectives are done.

LootItems

Wait for each quantity (default 1) in bags plus the saved character bank. A completed questID also satisfies its entry; no virtual loot or remembered counts.

LootMoney

Wait for cash plus carried items' estimated vendor value to reach copper; shows a progress bar. Excludes banks and uncached prices. See resource fields below.

MountVehicle

Automatically validates when a mount / boarding event is detected.

Note

Informational step accepting a string or array of strings. Seen notes are remembered and can auto-skip on later resets / revisits.

NpcDismount

Automatically dismounts to talk to the targeted NPC.

PickUp

List of quest IDs to pick up. The step remains active until all quests are in the log. If using PickUpDB, keep a base PickUp field as well.

PickUpDB

Alternative quest IDs for the same pickup step (class / faction variants). Requires PickUp.

Qpart

Quest objectives to complete, mapped by quest ID and objective index.

QpartDB

Alternative quest IDs for the same Qpart block. Requires Qpart.

QpartPart

Splits a single objective into guided sub-parts. Commonly paired with TrigText. Supports fraction and percentage style progress markers.

Repair

Open the declared NPC's vendor option and repair automatically, independently of general auto-gossip/auto-repair settings. Skip when every durable equipped item reaches minDurability (default 90%). Show the REPAIR label in both panels.

Reputation

Wait for the target standing, renown or friendship rank; shows progress within the current rank. See reputation types below.

ResetRoute

Shows a confirmation popup that resets the active route back to step 1.

RouteCompleted

Marks the route as finished and triggers route completion flow. Must stay as the last step.

Scenario

Fine-grained scenario objective tracking (scenarioID, stepID, criteriaID, etc.), optionally tied to a quest ID.

SellItems

Sell listed stacks and/or grey junk at the open merchant. npcID restricts the vendor; no quantity limit. Junk uses the localized default label; put extra advice in Note.

SetHS

Step to set the Hearthstone.

TameBeast

Show TAMEBEAST (Tame the %s beast) with the cached localized NPC name, falling back to the beast name in Text; update both panels when a live unit reveals its name. Offer spell and target buttons; complete after a successful cast on the specified NPC.

Treasure

Treasure or vignette step. The addon tracks the treasure's anchor quest, with optional item details for the tooltip.

UseDalaHS

Dalaran Hearthstone variant.

UseFlightPath

Step for using a flight master. Validates once the flight is complete.

UseGarrisonHS

Garrison Hearthstone variant.

UseHS

Step to use the Hearthstone.

UseItem

Standalone item-use action. questID is required; APR resolves the use spell from the item unless itemSpellID is supplied. Use Button when the item supports another objective.

UseSpell

Standalone spell-cast action. questID is required. Use SpellButton when the spell supports another objective.

VehicleExit

Forces exiting a vehicle.

WarMode

Ask the player to enable War Mode; completes when it is desired. The quest ID supplies the label. XP bonuses require active War Mode.

Navigation & targeting23

Boat

Indicates the player should take a boat instead of flying. Requires UseFlightPath.

Coord

World coordinates used by the arrow (x, y in WoW units).

Coords

Multiple coordinate variants for the same step. Typically paired with Zones; each entry should include its own Zone.

EmoteETA

Duration in seconds of the AFK countdown, started once after the matching step emote is performed via the button, chat command or APR. Displaying the step does not start it.

ETA

Estimated AFK timer duration in seconds.

GossipETA

Starts an AFK timer after gossip confirmation.

InstanceQuest

Marks instance steps; delays automatic Delve suggestions. A nearby matching DoScenario is replaced by the guide while preserving preceding setup steps.

IsAdventureMap

Allows auto-accepting quests from the Adventure Map.

Name

Optional custom name to override the taxi node name.

NoArrow

Hides the navigation arrow for this step.

NoAutoFlightMap

Prevents automatic flight / gossip selection for this step.

NodeID

Flight path node ID used on UseFlightPath steps.

NonSkippableWaypoint

Prevents the step from being skipped manually.

Range

Distance in yards from Coord to consider the location reached.

SingleWaypointDisplayDistance

Display only the distance to the next waypoint instead of the remaining waypoint chain.

SpecialETAHide

Hides the AFK timer even if ETA is set.

SpellETA

Start the AFK timer after the successful cast of spellID, or the use spell of itemID.

TakePortal

Use a portal; completes at mapID or when the linked quest is completed. Destination names come from the map ID.

Waypoint

Quest-related waypoint displayed until completion.

WaypointDB

Alternative waypoint quests that allow skipping if already completed. Requires Waypoint.

Zone

Expected map ID for the step.

Zones

Multiple valid map IDs for a single step. Also acts as a condition: the step is only considered valid when the player is in one of those maps.

ZoneStepTrigger

Automatically validates the step when entering the specified radius.

Automation & display19

Bloodlust

Adds a reminder to use Heroism / Bloodlust.

Buffs

List of buff spell IDs to recommend.

Button

Item buttons keyed by quest ID or questID-objective. A value may be one item ID or a nonempty list of item IDs, displayed in list order on the same step. Keep one key per quest/objective; repeated Lua keys overwrite earlier values.

DenyNPC

NPC ID whose gossip should be closed automatically.

Dontskipvid

Prevents automatic skipping of cutscenes or videos.

ExtraActionB

Prompts use of the special extra action button.

ExtraLineText*

Additional helper lines displayed in the current step panel. Supports numbered variants such as ExtraLineText2, ExtraLineText3, etc. Accepts localization keys or literal text.

GossipOptionIDs

Automatically select dialogue by option ID, rather than position.

InVehicle

Indicates vehicle status (1 = enter, 2 = stay in vehicle).

MerchantNPC

Limit the step purchase to this merchant NPC.

NoAutoAccept

Keep the quest pickup visible but require manual acceptance.

NoAutoTurnIn

Keep the quest hand-in visible but require manual interaction.

PreviewImages

Displays one or more clickable image previews in the current step panel. Relative paths are resolved from APR-Core/assets/; full Interface\\... paths are also accepted.

RaidIcon

NPC ID to mark with a raid icon.

SpellButton

Spell buttons keyed by quest ID or questID-objective. A value may be one spell or a nonempty list of spells, displayed in list order on the same step. Prefer numeric spell IDs; names must be understood by the client language. Keep one key per quest/objective; repeated Lua keys overwrite earlier values.

SpellTrigger

Automatically completes the step when the given spell is cast.

TrigText*

Text fragments used as completion triggers (TrigText, TrigText2, etc.).

UseGlider

Displays available gliders for controlled jumps.

IsCampaignQuest

Marks the step as part of a campaign.

Filters & conditions54

AlliedRace

Restricts based on whether the character is an allied race.

AllOf

Require every enclosed condition table to match. Useful for repeated predicates such as several quest-presence checks.

AnyOf

Requires at least one alternative condition table to match, in addition to all other conditions on the step/group. An empty list never matches.

BeLvl

Exact effective level check. The player must be at least this level, but below the next whole level.

Class

Require one or more classes; accepts tokens or class IDs.

ClassNot

Exclude one or more classes; route mismatches hide the route.

ClassSpec

Restricts to a specialization ID. For routes, failing this condition makes the route disabled rather than hidden.

Collection

Require at least quantity items (default 1) in bags plus the saved character bank, using the same count as LootItems.

DontHaveAchievement

Visible only if the achievement is missing.

DontHaveAura

Requires the aura to be absent.

DontHaveSpell

Requires a spell to be unknown by both the player and pet. With a list, none of the listed spells may be known. Uses the same spellbook wrapper as HasSpell.

EquippedItem

Require one slot entry or a nonempty list (every entry must pass). Omit itemID for any item; invert = true negates that entry.

EquippedItemStat

Compare a slot's stat token, QUALITY or LEVEL. A nonempty list requires every entry to pass. See resource fields below.

Event

Restricts to a specific APR event mode, such as Remix.

Faction

Restricts to a faction ("Alliance" or "Horde").

Gender

Restricts to a gender (1 neutral, 2 male, 3 female).

Hardcore

Require Hardcore (true) or non-Hardcore (false). Clients without C_GameRules.IsHardcoreActive count as non-Hardcore.

HasAchievement

Requires a specific achievement.

HasAura

Requires a specific buff or aura.

HasSpell

Requires the player or pet to know a specific spell.

InterfaceVersion

Minimum client interface version; route mismatches hide the route.

IsOneOfQuestsCompleted

Requires at least one quest in the list to be completed.

IsOneOfQuestsCompletedOnAccount

Account-wide variant of IsOneOfQuestsCompleted.

IsOneOfQuestsUncompleted

Requires none of the listed quests to be completed (negates IsOneOfQuestsCompleted).

IsOneOfQuestsUncompletedOnAccount

Account-wide variant of IsOneOfQuestsUncompleted.

IsQuestCompleted

Requires a single quest to be completed.

IsQuestNotOnQuest

Requires the quest to be absent from this character's current log. Combine with IsQuestUncompleted to exclude completed quests too.

IsQuestOnQuest

Requires the quest in this character's current log; account completion is not sufficient.

IsQuestReadyForTurnIn

True for a quest in this character's log with completed objectives, or a quest already turned in by this character. A list requires every quest to be ready.

IsQuestsCompleted

Requires all listed quests to be completed.

IsQuestsCompletedOnAccount

Account-wide variant of IsQuestsCompleted.

IsQuestsUncompleted

Requires at least one listed quest to still be incomplete.

IsQuestsUncompletedOnAccount

Account-wide variant of IsQuestsUncompleted.

IsQuestUncompleted

Requires a single quest to be incomplete.

ItemCount

Compare current item counts, summing itemIDs if supplied. Includes equipped items; optional bank/toy counting. See resource fields below.

Level

Minimum level/XP threshold; see level requirement forms below.

MaxLevel

Maximum level/XP threshold, inclusive.

MinLevel

Minimum level/XP threshold; keeps rewards eligible at higher levels.

Money

Compare cash actually owned, in copper. See resource fields below.

VendorMoney

Compare cash plus carried items' estimated vendor value; uses the same inventory/equipment rules as LootMoney.

Named level profile

Dynamic threshold for step Level, MinLevel, MaxLevel, SkipForLvl and Grind; see Configurable Level Profiles.

Not

Invert the complete enclosed condition table.

OnlyInZones

Shows and executes the step only in one of these current player map IDs; otherwise skips it. Does not set navigation coordinates.

PickedLoa

Specifies the chosen Loa in Zandalar (1 = Bwonsamdi, 2 = Rezan).

QuestLineSkip

Prevents the optional group popup if a questline is intentionally skipped.

Race

Require one or more races; accepts names or race IDs.

ReputationLevel

Shows the step only after the requested standing, renown level, or friendship rank has been reached.

Skill

Compare learned skill rank, or its cap with maximum = true. Accepts a key, skill ID or localized name; default rank is 1 and operator is >=.

SkipForLvl

Skips the step once the player's effective level is greater than or equal to the given value.

SkipForPrimaryProfessions

Skip once at least X primary professions are learned (positive integer). 2 keeps the step with zero or one profession. Cooking, fishing, first aid and archaeology never count.

SkipForReputation

Hides and skips the step once the requested standing, renown level, or friendship rank has been reached.

SkipInZones

Hides and skips the step in any of these current player map IDs. Does not set navigation coordinates.

InterfaceVersionExact

Require an exact client interface version.

SkipIfCooldown

Skips this step when the item cooldown exceeds the threshold on entry. Use spellID for a spell. Omit once to monitor continuously, for example < 300 on a farming/waiting step.

Miscellaneous & legacy3

Reputation constants11

Configurable Level Profiles12

Absolute XP requirements1

Search the wiki

Get started with APRRoutes & compatibilityAutomation, on your termsMake the interface yoursStuck on a step?Everyday commandsCreate & share a routeQuesting with a group
Browse the wiki