Maintenance for the week of December 23:
· [COMPLETE] NA megaservers for maintenance – December 23, 4:00AM EST (9:00 UTC) - 9:00AM EST (14:00 UTC)
· [COMPLETE] EU megaservers for maintenance – December 23, 9:00 UTC (4:00AM EST) - 14:00 UTC (9:00AM EST)

Update 11 API Patch Notes & Change Log (PTS)

ZOS_JessicaFolsom
ZOS_JessicaFolsom
Community Manager
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.
Jessica Folsom
Associate Director of Community - ZeniMax Online Studios
Facebook | Twitter | Twitch | Tumblr | Instagram | YouTube | Support
Staff Post
  • lonewolf26
    lonewolf26
    ✭✭✭✭✭
    I didn't see anything specific here, but is there a method to detect a name change for a character such that it could be used to migrate add-on settings? I attempted a name change and when I logged in I noticed a number of my add-ons reverted to default settings. It would be nice to be able to migrate the settings of the add-ons affected without popping open all of the saved variable files and editing them manually.
  • Docmandu
    Docmandu
    ✭✭✭✭✭
    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.

    Awesome.. hopefully this will allow addons to fix the "less than ideal" new health bars (with all their scaling and screen filling issues), instead of people having to wait for ZOS to maybe allow the old bars to be selectable again (which probably will never happen)
  • hagg3n
    hagg3n
    Soul Shriven
    lonewolf26 wrote: »
    I didn't see anything specific here, but is there a method to detect a name change for a character such that it could be used to migrate add-on settings? I attempted a name change and when I logged in I noticed a number of my add-ons reverted to default settings. It would be nice to be able to migrate the settings of the add-ons affected without popping open all of the saved variable files and editing them manually.

    I guess now would be the time to provide a CharacterID of some sort, because tracking by name will be officially broken.
  • Alexium
    Alexium
    ✭✭✭
    ZOS, thanks you for Cyrillic characters! It is better than nothing and it is cool! We can chat with our friends in groups and guilds using our languages now. I have a one question after all. May I report some font related issues or it is busyness for unofficial localizations only? May you make place between letters lesser? It's look like t h i s w o r d s n o w
  • Kyoma
    Kyoma
    ✭✭✭
    ESO UI API Patch Notes (Version 100016)
    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.
    Does this enable us to create UI elements that indicate a location in the world (within a certain range probably) and the client would handle where it is on the screen? Taking into account the players position, heading and camera angle and such.

    Oh and will we see this in the final Update 11 or is this more about internal changes as preparation for release with Update 12?
    Edited by Kyoma on July 13, 2016 5:40PM
    Will I be able to forget all the wounds that pierce my flesh?
    You and your childish justice. I'll rip it to pieces.
    Come on, it's showtime. A rain of blood like a volcano
    And now I'll blow all of you and you and you...
    All to tiny pieces. All to tiny pieces.
  • Woeler
    Woeler
    ✭✭✭✭✭
    ✭✭✭✭
    lonewolf26 wrote: »
    I didn't see anything specific here, but is there a method to detect a name change for a character such that it could be used to migrate add-on settings? I attempted a name change and when I logged in I noticed a number of my add-ons reverted to default settings. It would be nice to be able to migrate the settings of the add-ons affected without popping open all of the saved variable files and editing them manually.

    Please see if this is possible.
  • Ayantir
    Ayantir
    ✭✭✭✭
    Obsessive Compulsive Elder Scrolls addons Coder
    A Few millions downloads of ESO addons now.
    Master crafter on my main char since release. All tradeskills, recipes \o/, researchs (since long), 35 styles known
    My little french Guild: Cercle de l'Eveil
Sign In or Register to comment.