wow-api-housing

Housing 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-housing" with this command: npx skills add jburlison/wowaddonapiagents/jburlison-wowaddonapiagents-wow-api-housing

Housing API (Retail — Patch 12.0.0)

Comprehensive reference for the player housing system, brand new in Patch 12.0.0.

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. This entire system is new in 12.0.0.

Scope

  • HousingUI — Core housing system frame and state

  • C_HouseEditorUI — Placement and editing (position, rotate, scale)

  • C_HousingCatalog — Decoration catalog browsing

  • HousingBasicModeUI — Simplified placement mode

  • HousingCleanupModeUI — Bulk cleanup/removal mode

  • HousingCustomizeModeUI — Customization mode

  • HousingDecorUI — Decoration management

  • HousingExpertModeUI — Advanced/expert placement

  • C_HouseExteriorUI — Exterior appearance customization

  • HousingLayoutUI — Layout save/load

  • C_HousingNeighborhood — Neighborhoods and visiting

  • C_NeighborhoodInitiative — Community initiative goals

  • CatalogShop — Housing shop/catalog purchase system

HousingUI — Core Housing System

Function Returns Description

HousingUI.IsHousingModeActive()

isActive

Is housing editing active?

HousingUI.EnterHousingMode()

— Enter housing edit mode

HousingUI.ExitHousingMode()

— Exit housing edit mode

HousingUI.GetCurrentHouseInfo()

houseInfo

Current house data

HousingUI.GetHouseOwner()

ownerInfo

House owner info

HousingUI.IsPlayerInOwnHouse()

isOwn

In own house?

HousingUI.IsPlayerInHouse()

inHouse

In any house?

HousingUI.GetHousingPlotInfo()

plotInfo

Plot/lot info

C_HouseEditorUI — Placement & Editing

The editor is the core system for placing, moving, rotating, and scaling decorations.

Object Selection & Manipulation

Function Returns Description

C_HouseEditorUI.SelectObject(objectID)

— Select decoration

C_HouseEditorUI.DeselectObject()

— Deselect current

C_HouseEditorUI.GetSelectedObject()

objectInfo

Current selection

C_HouseEditorUI.DeleteSelectedObject()

— Delete selection

C_HouseEditorUI.MoveObject(objectID, x, y, z)

— Move decoration

C_HouseEditorUI.RotateObject(objectID, yaw, pitch, roll)

— Rotate decoration

C_HouseEditorUI.ScaleObject(objectID, scale)

— Scale decoration

C_HouseEditorUI.GetObjectPosition(objectID)

x, y, z

Object position

C_HouseEditorUI.GetObjectRotation(objectID)

yaw, pitch, roll

Object rotation

C_HouseEditorUI.GetObjectScale(objectID)

scale

Object scale

Placement

Function Returns Description

C_HouseEditorUI.PlaceObject(catalogItemID)

— Start placing item

C_HouseEditorUI.ConfirmPlacement()

— Confirm current placement

C_HouseEditorUI.CancelPlacement()

— Cancel placement

C_HouseEditorUI.IsPlacing()

isPlacing

In placement mode?

C_HouseEditorUI.GetPlacedObjects()

objects

All placed objects

C_HouseEditorUI.GetPlacementLimits()

current, max

Decoration limits

Undo/Redo

Function Returns Description

C_HouseEditorUI.Undo()

— Undo last action

C_HouseEditorUI.Redo()

— Redo last undo

C_HouseEditorUI.CanUndo()

canUndo

Has undo?

C_HouseEditorUI.CanRedo()

canRedo

Has redo?

C_HousingCatalog — Decoration Catalog

Function Returns Description

C_HousingCatalog.GetCategories()

categories

All categories

C_HousingCatalog.GetCategoryInfo(categoryID)

categoryInfo

Category details

C_HousingCatalog.GetItemsInCategory(categoryID)

items

Items in category

C_HousingCatalog.GetItemInfo(catalogItemID)

itemInfo

Catalog item info

C_HousingCatalog.GetOwnedItems()

ownedItems

Player's owned items

C_HousingCatalog.IsItemOwned(catalogItemID)

isOwned

Player owns item?

C_HousingCatalog.GetItemCount(catalogItemID)

count

How many owned

C_HousingCatalog.SearchCatalog(searchText)

results

Search items

C_HousingCatalog.GetFilteredItems(filters)

items

Filter items

HousingBasicModeUI — Simplified Mode

Function Returns Description

HousingBasicModeUI.EnterBasicMode()

— Enter basic edit mode

HousingBasicModeUI.ExitBasicMode()

— Exit basic mode

HousingBasicModeUI.IsInBasicMode()

isBasic

In basic mode?

HousingCleanupModeUI — Cleanup Mode

Function Returns Description

HousingCleanupModeUI.EnterCleanupMode()

— Enter cleanup mode

HousingCleanupModeUI.ExitCleanupMode()

— Exit cleanup mode

HousingCleanupModeUI.SelectForCleanup(objectID)

— Tag for cleanup

HousingCleanupModeUI.ConfirmCleanup()

— Execute cleanup

HousingCleanupModeUI.GetCleanupCount()

count

Items tagged

HousingCustomizeModeUI — Customization

Function Returns Description

HousingCustomizeModeUI.EnterCustomizeMode()

— Enter customize mode

HousingCustomizeModeUI.ExitCustomizeMode()

— Exit customize mode

HousingCustomizeModeUI.GetCustomizationOptions(objectID)

options

Object options

HousingCustomizeModeUI.ApplyCustomization(objectID, optionID)

— Apply option

HousingDecorUI — Decoration Management

Function Returns Description

HousingDecorUI.GetDecorInventory()

inventory

Stored decorations

HousingDecorUI.GetDecorInfo(decorID)

decorInfo

Decoration details

HousingDecorUI.StoreDecoration(objectID)

— Store placed item

HousingDecorUI.GetDecorCategories()

categories

Inventory categories

HousingExpertModeUI — Expert Placement

Function Returns Description

HousingExpertModeUI.EnterExpertMode()

— Enter expert mode

HousingExpertModeUI.ExitExpertMode()

— Exit expert mode

HousingExpertModeUI.IsInExpertMode()

isExpert

In expert mode?

HousingExpertModeUI.SetSnapping(enabled)

— Toggle grid snap

HousingExpertModeUI.GetSnapping()

enabled

Snap enabled?

HousingExpertModeUI.SetPrecisionMode(enabled)

— Toggle precision

HousingExpertModeUI.GetPrecisionMode()

enabled

Precision on?

C_HouseExteriorUI — Exterior Customization

Function Returns Description

C_HouseExteriorUI.GetExteriorOptions()

options

Available exteriors

C_HouseExteriorUI.GetCurrentExterior()

exteriorInfo

Current exterior

C_HouseExteriorUI.SetExterior(exteriorID)

— Change exterior

C_HouseExteriorUI.PreviewExterior(exteriorID)

— Preview exterior

C_HouseExteriorUI.GetExteriorCategories()

categories

Exterior categories

HousingLayoutUI — Layout Save/Load

Function Returns Description

HousingLayoutUI.GetSavedLayouts()

layouts

Saved layouts

HousingLayoutUI.SaveLayout(name)

— Save current layout

HousingLayoutUI.LoadLayout(layoutID)

— Load layout

HousingLayoutUI.DeleteLayout(layoutID)

— Delete layout

HousingLayoutUI.RenameLayout(layoutID, name)

— Rename layout

HousingLayoutUI.GetLayoutInfo(layoutID)

layoutInfo

Layout details

C_HousingNeighborhood — Neighborhoods

Function Returns Description

C_HousingNeighborhood.GetNeighborhoodInfo()

neighborhoodInfo

Current neighborhood

C_HousingNeighborhood.GetNeighbors()

neighbors

Neighbor list

C_HousingNeighborhood.GetNeighborInfo(neighborID)

neighborInfo

Neighbor details

C_HousingNeighborhood.VisitNeighbor(neighborID)

— Visit a neighbor

C_HousingNeighborhood.GetVisitableHouses()

houses

Visitable houses

C_HousingNeighborhood.InviteToNeighborhood(playerName)

— Invite player

C_HousingNeighborhood.LeaveNeighborhood()

— Leave neighborhood

C_HousingNeighborhood.GetNeighborhoodMembers()

members

All members

C_NeighborhoodInitiative — Community Goals

Function Returns Description

C_NeighborhoodInitiative.GetCurrentInitiative()

initiativeInfo

Active initiative

C_NeighborhoodInitiative.GetInitiativeProgress()

progress

Current progress

C_NeighborhoodInitiative.GetInitiativeRewards()

rewards

Initiative rewards

C_NeighborhoodInitiative.GetPlayerContribution()

contribution

Player's contribution

C_NeighborhoodInitiative.GetInitiativeHistory()

history

Past initiatives

CatalogShop — Housing Store

Function Returns Description

CatalogShop.GetShopCategories()

categories

Shop categories

CatalogShop.GetShopItems(categoryID)

items

Items for sale

CatalogShop.GetShopItemInfo(shopItemID)

itemInfo

Item details

CatalogShop.PurchaseItem(shopItemID)

— Purchase item

CatalogShop.CanPurchase(shopItemID)

canBuy, reason

Can purchase?

CatalogShop.GetBundleInfo(bundleID)

bundleInfo

Bundle details

Common Patterns

Check If Player Is Home

local function CheckHousingState() if HousingUI.IsPlayerInOwnHouse() then print("Welcome home!") local houseInfo = HousingUI.GetCurrentHouseInfo() if houseInfo then print("House:", houseInfo.name) end elseif HousingUI.IsPlayerInHouse() then local owner = HousingUI.GetHouseOwner() if owner then print("Visiting", owner.name, "'s house") end end end

Place a Decoration

-- Enter housing edit mode and place an item local function PlaceDecoration(catalogItemID) if not HousingUI.IsHousingModeActive() then HousingUI.EnterHousingMode() end

local current, max = C_HouseEditorUI.GetPlacementLimits()
if current >= max then
    print("Decoration limit reached:", current, "/", max)
    return
end

C_HouseEditorUI.PlaceObject(catalogItemID)

end

Browse Catalog

local function BrowseCatalog() local categories = C_HousingCatalog.GetCategories() for _, cat in ipairs(categories) do local catInfo = C_HousingCatalog.GetCategoryInfo(cat) if catInfo then print("Category:", catInfo.name) local items = C_HousingCatalog.GetItemsInCategory(cat) for _, item in ipairs(items) do local info = C_HousingCatalog.GetItemInfo(item) if info then local owned = C_HousingCatalog.IsItemOwned(item) print(" -", info.name, owned and "(Owned)" or "") end end end end end

Save and Load Layouts

-- Save current decoration layout HousingLayoutUI.SaveLayout("My Living Room v2")

-- List saved layouts local layouts = HousingLayoutUI.GetSavedLayouts() for _, layout in ipairs(layouts) do local info = HousingLayoutUI.GetLayoutInfo(layout) if info then print(info.name, "-", info.objectCount, "objects") end end

Key Events

Event Payload Description

HOUSING_MODE_ENTERED

— Entered housing edit mode

HOUSING_MODE_EXITED

— Exited housing edit mode

HOUSING_OBJECT_PLACED

objectID Decoration placed

HOUSING_OBJECT_REMOVED

objectID Decoration removed

HOUSING_OBJECT_MOVED

objectID Decoration moved

HOUSING_OBJECT_SELECTED

objectID Object selected

HOUSING_OBJECT_DESELECTED

— Object deselected

HOUSING_PLACEMENT_STARTED

catalogItemID Placement mode started

HOUSING_PLACEMENT_CONFIRMED

objectID Placement confirmed

HOUSING_PLACEMENT_CANCELED

— Placement canceled

HOUSING_CATALOG_UPDATED

— Catalog data changed

HOUSING_LAYOUT_SAVED

layoutID Layout saved

HOUSING_LAYOUT_LOADED

layoutID Layout loaded

HOUSING_EXTERIOR_CHANGED

exteriorID Exterior changed

HOUSING_LIMIT_UPDATED

current, max Limit changed

HOUSING_ENTERED_HOUSE

houseInfo Entered a house

HOUSING_LEFT_HOUSE

— Left a house

NEIGHBORHOOD_INITIATIVE_UPDATE

— Initiative progress changed

NEIGHBORHOOD_MEMBER_JOINED

memberInfo New neighbor

Gotchas & Restrictions

  • 12.0.0 only — The entire housing system is new in Patch 12.0.0. APIs may evolve in subsequent patches.

  • Mode requirements — Must call HousingUI.EnterHousingMode() before using editor functions.

  • Placement limits — Each house has a decoration cap. Check with GetPlacementLimits() .

  • Expert vs Basic mode — Expert mode allows full 3D positioning; basic mode uses simplified snapping.

  • Own house only for editing — Cannot edit decorations in someone else's house.

  • Layout compatibility — Layouts may not load correctly if decorations have been removed from the game.

  • Neighborhood initiatives — Shared community goals; progress is collective, not individual.

  • Hardware events — Purchasing catalog items requires user interaction (hardware clicks).

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