ESO UI API Patch Notes (Version 100016)
These patch notes highlight the larger changes to the ESO API. For the full, updated API take a look at the newest version of the ESO UI documentation.
Collectibles
A number of new collectible categories have been added:
- COLLECTIBLE_CATEGORY_TYPE_BODY_MARKING
- COLLECTIBLE_CATEGORY_TYPE_FACIAL_ACCESSORY
- COLLECTIBLE_CATEGORY_TYPE_FACIAL_HAIR_HORNS
- COLLECTIBLE_CATEGORY_TYPE_HAIR
- COLLECTIBLE_CATEGORY_TYPE_HEAD_MARKING
- COLLECTIBLE_CATEGORY_TYPE_PIERCING_JEWELRY
Collectibles are now sometimes restricted to specific races, alliances, or genders:
- COLLECTIBLE_RESTRICTION_TYPE_ALLIANCE
- COLLECTIBLE_RESTRICTION_TYPE_GENDER
- COLLECTIBLE_RESTRICTION_TYPE_RACE
- GetCollectibleRestrictionsByType(collectibleId, COLLECTIBLE_RESTRICTION_TYPE) – hasRestrictions, passesRestrictions, allowedNamesString.
The functions for detecting if a collectible is blocked from usage were changed to take a collectibleId instead of a COLLECTIBLE_CATEGORY_TYPE to account for the new restrictions:
- IsCollectibleBlocked(collectibleId) – isBlocked.
- GetCollectibleBlockReason(collectibleId) – COLLECTIBLE_USAGE_BLOCK_REASON.
We added a couple new visual slots to provide visibility info on the new collectibles:
- VISUAL_SLOT_HEAD_ADORNMENTS
- VISUAL_SLOT_HELM
- VISUAL_SLOT_SKIN
The collectible new status is now tracked in the client instead of Lua using:
- IsCollectibleNew(collectibleId) – isNew.
- ClearCollectibleNewStatus(collectibleId).
- EVENT_COLLECTIBLE_NEW_STATUS_CLEARED.
There is also an API for determining which emotes are overriden by a personality:
- GetCollectiblePersonalityOverridenEmoteDisplayNames(collectibleId) – displayNames…
- GetCollectiblePersonalityOverridenEmoteSlashCommandNames(collectibleId) – sldhCommandNames…
Bind on Pickup Item Trading
An API has been added for the new BoP item trading system:
- IsDisplayNameInItemBoPAccountTable(bagId, slotIndex, displayName) – isInTable.
- IsItemBoPAndTradeable(bagId, slotIndex) – isBoPAndTradeable.
- GetItemBoPTimeRemainingSeconds(bagId, slotIndex) – timeRemainingS.
- GetItemBoPTradeableDisplayNamesString(bagId, slotIndex) – namesString.
- All eligible player names in a list.
Dyeing
The Dye API has been overhauled to support costume dyes. The Dye UI can now operate in equipment or collectible mode, but not both at once.
- DYE_MODE_COLLECTIBLE
- DYE_MODE_EQUIPMENT
- DYE_MODE_NONE
Dyes now target a DYEABLE_SLOT instead of an equipment slot to broaden their applications:
- DYEABLE_SLOT_BACKUP_OFF
- DYEABLE_SLOT_CHEST
- DYEABLE_SLOT_COSTUME
- DYEABLE_SLOT_FEET
- DYEABLE_SLOT_HAND
- DYEABLE_SLOT_HAT
- DYEABLE_SLOT_HEAD
- DYEABLE_SLOT_LEGS
- DYEABLE_SLOT_NONE
- DYEABLE_SLOT_OFF_HAND
- DYEABLE_SLOT_SHOULDERS
- DYEABLE_SLOT_WAIST
New Dying API
- InitializePendingDyes(DYE_MODE)
- Sets the dyeing system into the selected mode. Initializes slots to existing dyes.
- SetPendingSlotDyes(DYEABLE_SLOT, primaryDyeDefId, secondaryDyeDefId, accentDyeDefId).
- GetPendingSlotDyes(DYEABLE_SLOT) – primaryDyeDefId, secondaryDyeDefId, accentDyeDefId.
- GetNumDyes() – numDyes.
- GetDyeInfo(dyeIndex) - dyeName, known, rarity, DYE_HUE_CATEGORY, achievementId, r, g, b, sortKey, dyeDefId.
- GetDyeDefInfoById(dyeDefId) - dyeName, known, rarity, DYE_HUE_CATEGORY, achievementId, r, g, b, sortKey, dyeDefId.
- GetDyeDefColorsById(dyeDefId) - r, g, b.
- GetCurrentItemDyes(bagId, slotIndex) - primaryDyeIndex, secondaryDyeIndex, accentDyeIndex.
- GetCurrentCollectibleDyes(collectibleId) - primaryDyeIndex, secondaryDyeIndex, accentDyeIndex.
- ApplyPendingDyes()
- GetNumSavedDyeSets() – numSavedDyeSets.
- GetSavedDyeSetDyes(dyeSetIndex) - primaryDyeDefId, secondaryDyeDefId, accentDyeDefId.
- SetSavedDyeSetDyes(dyeSetIndex, primaryDyeDefId, secondaryDyeDefId, accentDyeDefId)
- CanUseCollectibleDyeing() – collectibleDyeingAllowed.
- IsDyeableSlotDyeable(DYEABLE_SLOT) – isDyeable.
- IsDyeableSlotBound(DYEABLE_SLOT) – isBound.
- AreDyeableSlotDyeChannelsDyeable(DYEABLE_SLOT) - primary, secondary, accent.
- GetDyeableSlotDyeData(DYEABLE_SLOT) – dyeData (the three channels composited into one a unsigned int).
- GetDyeableSlotId(DYEABLE_SLOT) – id.
- GetDyeableSlotIcon(DYEABLE_SLOT) – textureName.
- GetDyeableSlotCurrentDyes(DYEABLE_SLOT) - primaryDyeDefId, secondaryDyeDefId, accentDyeDefId.
- IsDyeIndexKnown(dyeIndex) – isKnown.
- CanPlayerUseCostumeDyeStamp(dyeStampDefId) – DYE_STAMP_USE_RESULT.
- CanPlayerUseItemDyeStamp(dyeStampDefId) - DYE_STAMP_USE_RESULT.
- SetupDyeStampPreview(bagId, slotIndex).
- GetNumDyeableEquipSlots() – numDyeableEquipSlots.
- GetNumDyeableCollectibleCategories() – numDyeableCollectibleCategories.
- GetDyeableEquipSlot(dyeableEquipSlotIndex) - DYEABLE_SLOT.
- GetDyeableCollectibleCategory(dyeableCollectibleCategoryIndex) - DYEABLE_SLOT.
- GetDyeableEquipSlotGamepadOrder(dyeableEquipSlotIndex) – gamepadOrder.
- GetDyeableCollectibleCategoryGamepadOrder(dyeableCollectibleCategoryIndex) – gamepadOrder.
- GetEquipSlotFromDyeableSlot(DYEABLE_SLOT) – EQUIP_SLOT.
- GetCollectibleCategoryFromDyeableSlot(DYEABLE_SLOT) – COLLECTIBLE_CATEGORY_TYPE.
The dye stamp item type has been also added. It applies its primary, secondary, and tertiary colors to either all of your worn armor, or to your costume and hat.
Added new item link functions for dyes:
- GetItemLinkDyeDefIds(itemLink) – primaryId, secondaryId, accentId.
- GetItemLinkDyeStampDefId(itemLink) – dyeStampDefId.
3D Textures
An early API for placing GUI textures in 3D space has been added. The form of this API is likely to change a lot before it is officially launched in the following update. The textures still render in the GUI layer, but it allows for 3D visual effects to be created.
Custom Localization
The internal ingame GUI now loads the $(language)_client.str file, but only processes the font directives. We have also added the Cyrillic alphabet to the game’s allowed character set (in addition to Japanese).
Miscellaneous
- Removed the useMin parameter from GetCriticalStrikeChance() as it was defunct.
- EVENT_CHAT_MESSAGE_CHANNEL now also passes the displayName of the person that sent the message.