ESO UI API Patch Notes (Version 100011)
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.
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.
CollectiblesFunctions
- 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
JusticeFunctions
- IsUnitJusticeGuard
- IsUnitInvulnerableGuard
- GetItemLaunderPrice
- IsItemLinkStolen
- AreAnyItemsStolen
- LaunderItem
- GetLootItemInfo – Added isStolen return.
- IsJusticeEnabledForZone
- IsJusticeEnabled
- IsKillOnSight
- GetInfamy
- GetBounty
- GetPlayerInfamyData
- GetBountyPayoffAmount
- GetInfamyLevel
- GetInfamyMeterSize
- GetFenceSellTransactionInfo
- GetFenceLaunderTransactionInfo
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
ChampionFunctions
- 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
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.
FunctionsAdded- 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
•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
Raid Scoring
Raid scoring is now point based instead of time based.
• Functions Added
o Removed
o Changed
- GetRaidLeaderboardLocalPlayerInfo – returns best score instead of best time.
• Enumerationso Added
[*]
• Eventso Added
- EVENT_RAID_TRIAL_NEW_BEST_SCORE
- EVENT_RAID_TRIAL_SCORE_UPDATE
o Removed
- EVENT_RAID_TRIAL_NEW_BEST_TIME
o 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.
• Functionso Added
- GetNextCompletedQuestId
- GetCompletedQuestInfo
- GetCompletedQuestLocationInfo
Miscellaneous Functions• Added
- GetAPIVersion
- GetCriticalStrikeChance
- GetAbilityEffectDescription
- CanInteractWithItem
- IsItemLinkStackable
- GetItemLinkStacks
- GetMapNameByIndex
- GetZoneDescription
- IsInAvAZone
- IsAchievementComplete