Maintenance for the week of May 20:
• [COMPLETE] PC/Mac: NA and EU megaservers for patch maintenance – May 20, 4:00AM EDT (8:00 UTC) – 10:00AM EDT (14:00 UTC)
• Xbox One: NA and EU megaservers for maintenance – May 22, 6:00AM EDT (10:00 UTC) – 9:00AM EDT (13:00 UTC)
• PlayStation®4: NA and EU megaservers for maintenance – May 22, 6:00AM EDT (10:00 UTC) – 9:00AM EDT (13:00 UTC)

Dark Brotherhood API Patch Notes & Change Log (PTS)

ZOS_GinaBruno
ZOS_GinaBruno
Community Manager
ESO UI API Patch Notes (Version 100015)
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.

Craft (Virtual) Bags
This patch adds a new virtual bag for ESO Plus members. This bag can be accessed using the existing bag and slot based inventory APIs with the bag type, BAG_VIRTUAL, and a slotId obtained from GetNextVirtualBagSlotId.
  • GetNextVirtualBagSlotId(lastSlotId) – nextSlotId or nil.
  • CanItemBeVirtual(bagId, slotIndex)
  • CanItemLinkBeVirtual(itemLink)
  • HasCraftBagAccess()
  • GetItemLinkStacks(itemLink) now also returns stackCountCraftBag

Specialized Item Type
Items now have a secondary, specialized item type that further identifies an item. GetItemType and GetItemLinkItemType now return the specialized item type as the second return after the existing item type. Some examples of the specialized item types are:
  • SPECIALIZED_ITEMTYPE_COLLECTIBLE_MONSTER_TROPHY
  • SPECIALIZED_ITEMTYPE_COLLECTIBLE_RARE_FISH
  • SPECIALIZED_ITEMTYPE_DRINK_ALCOHOLIC
  • SPECIALIZED_ITEMTYPE_DRINK_CORDIAL_TEA
  • SPECIALIZED_ITEMTYPE_DRINK_DISTILLATE
  • SPECIALIZED_ITEMTYPE_DRINK_LIQUEUR
  • SPECIALIZED_ITEMTYPE_DRINK_TEA
  • SPECIALIZED_ITEMTYPE_DRINK_TINCTURE
  • SPECIALIZED_ITEMTYPE_DRINK_TONIC
  • SPECIALIZED_ITEMTYPE_DRINK_UNIQUE
  • SPECIALIZED_ITEMTYPE_FOOD_ENTREMET
  • etc…

Anchor Constraints
Anchors can now constrain a single dimension. This can be used to anchor the X and Y values of a single control off of two different points or two different controls. For example, you could anchor the TOP of my control to the BOTTOM of control A and the LEFT of my control to the RIGHT of control B. This would anchor the TOPLEFT point of your control based off of two other controls.
  • ANCHOR_CONSTRAINS_X
  • ANCHOR_CONSTRAINS_XY
  • ANCHOR_CONSTRAINS_Y
  • GetAnchor now returns which dimension that anchor constrains as the last return.
  • SetAnchor now accepts which dimension that anchor constrains as the last argument.

Player Item Locking
Added a server persisted item lock. When an item is locked it cannot be destroyed, sold, or traded.
  • INVENTORY_UPDATE_REASON_PLAYER_LOCKED
  • CanItemBePlayerLocked(bagId, slotIndex)
  • IsItemPlayerLocked(bagId, slotIndex)
  • SetItemIsPlayerLocked(bagId, slotIndex, playerLocked)

Veteran Rank Removal
All events, globals, and functions that have to do with Veteran Ranks have been removed. It most cases, there are Champion Point analogs. Functions that returned a player Veteran Rank now return their Champion Points.
  • CAMPAIGN_LEVEL_REQ_TYPE_VETERAN_LEVEL => CAMPAIGN_LEVEL_REQ_TYPE_CHAMPION_RANK
  • SCALE_LEVEL_CONSTRAINT_NORMAL_MIN_VETERAN_MAX => SCALE_LEVEL_CONSTRAINT_NORMAL_MIN_CHAMPION_RANK_MAX
  • SCALE_LEVEL_CONSTRAINT_VETERAN_MIN_VETERAN_MAX => SCALE_LEVEL_CONSTRAINT_CHAMPION_RANK_MIN_CHAMPION_RANK_MAX
  • MAXIMUM_VETERAN_RANK => MAXIMUM_CHAMPION_RANK
  • TRADING_HOUSE_FILTER_TYPE_VETERAN_LEVEL => TRADING_HOUSE_FILTER_TYPE_CHAMPION_POINTS

Removed:
  • GetUnitVeteranRank
  • IsUnitVeteran
  • GetUnitVeteranPoints
  • GetUnitVeteranPointsMax
  • IsUnitVetBattleLeveled
  • GetUnitVetBattleLevel
  • GetItemRequiredVeteranRank
  • GetItemLinkRequiredVeteranRank
  • GetNumVeteranPointsInRank
  • GetChampionXPInRank
  • GetMaxVeteranRank
  • EVENT_VETERAN_POINTS_GAIN
  • EVENT_VETERAN_POINTS_UPDATE
  • EVENT_VETERAN_RANK_UPDATE

Added:
  • GetUnitChampionPoints
  • CanUnitGainChampionPoints
  • IsUnitChampion
  • IsUnitChampionBattleLeveled
  • GetUnitChampionBattleLevel
  • GetItemRequiredChampionPoints
  • GetItemLinkRequiredChampionPoints
  • GetNumChampionXPInChampionPoint
  • GetChampionPointsPlayerProgressionCap
  • EVENT_CHAMPION_LEVEL_ACHIEVED
  • EVENT_CHAMPION_POINT_UPDATE

Unassign Campaign
Added the ability for players to unassign themselves from a campaign.
  • CAMPAIGN_UNASSIGN_TYPE_GUEST
  • CAMPAIGN_UNASSIGN_TYPE_HOME_USE_ALLIANCE_POINTS
  • CAMPAIGN_UNASSIGN_TYPE_HOME_USE_GOLD
  • GetCampaignUnassignCooldown()
  • GetCampaignUnassignCost(CAMPAIGN_UNASSIGN_TYPE) - cost
  • GetNumFreeAnytimeCampaignUnassigns() - count
  • UnassignCampaignForPlayer(CAMPAIGN_UNASSIGN_TYPE)

Stats
Some minor changes have been made to player stats. Soft caps have been removed from the API and STAT_WEAPON_POWER has become STAT_WEAPON_AND_SPELL_DAMAGE.

Removed:
  • GetStatSoftCap
  • ApplySoftCapToStat
  • Removed statSoftCapOption argument from GetPlayerStat

Nameplates
Nameplates have been added to the game. They can be controlled using the options in the Nameplates panel.

Dark Brotherhood
This patch introduces poisons and Poison-Making. Alchemy has been split into potions and poisons. We have removed ITEMTYPE_ALCHEMY_BASE and replaced with it with ITEMTYPE_POISON_BASE and ITEMTYPE_POTION_BASE. IsAlchemySolvent(ITEMTYPE) can be used to determine if it is a poison or potion.

We have also added new equip slots and a new equip type:
  • EQUIP_SLOT_POISON
  • EQUIP_SLOT_BACKUP_POISON
  • EQUIP_TYPE_POISON

The following functions have been added to determine the poison that is applied to a weapon:
  • IsItemAffectedByPairedPoison(EQUIP_SLOT)
  • GetItemPairedPoisonInfo(EQUIP_SLOT)

Group Election
A system has been added for doing group votes. To start a vote, call BeginGroupElection(GROUP_ELECTION_TYPE, electionDescriptor, targetUnitTag).
  • The election type determines which type of election you’re requesting.
  • GROUP_ELECTION_TYPE_KICK_MEMBER and GROUP_ELECTION_TYPE_NEW_LEADER are, by default, supermajority votes (>= 60%)
  • electionDescriptior is a 100 character (max) string used primarily with the GROUP_ELECTION_TYPE_GENERIC_* types to track what kind of system requested the vote, so they can listen for responses and tailor the UI accordingly (e.g.: Ready Check).
  • targetUnitTag is the group member unit tag which this election is in regards to. Currently this only works with GROUP_ELECTION_TYPE_KICK_MEMBER and GROUP_ELECTION_TYPE _NEW_LEADER.
  • HasPendingGroupElectionVote() returns true for any member who has not voted on an election they are participating in.

GetGroupElectionInfo() – returns GROUP_ELECTION_TYPE, timeRemainingSeconds, electionDescriptor, targetUnitTag.

CastGroupVote(GROUP_VOTE_CHOICE)
  • The person who started the vote does not vote manually, they are an automatic “yes.”
  • The target of the vote (if a target exists) does not vote, nor will they know a vote is occurring.

DoesGroupModificationRequireVote() returns true if an action that would change the group structure requires a vote to happen.
  • Currently this is only true for LFG groups.
  • This specifically gates the ability to disband the group and manually kick a member.

Item Traits
The item trait ITEM_TRAIT_TYPE_ARMOR_EXPLORATION has been replaced with ITEM_TRAIT_TYPE_ARMOR_PROSPEROUS, and the item trait ITEM_TRAIT_TYPE_WEAPON_WEIGHTED has been replaced with ITEM_TRAIT_TYPE_WEAPON_DECISIVE.

Miscellaneous
Added more nuanced item filter types:
  • ITEMFILTERTYPE_ALCHEMY
  • ITEMFILTERTYPE_BLACKSMITHING
  • ITEMFILTERTYPE_CLOTHING
  • ITEMFILTERTYPE_ENCHANTING
  • ITEMFILTERTYPE_PROVISIONING
  • ITEMFILTERTYPE_STYLE_MATERIALS
  • ITEMFILTERTYPE_TRAIT_ITEMS
  • ITEMFILTERTYPE_WOODWORKING

Added two new SCT event types for damage immunities:
  • SCT_EVENT_TYPE_DAMAGE_IMMUNE
  • SCT_EVENT_TYPE_DOT_IMMUNE

Replaced GetItemLinkGlyphMinMaxLevels with GetItemLinkGlyphMinLevels as glyphs no longer have max levels.

EVENT_INVENTORY_SINGLE_SLOT_UPDATE now includes the stack count delta.

Added:
  • DoesCurrentZoneAllowBattleLevelScaling()
  • GetPlayerActiveSubzoneName()
  • GetPlayerActiveZoneName()
  • GetDistrictOwnershipTelVarBonusPercent(keepId, BGQUERY) – bonusPercent
Gina Bruno
Community Manager - The Elder Scrolls Online
Dev Tracker | Service Alerts | Facebook | Twitter
Staff Post
  • Ayantir
    Ayantir
    ✭✭✭✭
    Many thanks
    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
  • Praeficere
    Praeficere
    ✭✭✭✭
    -wrong thread-
    Edited by Praeficere on April 26, 2016 6:25PM
    Though the shadow has moved not,
    A thousand miles I’ve passed –
    Ageless as the mountains but forgetting not the past.

    Are you Resolute?
    PC EU Progression Guild
  • lordrichter
    lordrichter
    ✭✭✭✭✭
    ✭✭✭✭✭
    @ZOS_ChipHilseberg ... I don't see an API way to get similar guild tabard information that the nameplates get, and was wondering if I am missing something that will provide that information, or if it was a possibility for inclusion in some future API update.
    PC North America since March 2014
    PAWS (Positively Against Wrip-off Stuff) - Say NO to Crown Crates!
    I collect free, unopened, virgin Crown Crates! 311, so far!

  • Keldor
    Keldor
    ✭✭✭
    *Deleted*
    Edited by Keldor on May 3, 2016 3:26PM
    ESO-Database.com
    Character and Guild Database for ESO with data collection AddOn and Windows Client for automatically data transfers. (DE/EN)

    ESO-Skillfactory.com
    Elder Scrolls Online skill calculator with Championsystem! (DE/EN/FR)

    ESO-LFG.com
    Groupsearch/Gruppensuche/Trouver un groupe: Xbox One, PS4, PC, Mac (DE/EN/FR)
  • Letho2469
    Letho2469
    ✭✭✭
    [...]

    Nameplates
    Nameplates have been added to the game. They can be controlled using the options in the Nameplates panel.

    [...]

    Hey Gina, thx for sharing the API updates. Any chance we will get some API functionality to style name- and healthplates with curstom addons?

    b023ef4f74ba1102f6bc5b3045bb1223.jpg would be nice for eso^^

    Cheers,
    Letho
    Trials
    vAA: Hardmode
    vHRC: Hardmode
    vSO: Hardmode
    vMoL: Hardmode
    vHoF: Hardmode
    vAS: clear
    vCR: +2
    vSS: clear
  • sirinsidiator
    sirinsidiator
    ✭✭✭✭
    Any chance we can get the new PTS api patch notes for 2.5 too @ZOS_JessicaFolsom? Pretty please :)
  • Phinix1
    Phinix1
    ✭✭✭✭✭
    ✭✭✭✭✭
    Letho2469 wrote: »
    Hey Gina, thx for sharing the API updates. Any chance we will get some API functionality to style name- and healthplates with curstom addons?

    Yep, after some digging this indeed doesn't seem possible at the moment. There is no reliable way to track specific units that aren't currently under your target crosshairs for one, and even though you can get unitID from EVENT_COMBAT_EVENT (questionable whether this is reliable as lookups on the player ID like name don't seem to return the correct values), you cannot get this anywhere else where it would be needed to check/update things.

    I've also yet to find a way to hook into the display of nameplates and the new healthbars and though it MAY be exposed somewhere, without the ability to track changes to specific units there likely couldn't be much use for it presently.
    Edited by Phinix1 on June 28, 2016 12:52AM
    My Addons (@Phinix_ESO - PC NA Megaserver):
    ESO Master Recipe List - SALTI - Dungeon Tracker - Poison Master - Vampire's Woe - Chat Window Manager ... (more)
    Also co-author for: Azurah - Srendarr - FastReport Continued - Show Motifs - Combat Cloud
    Other stuff: Phinix Addon-Powered UI - MY YOUTUBE CHANNEL

    "Cameras don't just record things, they change what they record simply by being there."
    - General Hammond, Stargate SG1, Episode 7x17: Heroes, Part 1.
Sign In or Register to comment.