ESO UI API Patch Highlights (V100027)
A summary of important changes to the ESO UI API in this package.Artifact Weapons
A new objective type, OBJECTIVE_DAEDRIC_WEAPON, has been added. It behaves similarly to a capture-the-flag flag in terms of pick up, carrying, and dropping. However, it also differs in a few ways:
- The daedric weapon has its own power pool (POWERTYPE_DAEDRIC). Information about the power level can be queried using the same functions for other power types like stamina and magicka.
- Daedric weapon objectives start out in an unknown objective control state where there is no information available about them and will stay that way until a fixed time after they spawned, or the daedric weapon is picked up.
- There is an objective for each possible daedric weapon spawn location but most of them will be inactive.
Use EVENT_ACTIVE_DAEDRIC_ARTIFACT_CHANGED and GetActiveDaedricArtifactId to check the active daedric weapon.Add-On Library Flag
A new directive has been added to the manifest file:
Add-ons marked as libraries will appear at the bottom of the addon list in their own section. GetAddOnInfo now also returns isLibrary at the end of its returns.Lua Profiler
The Lua profiler API now records C functions, garbage collection, and user events generated through RecordScriptProfilerUserEvent("text").
The guild finder system adds a large number of new APIs for creating guild applications, applying to guilds, and reviewing applications. It also adds APIs for querying some information (name, languages, alliance, etc.) about any guild in the game as long as they are openly recruiting. These APIs require first pulling the guild information from the server using RequestGuildFinderAttributesForGuild(guildId). This API will be rate limited so please use it with care. When information is available, EVENT_GUILD_INFO_REQUEST_COMPLETE will be sent with the matching guild id.
To make these new APIs possible guild ids in all APIs have been switched from fake, non-persistent IDs to the actual persistent guild IDs. Additionally, a new link type has been added for guilds (LINK_TYPE_GUILD), which lets you link guild recruitment in chat (GetGuildRecruitmentLink).Encounter Log
An out of game log file has been added to record combat information. It can be enabled and disabled with the “/encounterlog” command. For information about the types of data that can appear in the log use the “/encounterlog format” command. By default, the encounter log is output in a compact format to minimize file size. However, it can be output in a more human readable format using the “/encounterlog verbose” and “/encounterlog inline” options. The encounter log includes information on all combat events, not just ones involving the player. However, players may choose to prevent their name from appearing in the log using an anonymity setting in the combat options.Combat Event
EVENT_COMBAT_EVENT now splits damage and healing values into effective and overflow. The overflow amount is a new field that appears after the existing combat event fields.World Events (Dragons)
Dragons make use of the new world event system. It provides information about the active locations and boss units that are participating in the world event.
- EVENT_WORLD_EVENT_ACTIVATED - worldEventInstanceId.
- EVENT_WORLD_EVENT_ACTIVE_LOCATION_CHANGED - worldEventInstanceId, oldWorldEventLocationId, newWorldEventLocationId.
- EVENT_WORLD_EVENT_DEACTIVATED – worldEventInstanceId.
- EVENT_WORLD_EVENT_UNIT_CHANGED_PIN_TYPE - worldEventInstanceId, unitTag, oldPinType, newPinType.
- EVENT_WORLD_EVENT_UNIT_CREATED - worldEventInstanceId, unitTag.
- GetNextWorldEventInstanceId(lastWorldEventInstanceId) – nextWorldEventInstanceId.
- GetWorldEventId(worldEventInstanceId) – worldEventId.
- GetWorldEventType(worldEventId) – worldEventType.
- GetNumWorldEventInstanceUnits(worldEventInstanceId) – numUnits.
- GetWorldEventInstanceUnitTag(worldEventInstanceId, unitIndex) – unitTag.
- GetWorldEventInstanceUnitPinType(worldEventInstanceId, unitTag) – pinType.
The way the alpha and scale values of compass pins are specified has changed to make it easier to understand. The new method involves setting close and far distances for each attribute and interpolating between them. For example, setting closeAlphaDistanceM to “1” and farAlphaDistanceM to “100” with closeAlpha set to “1” and farAlpha set to “0.4” will cause the alpha to be 1 from 0-1m, scale down to 0.4 from 1-100m, and be 0.4 from 100m on. Additionally, you can set the max distance the pin exists at using maxDistanceM, which can be a distance in meters or the sentinel value COMPASS_PIN_NO_MAX_DISTANCE.
The boolean escapeMarkup attribute on edit boxes has been replaced with allowMarkupType which has three values:
PreviewTradingHouseSearchResultItemLinkAsFurniture(itemLink, variation) has also been added to allow previewing any item link seen in trading house search results this session.