wow-api-misc-systems

Miscellaneous Systems API (Retail — Patch 12.0.0)

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "wow-api-misc-systems" with this command: npx skills add jburlison/wowaddonapiagents/jburlison-wowaddonapiagents-wow-api-misc-systems

Miscellaneous Systems API (Retail — Patch 12.0.0)

Catch-all reference for smaller API systems that don't warrant individual skills.

Source: https://warcraft.wiki.gg/wiki/World_of_Warcraft_API Current as of: Patch 12.0.0 (Build 65655) — January 28, 2026 Scope: Retail only.

Scope

This skill covers ~40 smaller API systems grouped by category:

  • NPC Interaction — GossipInfo, PlayerChoice, PlayerInteractionManager, ImmersiveInteraction

  • Tooltips — TooltipInfo, TooltipComparison

  • UI Systems — Tutorial, SplashScreen, SlashCommand, ClickBindings, MirrorTimer

  • Cinematics & Media — Cinematic, Movie, ModelInfo

  • Social/Account — ReportSystem, UserFeedback, ParentalControls, RecruitAFriend

  • Game Systems — ChromieTimeInfo, AlliedRaces, WarbandSceneInfo, PerksActivities

  • Utility — Log, EventUtils, Localization, Locale

  • Legacy — GarrisonInfo, Covenant/Soulbinds, AzeriteItem, ResearchInfo, ContributionCollector

NPC Interaction

C_GossipInfo — NPC Dialog

Function Returns Description

C_GossipInfo.GetOptions()

options

Available dialog options

C_GossipInfo.GetText()

text

NPC dialog text

C_GossipInfo.GetNumOptions()

numOptions

Number of options

C_GossipInfo.SelectOption(optionID, text, confirmed)

— Select dialog option

C_GossipInfo.SelectOptionByIndex(index)

— Select by index

C_GossipInfo.GetNumAvailableQuests()

numQuests

Available quests

C_GossipInfo.GetAvailableQuests()

quests

Available quest list

C_GossipInfo.GetNumActiveQuests()

numQuests

Active quests

C_GossipInfo.GetActiveQuests()

quests

Active quest list

C_GossipInfo.SelectAvailableQuest(questID)

— Select available quest

C_GossipInfo.SelectActiveQuest(questID)

— Select active quest

C_GossipInfo.ForceGossip()

forceGossip

Force gossip display?

C_GossipInfo.CloseGossip()

— Close gossip window

C_GossipInfo.GetPoiForUiMapID(uiMapID)

poiInfo

POI for map

C_GossipInfo.GetPoiInfo(uiMapID, gossipPoiID)

poiInfo

Specific POI info

C_GossipInfo.GetCustomGossipDescriptionString()

description

Custom description

C_GossipInfo.RefreshOptions()

— Refresh options

Gossip Option Fields

  • gossipOptionID — Unique option ID

  • name — Option text

  • icon — Option icon

  • status — Status enum

  • orderIndex — Sort order

  • flags — Option flags

  • overrideIconID — Override icon

  • selectOptionWhenOnlyOption — Auto-select?

  • spellID — Associated spell

C_PlayerChoice — Player Choices

Function Returns Description

C_PlayerChoice.GetCurrentPlayerChoiceInfo()

choiceInfo

Current choice

C_PlayerChoice.GetNumPlayerChoices()

numChoices

Number of choices

C_PlayerChoice.GetPlayerChoiceOptionInfo(optionIndex)

optionInfo

Option details

C_PlayerChoice.GetPlayerChoiceRewardInfo(rewardIndex)

rewardInfo

Reward details

C_PlayerChoice.SendPlayerChoiceResponse(responseID)

— Make choice

C_PlayerChoice.IsWaitingForPlayerChoiceResponse()

isWaiting

Response pending?

C_PlayerChoice.OnUIClosed()

— UI closed callback

C_PlayerChoice.GetRemainingTime()

seconds

Time limit

C_PlayerInteractionManager — Interaction Windows

Function Returns Description

C_PlayerInteractionManager.ClearInteraction(type)

cleared

Close interaction

C_PlayerInteractionManager.ReplaceInteraction(type, target)

— Replace interaction

C_PlayerInteractionManager.IsInteractingWithNpcOfType(type)

isInteracting

Interacting with type?

C_PlayerInteractionManager.GetCurrentInteractionType()

type

Current interaction

Player Interaction Types (Enum.PlayerInteractionType)

Name Description

Banker

Bank NPC

Merchant

Vendor

Trainer

Trainer

MailInfo

Mailbox

AuctionHouse

Auction House

GuildBanker

Guild bank

Transmogrifier

Transmog NPC

VoidStorageBanker

Void storage

StableManager

Stable master

BarberShop

Barber shop

C_ImmersiveInteraction — Immersive NPC

Function Returns Description

C_ImmersiveInteraction.GetCurrentInteraction()

interactionInfo

Current immersive interaction

C_ImmersiveInteraction.IsActive()

isActive

Immersive mode active?

Tooltips

C_TooltipInfo — Tooltip Data Provider

Function Returns Description

C_TooltipInfo.GetItemByID(itemID)

tooltipData

Item tooltip data

C_TooltipInfo.GetItemByItemLink(itemLink)

tooltipData

Tooltip from link

C_TooltipInfo.GetSpellByID(spellID)

tooltipData

Spell tooltip

C_TooltipInfo.GetUnitAura(unit, index, filter)

tooltipData

Aura tooltip

C_TooltipInfo.GetHyperlink(hyperlink)

tooltipData

Generic hyperlink tooltip

C_TooltipInfo.GetInventoryItem(unit, slot)

tooltipData

Equipped item tooltip

C_TooltipInfo.GetBagItem(bag, slot)

tooltipData

Bag item tooltip

C_TooltipInfo.GetGuildBankItem(tab, slot)

tooltipData

Guild bank tooltip

C_TooltipInfo.GetVoidStorageItem(slot)

tooltipData

Void storage tooltip

C_TooltipInfo.GetAchievementByID(achievementID)

tooltipData

Achievement tooltip

C_TooltipInfo.GetCurrencyByID(currencyID)

tooltipData

Currency tooltip

C_TooltipInfo.GetMountBySpellID(spellID)

tooltipData

Mount tooltip

C_TooltipInfo.GetPetByID(petID)

tooltipData

Pet tooltip

C_TooltipInfo.GetToyByItemID(itemID)

tooltipData

Toy tooltip

C_TooltipInfo.GetQuestItem(type, index)

tooltipData

Quest reward tooltip

C_TooltipComparison — Item Comparison

Function Returns Description

C_TooltipComparison.GetItemComparisonInfo(tooltipData)

comparisonInfo

Compare items

C_TooltipComparison.GetItemComparisonDelta(tooltipData)

delta

Stat differences

UI Systems

Tutorial

Function Returns Description

C_Tutorial.AcknowledgeTutorial(tutorialID)

— Mark tutorial seen

C_Tutorial.IsTutorialFlagged(tutorialID)

isFlagged

Already shown?

C_Tutorial.SetTutorialFlag(tutorialID, flagged)

— Set flag

SplashScreen

Function Returns Description

C_SplashScreen.AcknowledgeSplash()

— Dismiss splash

C_SplashScreen.CanViewSplashScreen()

canView

Can show splash?

C_SplashScreen.RequestLatestSplashScreen()

— Request latest

C_SplashScreen.ShouldShowSplashScreen()

shouldShow

Should display?

SlashCommand

Function Returns Description

SlashCmdList["COMMANDNAME"]

— Register slash command

SLASH_COMMANDNAME1 = "/cmd"

— Define slash trigger

hash_SlashCmdList

— Internal hash table

ClickBindings

Function Returns Description

C_ClickBindings.GetBindingType(modifiers, button)

bindingType

Binding at key combo

C_ClickBindings.SetBindingType(modifiers, button, type)

— Set binding

C_ClickBindings.ResetBindings()

— Reset all

C_ClickBindings.GetProfileInfo()

profileInfo

Profile data

MirrorTimer — Breath/Fatigue Bars

Function Returns Description

GetMirrorTimerInfo(index)

timer, initial, maxValue, scale, paused, label

Timer info

GetMirrorTimerProgress(timer)

value

Timer value

MIRRORTIMER_NUMTIMERS

3 Max timers

Cinematics & Media

Cinematic

Function Returns Description

OpeningCinematic()

— Play opening cinematic

CinematicFinished(id, didCancel)

— Cinematic ended

IsInCinematicScene()

inCinematic

In cinematic?

StopCinematic()

— Stop cinematic

InCinematic()

inCinematic

Legacy cinematic check

Movie

Function Returns Description

MovieFrame.PlayMovie(movieID)

— Play movie

GameMovieFinished()

— Movie ended callback

C_ModelInfo — Model Data

Function Returns Description

C_ModelInfo.GetModelSceneInfoByID(sceneID)

sceneInfo

Scene info

C_ModelInfo.GetModelSceneActorInfoByID(actorID)

actorInfo

Actor info

C_ModelInfo.GetModelSceneCameraInfoByID(cameraID)

cameraInfo

Camera info

C_ModelInfo.AddActiveModelScene(frame, sceneID)

— Add scene to frame

C_ModelInfo.ClearActiveModelScene(frame)

— Clear scene

Social / Account

C_ReportSystem — Player Reports

Function Returns Description

C_ReportSystem.CanReportPlayer(playerLocation)

canReport

Can report?

C_ReportSystem.SendReport(reportInfo)

— Submit report

C_ReportSystem.GetMajorCategoriesForReportType(reportType)

categories

Report categories

C_ReportSystem.GetMinorCategoriesForMajorCategory(majorCategory)

minorCategories

Sub-categories

C_ReportSystem.InitiateReportPlayer(complaintType, playerName)

— Start report flow

C_UserFeedback — Feedback System

Function Returns Description

C_UserFeedback.SubmitBug(description)

— Submit bug report

C_UserFeedback.SubmitSuggestion(description)

— Submit suggestion

C_ParentalControls — Parental Controls

Function Returns Description

C_ParentalControls.GetRemainingPlayTime()

minutes

Play time left

C_ParentalControls.IsPlayTimeActive()

isActive

Play time limit?

C_RecruitAFriend — Recruit A Friend

Function Returns Description

C_RecruitAFriend.GetRecruitInfo()

recruitInfo

RAF info

C_RecruitAFriend.IsEnabled()

enabled

RAF enabled?

C_RecruitAFriend.IsRecruitingEnabled()

enabled

Can recruit?

C_RecruitAFriend.GenerateLink()

link

Generate RAF link

C_RecruitAFriend.ClaimActivityReward(activityID)

— Claim RAF reward

C_RecruitAFriend.ClaimNextReward()

— Claim next

Game Systems

C_ChromieTimeInfo — Chromie Time (Level Scaling)

Function Returns Description

C_ChromieTimeInfo.GetChromieTimeExpansionOptions()

options

Available expansions

C_ChromieTimeInfo.SelectChromieTimeExpansionOption(optionID)

— Select expansion

C_ChromieTimeInfo.GetChromieTimeExpansionOption(optionID)

optionInfo

Option info

C_ChromieTimeInfo.GetCurrentChromieTimeExpansionOption()

optionInfo

Current selection

C_ChromieTimeInfo.CloseChromieTimeUI()

— Close UI

C_AlliedRaces — Allied Races

Function Returns Description

C_AlliedRaces.GetAllRacialAbilitiesForRace(raceID)

abilities

Race abilities

C_AlliedRaces.GetRaceInfoByID(raceID)

raceInfo

Race info

C_AlliedRaces.ClearAlliedRaceDetailsGiver()

— Clear details

C_AlliedRaces.GetAlliedRaceInfo(raceID)

info

Allied race details

C_WarbandSceneInfo — Warband Scenes

Function Returns Description

C_WarbandSceneInfo.GetWarbandSceneInfo()

sceneInfo

Warband scene data

C_WarbandSceneInfo.GetCharacterEntries()

entries

Character positions

C_WarbandSceneInfo.SetCharacterEntry(index, characterInfo)

— Set character slot

C_WarbandSceneInfo.GetAvailableCharacters()

characters

Available characters

C_WarbandSceneInfo.SaveScene()

— Save warband scene

C_PerksActivities — Monthly Activities

Function Returns Description

C_PerksActivities.GetPerksActivitiesInfo()

info

Activities overview

C_PerksActivities.GetTrackedPerksActivities()

activities

Tracked activities

C_PerksActivities.AddTrackedPerksActivity(activityID)

— Track activity

C_PerksActivities.RemoveTrackedPerksActivity(activityID)

— Untrack

C_PerksActivities.GetPerksActivityInfo(activityID)

activityInfo

Activity details

C_PerksActivities.GetAllPerksActivityTags()

tags

All tags/categories

Utility Systems

C_Localization / Locale

Function Returns Description

GetLocale()

locale

Game locale (e.g., "enUS")

GetCurrentRegion()

regionID

Current region

GetCurrentRegionName()

regionName

Region name

Log

Function Returns Description

LoggingCombat(enable)

— Toggle combat log file

LoggingChat(enable)

— Toggle chat log file

IsLoggingCombat()

isLogging

Combat logging?

IsLoggingChat()

isLogging

Chat logging?

C_EventUtils

Function Returns Description

C_EventUtils.IsEventValid(event)

isValid

Is event string valid?

Legacy Systems (Deprecated/Maintained)

These systems originated in earlier expansions. APIs may still function but the content is legacy.

GarrisonInfo (WoD/Legion)

Function Returns Description

C_Garrison.GetFollowerInfo(followerID)

followerInfo

Follower data

C_Garrison.GetFollowers(followerType)

followers

Follower list

C_Garrison.GetLandingPageInfo(garrType)

info

Landing page

C_Garrison.GetBuildings(garrType)

buildings

Building list

C_Garrison.GetMissions(garrType)

missions

Available missions

C_Garrison.IsOnGarrisonMap()

onMap

In garrison?

Covenant / Soulbinds (Shadowlands)

Function Returns Description

C_Covenants.GetActiveCovenantID()

covenantID

Active covenant

C_Covenants.GetCovenantData(covenantID)

covenantData

Covenant info

C_Soulbinds.GetActiveSoulbindID()

soulbindID

Active soulbind

C_Soulbinds.GetSoulbindData(soulbindID)

soulbindData

Soulbind info

C_Soulbinds.GetConduitItemLevel(conduitID, conduitRank)

itemLevel

Conduit ilvl

AzeriteItem (Battle for Azeroth)

Function Returns Description

C_AzeriteItem.IsAzeriteItem(itemLocation)

isAzerite

Is Azerite item?

C_AzeriteItem.GetPowerLevel(azeriteItemLocation)

powerLevel

Necklace level

C_AzeriteItem.GetAzeriteItemXPInfo(azeriteItemLocation)

xp, totalLevelXP

XP info

C_AzeriteEmpoweredItem.GetPowerInfo(powerID)

powerInfo

Trait info

C_AzeriteEmpoweredItem.SelectPower(azeriteItemLocation, powerID)

— Select trait

ResearchInfo (Archaeology — Removed)

Function Returns Description

C_ResearchInfo.GetDigSitesForMap(uiMapID)

digSites

Dig sites (legacy)

Note: Archaeology as a profession was removed, but some API remnants persist.

ContributionCollector (Legion)

Function Returns Description

C_ContributionCollector.GetState(contributionID)

state

Contribution state

C_ContributionCollector.GetName(contributionID)

name

Contribution name

C_ContributionCollector.Contribute(contributionID)

— Contribute

Common Patterns

Handle NPC Gossip

local f = CreateFrame("Frame") f:RegisterEvent("GOSSIP_SHOW") f:SetScript("OnEvent", function() local options = C_GossipInfo.GetOptions() for i, option in ipairs(options) do print(i, option.name, option.gossipOptionID) end

-- Auto-select if only one option
if #options == 1 and options[1].selectOptionWhenOnlyOption then
    C_GossipInfo.SelectOption(options[1].gossipOptionID)
end

end)

Display Player Choice

local f = CreateFrame("Frame") f:RegisterEvent("PLAYER_CHOICE_UPDATE") f:SetScript("OnEvent", function() local choiceInfo = C_PlayerChoice.GetCurrentPlayerChoiceInfo() if choiceInfo then print("Choice:", choiceInfo.questionText) for i = 1, C_PlayerChoice.GetNumPlayerChoices() do local option = C_PlayerChoice.GetPlayerChoiceOptionInfo(i) if option then print(" Option", i, ":", option.header, "-", option.description) end end end end)

Get Tooltip Data Programmatically

-- Get item tooltip text without showing tooltip local tooltipData = C_TooltipInfo.GetItemByID(12345) if tooltipData then TooltipUtil.SurfaceArgs(tooltipData) for _, line in ipairs(tooltipData.lines) do TooltipUtil.SurfaceArgs(line) print(line.leftText) end end

Check Chromie Time Status

local function ShowChromieTimeOptions() local options = C_ChromieTimeInfo.GetChromieTimeExpansionOptions() if options then for _, option in ipairs(options) do print(option.name, option.description, option.isCurrent and "(ACTIVE)" or "") end end end

Register Slash Commands

SLASH_MYADDON1 = "/myaddon" SLASH_MYADDON2 = "/ma" SlashCmdList["MYADDON"] = function(msg) local cmd, args = msg:match("^(%S+)%s*(.*)") cmd = cmd and cmd:lower() or msg:lower()

if cmd == "config" then
    -- Open config
elseif cmd == "help" then
    print("/myaddon config - Open settings")
    print("/myaddon help - Show help")
else
    print("Unknown command. Use /myaddon help")
end

end

Key Events

Event Payload Description

GOSSIP_SHOW

uiTextureKit NPC gossip opened

GOSSIP_CLOSED

— Gossip window closed

GOSSIP_CONFIRM

gossipID, text, cost Gossip confirmation

PLAYER_CHOICE_UPDATE

— Player choice available

PLAYER_CHOICE_CLOSE

— Choice closed

PLAYER_INTERACTION_MANAGER_FRAME_SHOW

type Interaction opened

PLAYER_INTERACTION_MANAGER_FRAME_HIDE

type Interaction closed

CINEMATIC_START

canBeCancelled Cinematic starting

CINEMATIC_STOP

— Cinematic ended

PLAY_MOVIE

movieID Movie playing

STOP_MOVIE

— Movie stopped

SPLASH_SCREEN_SHOW

— Show splash screen

SPLASH_SCREEN_HIDE

— Hide splash screen

TUTORIAL_TRIGGER

tutorialID Tutorial triggered

MIRROR_TIMER_START

timer, value, maxValue, scale, paused, label Timer started

MIRROR_TIMER_STOP

timer Timer stopped

MIRROR_TIMER_PAUSE

timer, paused Timer paused

CHROMIE_TIME_OPEN

— Chromie Time UI opened

CHROMIE_TIME_CLOSE

— Chromie Time UI closed

GARRISON_UPDATE

— Garrison data updated

PERKS_ACTIVITIES_TRACKED_UPDATED

— Activity tracking changed

Gotchas & Restrictions

  • Gossip auto-select — selectOptionWhenOnlyOption flag means the game may auto-select; don't assume GOSSIP_SHOW always waits for input.

  • PlayerInteractionManager types — Use Enum.PlayerInteractionType for type-safe checks; don't hardcode integers.

  • Tooltip data API (12.0.0) — Use C_TooltipInfo for programmatic tooltip access rather than scraping GameTooltip text lines.

  • Legacy API availability — Garrison, Covenant, and Azerite APIs still exist but content is no longer current. Some may be removed in future patches.

  • Cinematic blocking — Some cinematics block all addon UI; plan for CINEMATIC_START / CINEMATIC_STOP .

  • Player choices are timed — Some choices have countdowns. Check GetRemainingTime() .

  • SlashCmdList keys — Command names in SlashCmdList must be UPPERCASE. The slash aliases (SLASH_NAME1) are case-insensitive for matching.

  • Chromie Time level cap — Chromie Time is only available to characters below the expansion's level range.

  • Gossip POI — GetPoiForUiMapID() returns quest giver locations on the map, useful for minimap tracking.

  • Report system — Reports require valid player locations; use C_ReportSystem.CanReportPlayer() first.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

wow-lua-api

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

wow-addon-structure

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

wow-api-settings-system

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

wow-api-professions

No summary provided by upstream source.

Repository SourceNeeds Review