# ClassicAPI function inventory A namespace-by-namespace list of every function `brues-code/ClassicAPI` documents in its own `docs/API.md`, fetched 2026-10-05 for `docs/ADDON_COMPAT.md`'s ClassicAPI tracking. This is the checklist for porting it into `crates/benilla-ui/src/script/compat/classic_api.rs` — check items off there as they land; this file is the source list, not the status (status lives in `ADDON_COMPAT.md`, one line per namespace, not per function, so it stays scannable). Re-fetch `docs/API.md` from the upstream repo before resuming this work — this is a point-in-time copy of names and one-line summaries, not argument types or behavior; the upstream file is still the authoritative spec for implementing any one of these. **Already free, no porting needed:** parsing Lua 5.1 *syntax* (not stdlib — see `classic_api.rs`'s own doc comment on the stdlib/`lua50.rs` collision) covers the `Lua` namespace's syntax-level items. `strsplit`/`strjoin`/`strtrim`(as `trim`)/`wipe` already exist as benilla globals for unrelated reasons (TurtleWoW FrameXML compat, see `reference_surface.rs`'s exception list) — the `Lua` namespace entries below for those four are therefore also already satisfied. **Built so far** (per-namespace status, including what each one skipped and why, is `docs/ADDON_COMPAT.md`'s ClassicAPI section — one row per namespace): - `Unit`: `UnitGUID`, `UnitTokenFromGUID`. - `Time`: `C_Timer.After`/`NewTimer`/`NewTicker`. - `Container`: all of `C_Container.*` but `GetContainerItemCharges`/`GetContainerItemRepairCost`/ `GetContainerItemQuestInfo`/`GetContainerItemEquipmentSetInfo`/`IsContainerItemOpenable`, which honestly answer nil/false. - `UnitAuras`: all of `C_UnitAuras.*`; the two `Register*` hooks accept and discard. - `CreatureInfo`: `GetRaceInfo`, `GetFactionInfo`, `GetClassInfo`, `GetCreatureID`. The two race getters read the player's own `ChrRaces.dbc` through a new app→VM feed, not a table frozen into this client — which is what makes OctoWoW's row 10 read **"High Elf"** rather than Blizzard's "Blood Elf" while `clientFileString` stays `"BloodElf"` for the art paths. `GetRaceInfo` must keep answering nil past the last race: pfUI walks until nil and an always-non-nil answer hangs the load. - `State`: `IsSwimming`, `IsMounted`, `IsIndoors`, `IsOutdoors`, `IsFalling`, `GetShapeshiftFormID`, `IsInGroup`, `IsInRaid`. - `Spell`: 15 of ~45 (`DoesSpellExist`, the name/texture/subtext/info getters, `IsSpellPassive`, `IsSpellKnown`, `IsCurrentSpell`, `GetSpellCooldown`, `IsSpellUsable`, `GetSchoolString`, `CanDualWield`, `CastAtCursor`, `CastAtUnit`, `CancelSpellByID`). The five display getters read `Spell.dbc` through the host probe, so they answer for any shipped spell; the predicates read the player's book, which is the right source for them. - `SpellBook`: 5 of ~19 (`FindSpellBookSlotByID`, `GetSpellBookItemInfo`, `GetNumSpellBookSkillLines`, `GetSpellBookSkillLineInfo`, `GetSpellBookItemSkillLineIndex`). - `ColorUtil`: all 8 of `C_ColorUtil.*` (pure maths + the `|c` escape builders). - `ClassColor`: `C_ClassColor.GetClassColor`, over FrameXML's own `RAID_CLASS_COLORS`. - `Expansion`: all 3. - `Input`: 7 of 9 — the six sided modifier getters (each answering the combined bit the engine tracks) and `IsModifierKeyDown`; `IsMouseButtonDown`/`GetMouseButtonClicked` have no honest backing state. - `Lua`: the additive half only — `table.count`, `Mixin`, `CreateFromMixins`, `strreplace`. The `lua50.rs`-nilled 5.1 stdlib stays nilled, and so does `strrev` (`tests/stdlib.rs` pins it), by the deferred decision above. - `Currency`: `C_CurrencyInfo.GetCoinTextureString`, delegating to FrameXML's own. - `Events`: `GetFramesRegisteredForEvent`; `C_EventUtils.IsEventValid` has no valid-event set. - `System`: `GetPhysicalScreenSize` (logical rect, not device pixels); no `CopyToClipboard`. - `Combat`: `InCombatLockdown` (always false, correctly). - `Hooks`: `hooksecurefunc`, both forms — chains, passes the original's returns through, and isolates a hook's error from the call it wrapped. - `Frame` (widget **methods**, not globals): `SetShown`, `GetSize`/`SetSize`, `GetRect`, `SetFormattedText`, `HookScript`, `IsEventRegistered`, `GetEffectiveAlpha`, and the four `*Attribute` verbs as a plain per-frame store. The mask/atlas families, the secure-template drivers and the text-measurement getters are skipped with reasons. - `Quest`: 8 of ~13 `C_QuestLog.*` (the index↔questID mapping, `GetInfo`/`GetQuestLogTitle`, `IsOnQuest`/`IsUnitOnQuest`, `GetNumQuestObjectives`); the four standalone-cache probes and the bare `GetQuestLogLeaderBoardID` have no data behind them. - `Faction`: all 3 bare id-keyed globals + 11 of 12 `C_Reputation.*`; only `GetLastStandingChange` has no record to read. Answers for *listed* factions (no DBC here). - `FriendList`: 8 of 13 `C_FriendList.*`; the notes pair and the two guid-keyed predicates have no backing data. - `Gossip`: all 11 of `C_GossipInfo.*` (selection stays index-keyed — 1.12 sends no option id). - `MerchantFrame`: 3 real of 6 `C_MerchantFrame.*`, the other 3 honest constants (refunds and one-click junk sale are later-era features). - `Mail`: both link getters — which also closes SuperWoW's own pair. - `CVar`: all 8 of `C_CVar.*`. `SetTempCVar`/`RemoveTempCVar` are genuinely non-persisting (`CvarSlot::temp_original` + the snapshot), not just live-for-Lua. - `NamePlate`: all 4 of `C_NamePlate.*`, over the existing plate pool. - `Macro`: `C_Macro.GetMacroIcon`/`CreateMacro`/`EditMacro`. `GetMacroSpell`/`GetMacroItem`/ `StopMacro`/`SetMacroDisplay` and the four `Get*MacroIcons` need directive resolution, macro execution, or icon provenance that does not exist — see `docs/ADDON_COMPAT.md`. - `Action`: `GetActionInfo`. - `Item`: 37 of ~55 `C_Item.*` — the identity/data/getter/predicate families over the one item template cache, with `ItemLocation` accepted as the plain `{bagID,slotIndex}` / `{equipmentSlotIndex}` table. The guid, item-level, item-stat and lock families are skipped with reasons. **`ItemLocation` itself now exists** as a real mixin (`compat/classic_api/item_location.rs`) with `CreateFromBagAndSlot`/`CreateFromEquipmentSlot`/ `CreateEmpty` and the whole `ItemLocationMixin`; the plain table still works, because the mixin hands out exactly that table with methods copied on. `GetItemUniquenessByID` stays out: the fact (`max_count`) is here but upstream's return shape is not, and the two candidate shapes behave differently — `docs/ADDON_COMPAT.md` has the argument. - `Map`: 4 of 27 `C_Map.*` — `GetMapWorldSize`, `GetMapAreaIDs`, `GetMapOverlays`, `GetAreas`. The first three read the world-map catalog the app already pushes, no new feed; `GetMapOverlays` answers **every** shipped overlay row, explored or not, which is what separates it from the stock `GetNumMapOverlays`/`GetMapOverlayInfo` pair. `GetAreas` is the whole `AreaTable.dbc` name column (1,480 rows, where the catalog keeps the ~80 that have a map) and is a feed of its own, `ui_world_map::seed_area_names`; it is what pfQuest's minimap pass resolves the player's zone through, so without it the world map drew pins and the minimap drew none. `GetAreaTriggerInfo` still needs an app→VM feed and is specified in `ADDON_COMPAT.md`; the rest are later-era or app-side. - `PlayerInfo`: `C_PlayerInfo.CanUseItem` alone, the same function value `C_Item.IsUsableItem` answers from so the two cannot disagree. The nine `PlayerLocation`-keyed members have no source here. - **`GetClassInfo`'s class table is a new app→VM feed** of the player's own `ChrClasses.dbc` (`benilla-formats`' `chr_classes.rs` fields 5 and 14 → `benilla-app`'s `ui_chr_classes.rs` → `UiScript::set_class_info`), the same shape the race feed takes and for the same reason. Nil for a gap is load-bearing: 1.12 leaves ids 6 and 10 empty and pfQuest walks `1, 32` straight through them. Worth knowing before touching it: all nine shipped enUS rows satisfy `className:upper() == classFile`, so a reader that derived one from the other is invisible on real data — a test records the coincidence and another uses a renamed fixture to pin the independence. - **Not ClassicAPI, built anyway**: `TableUtil.Execute` (`table_util.rs`). Blizzard's own FrameXML helper, which this install's pfQuest calls at file scope — absent, it aborted `map.lua` and left `pfMap` undefined. - `AddOns`: 9 of 10 `C_AddOns.*`, all delegating to the stock addon globals; `GetAddOnLocalTable` is absent (1.12 passes addon files no arguments, so no such table exists). - `GameTooltip` (widget **methods**): the reader family — `GetItem`, `GetSpell`, `HasItem`, `HasSpell`, `GetUnit`, `HasUnit`, `GetOwner`, `IsEquippedItem` — over new `TooltipState::subject` state recorded at the one item renderer and the one spell renderer. `GetUnitGUID`, the GameObject pair, the `Set*ByID` aliases and the talent/set/totem/compare setters are skipped with reasons. ## Account SaveAccount, DeleteAccount, GetSavedAccounts, LoginWithSavedAccount ## Action GetActionInfo ## AddOns (`C_AddOns`) GetAddOnName, GetAddOnTitle, GetAddOnNotes, IsAddOnLoadable, IsAddOnLoaded, LoadAddOn, GetAddOnSecurity, DoesAddOnExist, GetAddOnOptionalDependencies, GetAddOnLocalTable ## APIDocumentation C_APIDocumentation.GetSystems, C_APIDocumentation.GetSystem, _classicapi_UndocumentedAPI ## AuctionHouse (`C_AuctionHouse`) PostItem ## AuraUtil ForEachAura, FindAura, FindAuraByName, UnpackAuraData ## CharacterList GetSavedCharacterOrder, SetSavedCharacterOrder ## Chat GetCurrentChatGUID ## Class FillLocalizedClassList ## ClassColor (`C_ClassColor`) GetClassColor ## ColorUtil (`C_ColorUtil`) ConvertRGBToHSV, ConvertHSVToRGB, ConvertHSVToHSL, ConvertHSLToHSV, ConvertHSLToRGB, GenerateTextColorCode, WrapTextInColor, WrapTextInColorCode ## Combat InCombatLockdown, StartAttack, StopAttack ## Console ConsoleExec, ConsoleEcho, ConsolePrintAllMatchingCommands, ConsoleIsActive, ConsoleGetColorFromType, ConsoleGetFontHeight, SetConsoleKey, CalculateStringEditDistance, ConsoleGetAllCommands ## Container (`C_Container`) GetContainerItemID, GetContainerItemInfo, HasContainerItem, GetItemCooldown, GetContainerItemDurability, GetContainerItemRepairCost, GetContainerItemCharges, GetContainerNumFreeSlots, GetContainerFreeSlots, GetContainerItemQuestInfo, GetContainerItemEquipmentSetInfo, CalculateTotalNumberOfFreeBagSlots, IsContainerItemOpenable, PlayerHasHearthstone, UseHearthstone, SwapItems, MoveItem, AutoStoreItem, SortBags, SortBankBags, GetSortBagsRightToLeft, SetSortBagsRightToLeft, GetBackpackAutosortDisabled, SetBackpackAutosortDisabled, GetBankAutosortDisabled, SetBankAutosortDisabled ## Creature (`C_CreatureInfo`) GetCreatureID, GetCreatureInfoByID, RequestLoadCreatureByID, GetRaceInfo, GetClassInfo, GetCreatureFamilyInfo, GetCreatureFamilyIDs, GetFactionInfo, GetCreatureTypeInfo, GetCreatureTypeIDs ## Currency GetCoinTextureString (also `C_CurrencyInfo.GetCoinTextureString`) ## CVar (`C_CVar`) GetCVarInfo, DoesCVarExist, AreCVarsLoaded, GetCVarBitfield, SetCVarBitfield, SetTempCVar, RemoveTempCVar, GetCVarBool ## Cursor GetCursorInfo ## EquipmentSet (`C_EquipmentSet`) CanUseEquipmentSets, GetNumEquipmentSets, GetEquipmentSetIDs, GetEquipmentSetID, GetEquipmentSetInfo, GetIgnoredSlots, GetItemIDs, GetItemLocations, CreateEquipmentSet, SaveEquipmentSet, ModifyEquipmentSet, DeleteEquipmentSet, IgnoreSlotForSave, UnignoreSlotForSave, IsSlotIgnoredForSave, ClearIgnoredSlotsForSave, EquipmentSetContainsLockedItems, UseEquipmentSet, PickupEquipmentSet ## Events C_EventUtils.IsEventValid, GetFramesRegisteredForEvent ## Expansion GetClassicExpansionLevel, ClassicExpansionAtLeast, ClassicExpansionAtMost ## Faction GetFactionIDByIndex, GetFactionInfoByID, GetFactionParentID, C_Reputation.GetFactionStandings, C_Reputation.GetWatchedFactionData, C_Reputation.GetFactionDataByID, C_Reputation.GetFactionDataByIndex, C_Reputation.SetSelectedFactionByID, C_Reputation.SetWatchedFactionByID, C_Reputation.ToggleFactionAtWarByID, C_Reputation.IsFactionActive, C_Reputation.IsFactionActiveByID, C_Reputation.SetFactionInactiveByID, C_Reputation.SetFactionActiveByID, C_Reputation.GetLastStandingChange ## Focus FocusUnit, ClearFocus ## Frame region:SetPoint (1-arg form), SetSize, GetSize, IsMouseOver, GetRect, IsDragging, GetMouseFoci, SetShown, GetStringHeight, GetUnboundedStringWidth, GetWrappedWidth, GetNumLines, GetLineHeight, IsTruncated, SetMaxLines, GetMaxLines, SetFormattedText, SetRotation, SetVertexOffset, SetMask, CreateMaskTexture, AddMaskTexture, RemoveMaskTexture, GetNumMaskTextures, GetMaskTexture, SetColorTexture, SetAtlas, GetAtlas, ResetTexCoord, SetSpriteSheetCell, SetDesaturation, GetDesaturation, SetCursorPosition, GetCursorPosition, GetUTF8CursorPosition, ClearHighlightText, HasFocus, HasText, SetHighlightColor, GetHighlightColor, ClearHistory, SetResizeBounds, HookScript, IsEventRegistered, RegisterUnitEvent, GetEffectiveAlpha, SetAttribute, SetAttributeNoHandler, ClearAttribute, GetAttribute, SetModernScriptArgs, GetModernScriptArgs, SecureCmdOptionParse, RegisterStateDriver, UnregisterStateDriver, RegisterAttributeDriver, UnregisterAttributeDriver, RegisterUnitWatch, UnregisterUnitWatch, UnitWatchRegistered, SecureButton_GetAttribute, SecureButton_GetUnit, GetClickFrame ## FriendList (`C_FriendList`) SendWhoQueryByName, IsWhoQueryPending, GetNumWhoResults, GetWhoInfo, IsFriend, IsIgnored, IsIgnoredByGuid, GetNumFriends, GetNumOnlineFriends, GetFriendInfo, GetFriendInfoByIndex, SetFriendNotes, SetFriendNotesByIndex ## GameObject (`C_GameObjectInfo`) GetGameObjectInfoByID, RequestLoadGameObjectByID, ClosestGameObjectPosition ## GameTooltip SetSpellByID, AddSpellByID, SetTalentByID, SetInventoryItemByID, SetHyperlinkCompareItem, IsEquippedItem, SetItemByGUID, SetEquipmentSet, SetTotem, GetItem, GetSpell, HasItem, HasSpell, GetUnit, GetUnitGUID, HasUnit, GetGameObject, HasGameObject, GetOwner ## Glue (`C_Glue`) IsFirstLoadThisSession, IsOnGlueScreen ## Gossip (`C_GossipInfo`) GetText, GetOptions, GetAvailableQuests, GetActiveQuests, GetNumOptions, GetNumAvailableQuests, GetNumActiveQuests, SelectOption, SelectOptionByIndex, SelectAvailableQuest, SelectActiveQuest, CloseGossip ## Hooks hooksecurefunc (both forms) ## Input IsLeftShiftKeyDown, IsRightShiftKeyDown, IsLeftControlKeyDown, IsRightControlKeyDown, IsLeftAltKeyDown, IsRightAltKeyDown, IsModifierKeyDown, IsMouseButtonDown, GetMouseButtonClicked ## Instance GetInstanceInfo ## Item (`C_Item`) DoesItemExist, DoesItemExistByID, EquipItemByName, GetCurrentItemLevel, GetDetailedItemLevelInfo, GetItemCount, GetItemData, GetItemDataByID, GetItemFamily, GetItemGUID, GetItemID, GetItemInfo, GetItemInfoInstant, GetItemInventorySlotInfo, GetItemInventorySlotKey, GetItemInventoryType, GetItemInventoryTypeByID, GetItemLink, GetItemLocation, GetItemMaxStackSize, GetItemMaxStackSizeByID, GetItemName, GetItemNameByID, GetItemQuality, GetItemQualityByID, GetItemSellPrice, GetItemSellPriceByID, GetItemSetID, GetItemSetIDByID, GetItemSetInfo, GetItemSpell, GetItemStatDelta, GetItemStats, GetItemClassInfo, GetItemSubClassInfo, GetItemUniqueness, GetItemUniquenessByID, GetStackCount, GetWeaponEnchantInfo, GetItemTempEnchantInfo, GetEnchantInfo, IsBound, IsConsumableItem, IsEquippableItem, IsUsableItem, IsEquippedItem, IsItemDataCachedByID, IsItemDataCached, IsItemGUIDInInventory, IsItemInRange, IsItemOpenable, IsLocked, LockItem, LockItemByGUID, PickupItem, RequestLoadItemDataByID, RequestLoadItemData, UnlockAllItems, UnlockItem, UseAtCursor, UseAtUnit, UseItemByName, GetAverageItemLevel, GetInventoryItemDurability, GetInventoryItemID, GetInventoryItemRepairCost, GetInventoryItemsForSlot, GetItemIcon, GetItemIconByID, OffhandHasWeapon ## Loot (`C_Loot`) GetNearbyLootableUnits, LootUnit, LootUnitItem, ScanNearbyLoot, LootAllCorpses, IsScanInProgress, GetLastScanResults ## LootHistory (`C_LootHistory`) GetNumItems, GetItem, GetPlayerInfo ## LossOfControl (`C_LossOfControl`) GetActiveLossOfControlDataCount, GetActiveLossOfControlData, GetSchoolLockout ## Lua select, unpack, xpcall, collectgarbage, table.wipe, table.count, table.maxn, Mixin, CreateFromMixins, strsplit, strjoin, strtrim, strreplace, string.reverse, strrev, math.fmod, math.modf, coroutine.create, coroutine.resume, coroutine.yield, coroutine.status, coroutine.wrap, coroutine.running ## Macros CastSpellNoToggle (macro line), StopMacro, GetMacroSpell, GetMacroItem, GetMacroIcons, GetMacroItemIcons, GetLooseMacroIcons, GetLooseMacroItemIcons, C_Macro.CreateMacro, C_Macro.EditMacro, C_Macro.GetMacroIcon, C_Macro.SetMacroDisplay ## Mail GetSendMailItemLink, GetInboxItemLink ## Map (`C_Map`) CanSetUserWaypointOnMap, GetAreaInfo, GetAreas, GetAreaTriggerInfo, GetAreaTriggers, GetBestMapForUnit, GetFallbackWorldMapID, GetMapAreaIDs, GetMapArtLayers, GetMapArtLayerTextures, GetMapChildrenInfo, GetMapInfo, GetMapInfoAtPosition, GetMapOverlays, GetMapPosFromWorldPos, GetMapRectOnMap, GetMapWorldSize, GetPlayerMapPosition, GetUserWaypoint, HasUserWaypoint, ClearUserWaypoint, GetUserWaypointHyperlink, GetUserWaypointFromHyperlink, GetUserWaypointPositionForMap, GetWorldPosFromMapPos, MapHasArt, SetUserWaypoint ## MapExplorationInfo (`C_MapExplorationInfo`) GetExploredMapTextures, GetUnexploredMapTextures ## MerchantFrame (`C_MerchantFrame`) GetItemInfo, GetBuybackItemID, GetNumJunkItems, SellAllJunkItems, IsMerchantItemRefundable, IsSellAllJunkEnabled ## Model model:SetDisplayInfo, model:SetCreature ## ChatBubbles (`C_ChatBubbles`) GetAllChatBubbles ## NamePlate (`C_NamePlate`) GetNamePlates, GetNamePlateGUIDs, GetNamePlateForUnit, GetNamePlateForGUID ## NameCache GetPlayerInfoByGUID, UnitNameFromGUID, C_PlayerCache.GetPlayerInfoByName, C_PlayerCache.RememberPlayer, C_PlayerCache.SetEnabled, C_PlayerCache.IsEnabled, C_PlayerCache.SetScanEnabled, C_PlayerCache.IsScanEnabled ## NewItems (`C_NewItems`) IsNewItem, RemoveNewItem, ClearAll ## PlayerInfo (`C_PlayerInfo`) CanUseItem, GUIDIsPlayer, GUIDIsCreature, GUIDIsPet, GUIDIsGameObject, GetName, GetClass, GetRace, GetSex, IsConnected ## Quest (`C_QuestLog`) GetInfo, GetQuestLogTitle, GetQuestIDForLogIndex, GetLogIndexForQuestID, GetHeaderIndexForQuest, RequestLoadQuestByID, IsOnQuest, IsUnitOnQuest, GetTitleForQuestID, GetQuestDetails, GetNumQuestObjectives, IsQuestDataCachedByID, GetQuestLogLeaderBoardID ## Sound PlaySound (both forms), C_Sound.PlaySound, C_Sound.PlaySoundWithOptions, C_Sound.GetSoundScaledVolume, C_Sound.IsPlaying, C_Sound.PlayItemSound, C_Sound.PlayVocalErrorSound, MuteSoundFile, UnmuteSoundFile, C_Sound.GetRecentSoundFiles ## Spell (`C_Spell`, plus several bare globals) DoesSpellExist, GetSchoolString, GetSpellInfo (both forms), GetSpellName, GetSpellTexture, GetSpellLink (both forms), GetSpellDescription, GetSpellMechanicByID, GetSpellEffectInfo, GetSpellEffectMechanics, GetSpellDispelType, GetSpellRadius (both forms), GetSpellPowerCost, GetSpellReagents, GetSpellCastCount, GetSpellSubtext, IsPassiveSpell (both forms), IsSpellPassive, IsPlayerSpell, CanDualWield, IsSpellKnown, GetSpellBonusDamage, GetSpellBonusHealing, IsUsableSpell (both forms), IsSpellUsable, GetSpellCooldown, GetSpellLossOfControlCooldown, IsCurrentSpell, IsSelfBuff, SpellHasRange (both forms), IsSpellInRange, IsAutoAttackSpell, IsRangedAutoAttackSpell, IsNextMeleeSpell, ResetsMeleeSwing, IsHarmfulSpell, IsHelpfulSpell, IsSpellHarmful, IsSpellHelpful, GetSpellSchool, CastSpellNoToggle, CastAtCursor, CastAtUnit, CancelSpellByID, CancelSpellByName, UnitCastingInfo, CastingInfo, UnitChannelInfo, ChannelInfo, GetSpellLevelInfo, GetSpellRequiredTargetLevel ## SpellBook (`C_SpellBook`) FindSpellBookSlotByID, GetSpellBookItemInfo, GetNumSpellBookSkillLines, GetSpellBookSkillLineInfo, GetSpellBookItemSkillLineIndex, GetSkillLineIndexByID, GetSpellBookItemCastCount, GetSpellBookItemLossOfControlCooldownInfo, GetSpellBookItemLossOfControlCooldownDuration, IsClassTalentSpellBookItem, ContainsAnyDisenchantSpell, GetSpellLevelLearned, GetCurrentLevelSpells, GetPlayerSpellsByAura, GetSkillLineName, GetSkillLineRank, GetSpellSkillLine, IsAutoAttackSpellBookItem, IsRangedAutoAttackSpellBookItem ## State IsMounted, Dismount, IsStealthed, IsFalling, IsSwimming, IsIndoors, IsOutdoors, IsAssistingRitual, IsInGroup, IsInRaid, GetMirrorTimerInfo, GetMirrorTimerProgress, GetShapeshiftFormID, CancelShapeshiftForm, GetSheathState ## SwingTimer (`C_SwingTimer`) EnableRangeCheck, IsTargetWithinSwingRange ## System GetPhysicalScreenSize, CopyToClipboard ## Talent GetTalentSpellID, GetTalentIDByIndex ## Targeting GetPlayerFacing, TargetDirectionEnemy, TargetDirectionFriend, TargetNearest, TargetNearestEnemyPlayer, TargetNearestFriendPlayer ## TaxiMap (`C_TaxiMap`) GetTaxiNodesForMap, GetAllTaxiNodes, GetTaxiPaths, GetTaxiPathWaypoints, GetTaxiRoute ## Texture (`C_Texture`) GetAtlasInfo, GetAtlasExists, GetAtlasID, GetAtlasElementID, GetAtlasElements, RegisterAtlas ## Time GetServerTime, GetTimeCached, C_Timer.After, C_Timer.NewTimer, C_Timer.NewTicker, C_DateAndTime.GetCurrentCalendarTime, C_DateAndTime.GetCalendarTimeFromEpoch, C_DateAndTime.AdjustTimeByDays, C_DateAndTime.AdjustTimeByMinutes, C_DateAndTime.CompareCalendarTime, C_DateAndTime.GetServerTimeLocal, C_DateAndTime.GetSecondsUntilDailyReset ## Totem GetTotemInfo, GetTotemTimeLeft, GetTotemDuration, TargetTotem ## Tracking GetNumTrackingTypes, GetTrackingInfo, SetTracking ## TradeSkillUI (`C_TradeSkillUI`) GetTradeSkillListLink, GetCraftListLink, GetTradeSkillListRecipes ## UIColor (`C_UIColor`) GetColors ## Unit UnitGUID (done), UnitTokenFromGUID (done), UnitTokenFromName, UnitSubName, UnitCreatureFamilyID, UnitCreatureTypeID, UnitCreatureID, GetUnitSpeed, UnitClassBase, UnitRaceBase, UnitIsAFK, UnitIsDND, UnitIsFeignDeath, UnitIsInMyGuild, UnitIsPossessed, UnitIsMinion, UnitIsPet, UnitIsOtherPlayersPet, UnitOwnerGUID, UnitCreatedBySpell, UnitStandState, UnitInRange, UnitDistanceSquared, UnitPosition, UnitInLineOfSight, ClosestUnitPosition, UnitHealthMissing, UnitPower, UnitPowerMax, UnitPowerMissing, UnitPowerType, UnitSpellHaste, UnitSpellTargetName ## UnitAuras (`C_UnitAuras`) GetAuraDataByIndex, GetBuffDataByIndex, GetDebuffDataByIndex, UnitAura, UnitBuff, UnitDebuff, GetAuraSlots, GetAuraDataBySlot, UnitAuraBySlot, GetUnitAuraBySpellID, GetPlayerAuraBySpellID, GetAuraDataBySpellName, RegisterComboDuration, RegisterAuraDurationModifierByTrigger, GetUnitAuras, GetAuraDispelTypeColor ## VoiceChat (`C_VoiceChat`) GetTtsVoices, GetRemoteTtsVoices, SpeakText, StopSpeakingText ## XMLUtil (`C_XMLUtil`) GetTemplates, GetTemplateInfo, DoesTemplateExist