Update 6 API Patch Notes & Change Log (LIVE)

ZOS_JessicaFolsom
ZOS_JessicaFolsom
Community Manager
ESO UI API Patch Notes (Version 100011)
These patch notes highlight the larger changes to the ESO API for Update 6, which is currently on the live megaservers. For the fully updated API, please take a look at the newest version of the ESO UI documentation.

Constants in XML
Numerical attributes in XML can now be populated using Lua globals.
For example:
TEXTURE_SIZE = 100
<Texture name=”TextureTemplate1” virtual=”true”>
<Dimensions x=” TEXTURE_SIZE” y=” TEXTURE_SIZE”/>
</Texture>
You may also use a negative sign to invert constants.

ApplyTemplateToControl
Templates can now be applied to existing controls using the ApplyTemplateToControl function. Calling this function will set the properties of the control (and its children if the template specifies children) to the template’s values. This can be used for switching the look of a single control chain without having to call a long list of Lua functions to do so.
For example:
ApplyTemplateToControl(textureControl1, “TextureTemplate1”)

Override
A new attribute has been added to the GUI XML named “override.” It allows you to override attributes of inherited children by declaring the child controls again, setting override to true, and setting attributes. This allows for customization of virtual templates without having to use Lua to make changes to the children.
For example:
<Control name=”VirtualFrame” virtual=”true”>
<Controls>
<Texture name=”$(parent)Icon” textureFile=”test.dds” blendMode=”ADD”>
<Dimensions x =”32” y=”32”/>
</Texture>
</Controls>
</Control>
<Control name=”Frame” inherits=”VirtualFrame”>
<Controls>
<Texture name=”$(parent)Icon” override=”true” blendMode=”COLOR_DODGE”/>
</Control>
</Control>
If override is not set to true, the above will generate a duplicate control error for the icon texture.

GUI Canvas
The minimum GUI Canvas is now 1920 x 1080. This is a slightly wider aspect ratio than the previous 1680 x 1050.

SetShouldRenderWorld
Added a new function that lets you disable world rendering. Useful for full screen UIs with intensive processing.

Secure Render Mode
While the Crown Store is showing, only secure controls will render and receive input. A control is secure if it was created by the stock ESO UI and has not been modified by add-on code in a way that creates a security violation. The only current security violation is calling SetText from insecure code. A security violation is cleared when secure code executes the function that created the violation. For example, calling SetText on a tutorial that is shown for the Crown Store will cause it to not render the tutorial text until it is set from secure code again. Once again, these rules only apply while the Crown Store is open. To check if the game is in secure render mode use WINDOW_MANAGER: IsSecureRenderModeEnabled() or register for EVENT_SECURE_RENDER_MODE_CHANGED.

New Systems
The collectibles, justice, and champion systems were added this patch and their APIs are now functional.

Collectibles
Functions
  • GetNumCollectibleCategories
  • GetCollectibleCategoryInfo
  • GetCollectibleSubCategoryInfo
  • GetUnlockedCollectiblesCount
  • GetTotalCollectiblesCount
  • GetCollectibleId
  • GetCollectibleInfo
  • GetCategoryInfoFromCollectibleId
  • GetTotalCollectiblesByCategoryType
  • GetCollectibleIdFromType
  • IsCollectibleCategorySlottable
  • IsCollectibleSlottable
  • IsCollectibleRenameable
  • UseCollectible
  • GetCollectibleLink
  • StartCollectibleSearch
  • GetCollectiblesSearchResults
  • IsValidCollectibleName
  • RenameCollectible
  • GetCollectibleNickname
  • GetCollectibleCurrentActionBarSlot
  • PickupCollectible
  • SelectSlotCollectible
  • GetStoreCollectibleInfo
Enumerations
  • COLLECTIBLE_CATEGORY_TYPE
  • COLLECTIBLE_ITEM_TYPE
  • COLLECTIBLE_UNLOCK_STATE
Events
  • EVENT_COLLECTIBLES_SEARCH_RESULTS_READY
  • EVENT_COLLECTIBLE_RENAME_ERROR
  • EVENT_COLLECTION_UPDATED
Justice
Functions
  • IsUnitJusticeGuard
  • IsUnitInvulnerableGuard
  • GetItemLaunderPrice
  • IsItemLinkStolen
  • AreAnyItemsStolen
  • LaunderItem
  • GetLootItemInfo – Added isStolen return.
  • IsJusticeEnabledForZone
  • IsJusticeEnabled
  • IsKillOnSight
  • GetInfamy
  • GetBounty
  • GetPlayerInfamyData
  • GetBountyPayoffAmount
  • GetInfamyLevel
  • GetInfamyMeterSize
  • GetFenceSellTransactionInfo
  • GetFenceLaunderTransactionInfo
  • GetCollectibleCategoryKeyboardIcons
  • GetCollectibleCategoryGamepadIcon
  • GetCollectibleCategoryTypeFromLink
  • GetCollectibleIdFromLink
Enumerations
  • INFAMY_THRESHOLD
  • JUSTICE_SKILL
  • PICKPOCKET_DIFFICULTY
  • ITEM_LAUNDER_RESULT
Events
  • EVENT_JUSTICE_BOUNTY_PAYOFF_AMOUNT_UPDATED
  • EVENT_JUSTICE_FENCE_UPDATE
  • EVENT_JUSTICE_GOLD_PICKPOCKETED
  • EVENT_JUSTICE_GOLD_REMOVED
  • EVENT_JUSTICE_INFAMY_UPDATED
  • EVENT_JUSTICE_ITEM_PICKPOCKETED
  • EVENT_JUSTICE_NOW_KOS
  • EVENT_JUSTICE_NO_LONGER_KOS
  • EVENT_JUSTICE_PICKPOCKET_FAILED
  • EVENT_JUSTICE_STOLEN_ITEMS_REMOVED
Champion
Functions
  • GetPlayerChampionXP
  • GetPlayerChampionPointsEarned
  • GetEnlightenedMultiplier
  • GetEnlightenedPool
  • IsEnlightenedAvailableForAccount
  • IsEnlightenedAvailableForCharacter
  • GetChampionXPInRank
  • GetNumChampionDisciplines
  • GetChampionDisciplineName
  • GetChampionDisciplineDescription
  • GetChampionDisciplineAttribute
  • GetNumChampionDisciplineSkills
  • GetChampionSkillPosition
  • GetChampionSkillName
  • GetMaxPossiblePointsInChampionSkill
  • GetNumPointsSpentOnChampionSkill
  • GetNumPointsSpentInChampionDiscipline
  • GetChampionSkillUnlockLevel
  • GetNumUnspentChampionPoints
  • ClearPendingChampionPoints
  • AddPendingChampionPoints
  • SpendPendingChampionPoints
  • SetChampionMusicActive
  • GetChampionAbilityDescription
  • GetChampionAbilityId
  • GetChampionRespecCost
  • GetChampionPointAttributeForRank
  • IsChampionSystemUnlocked
Enumerations
  • CHAMPION_PURCHASE
Events
  • EVENT_CHAMPION_POINT_GAINED
  • EVENT_CHAMPION_PURCHASE_RESULT
  • EVENT_CHAMPION_SYSTEM_UNLOCKED
  • EVENT_UNSPENT_CHAMPION_POINTS_CHANGED
Mounts
The mounts API has been reworked to match the new mount system. It now centers around mount collectibles/skins and shared riding skills. This also impacts the global Lua stables manager.

Functions
  • Added
    • HasMountSkin
    • GetMountSkinId
    • GetRidingStats
    • GetMaxRidingTraining
    • GetTimeUntilCanBeTrained
    • GetTrainingCost
    • TrainRiding
  • Removed
    • GetMaxMountLevel
    • GetNumStableSlots
    • GetMaxStableSlots
    • BuyStableSlot
    • GetNextStableSlotCost
    • CanBuyStableSlotUpgrade
    • IsStableSlotEmpty
    • SetActiveMount
    • SellMount
    • GetStableSlotInfo
    • GetStableSlotMountStats
    • GetTimeUntilMountCanBeFed
    • GetNumMountFeedOptions
    • [GetMountFeedOptionInfo
    • FeedMount
    • IsValidMountName
    • RenameMount – Handled by collectible renaming.
    • GetStoreMountInfo
Enumerations
  • Removed
    • STORE_ENTRY_TYPE_MOUNT
Events
  • Added
    • EVENT_ACTIVE_MOUNT_CHANGED
    • EVENT_MOUNT_INFO_UPDATED
  • Removed
    • EVENT_MOUNTS_FULL_UPDATE
    • EVENT_MOUNT_ADDED_TO_STABLE
    • EVENT_MOUNT_UPDATE
    • EVENT_STABLE_FULL
Globals
  • Removed
    • ACTIVE_MOUNT_INDEX
Raid Scoring
Raid scoring is now point based instead of time based.

Functions
  • Added
    • GetCurrentRaidScore
  • Removed
    • GetCurrentRaidTime
  • Changed
    • GetRaidLeaderboardLocalPlayerInfo – returns best score instead of best time.
Enumerations
  • Added
    • RAID_POINT_REASON
Events
  • Added
    • EVENT_RAID_TRIAL_NEW_BEST_SCORE
    • EVENT_RAID_TRIAL_SCORE_UPDATE
  • Removed
    • EVENT_RAID_TRIAL_NEW_BEST_TIME
  • Changed
    • EVENT_RAID_TRIAL_COMPLETE, EVENT_RAID_TRIAL_FAILED – Now report best score and total time. Removed penalty time.
Completed Quest API
Added an API for querying information on quests that the player has completed.

Functions
  • Added
    • GetNextCompletedQuestId
    • GetCompletedQuestInfo
    • GetCompletedQuestLocationInfo
Edit Control
Added support for controlling the edit box scrolling.
Functions
  • Added
    • GetScrollExtents
    • GetTopLineIndex
    • SetTopLineIndex
Miscellaneous Functions
Added
  • GetAPIVersion
  • GetCriticalStrikeChance
  • GetAbilityEffectDescription
  • CanInteractWithItem
  • IsItemLinkStackable
  • GetItemLinkStacks
  • GetMapNameByIndex
  • GetZoneDescription
  • IsInAvAZone
  • IsAchievementComplete
  • IsUnitReincarnating
  • IsUnitDeadOrReincarnating
  • GetQuestToolTooltipInfo
  • GetQuestItemTooltipInfo
  • GetQuestLootItemTooltipInfo
  • GetAchievementCategoryKeyboardIcons
  • GetAchievementCategoryGamepadIcon
Changed
  • GetLootMoney – Changed for Justice. Now return un-owned money, owned money instead of total money.
  • GetAchievementCategoryInfo – No longer returns icons. Use GetAchievementCategoryKeyboardIcons.
Jessica Folsom
Associate Director of Community - ZeniMax Online Studios
Facebook | Twitter | Twitch | Tumblr | Instagram | YouTube | Support
Staff Post
  • Deome
    Deome
    ✭✭✭
    This is very, very helpful. Thank you, I'll be sure to make sure it circulates.

    Also, an explanation of how the GUILD_ROSTER has changed would be most welcome. There aren't too many addons that use it, but the changes were significant enough that it took me some time to adapt.
    Deome
    Loremonger, Addon Developer (DataDaedra, etc.), Ministry Malcontent

    "I am alive because that one is dead. I exist because I have the will to do so." --Now-Last, "Boethiah's Proving"
  • Soleya
    Soleya
    ✭✭✭✭✭
    Is there an updated texture list for 1.6 update?

    http://wiki.esoui.com/Texture_List

    Looking for some UI textures that involve the fence icons but they aren't in that list.

    Thanks
  • Ayantir
    Ayantir
    ✭✭✭✭
    Just did it
    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
  • Woeler
    Woeler
    ✭✭✭✭✭
    ✭✭✭✭
    Zenimax, why did you remove the GetCurrentRaidTime() function? It is still useful... :'(
  • Phinix1
    Phinix1
    ✭✭✭✭✭
    ✭✭✭✭✭
    Hi ZOS,

    Having some trouble using SetMarketItem() to hook the tooltips from the Crown Store. As I understand it, this simple test shouldn't be "insecure" (unless debug output qualifies as SetText somewhere), yet it appears not to function:
    local TestSetMarketItemTooltip = ItemTooltip.SetMarketItem
    ItemTooltip.SetMarketItem = function(control,...)
    	d("test...")
    	TestSetMarketItemTooltip(control,...)
    end
    
    Edited by Phinix1 on 14 June 2015 05:30
Sign In or Register to comment.