ESOUI

ESOUI (https://www.esoui.com/forums/index.php)
-   Tutorials & Other Helpful Info (https://www.esoui.com/forums/forumdisplay.php?f=172)
-   -   2.7 Update (https://www.esoui.com/forums/showthread.php?t=6711)

Ayantir 12/30/16 05:48 PM

2.7 Update
 
Hello,


2.7 Update (Homestead) is on PTS.




More info : http://www.elderscrollsonline.com/en...cing-homestead


I would like first to thanks sirinsidiator for his 2.5 update post and the awesome ambiance on Gitter.


Now, back to business, so some placeholders :


Ayantir 12/30/16 05:51 PM

PTS should pop the 5 jan. for info
I'll try to update all the stuff, you can talk about improvments we could do..

If you plan to stop, leave a comment,
If you plan to start coding, CONSIDER TAKING OVER AN ADDON FIRST even by rewriting it entirely.

Rhyono 12/30/16 06:00 PM

Probably a good place to ask: if an addon is no longer being worked on by the author but is otherwise completely functional and just needs the API version updated, how should I go about getting that handled?

Ayantir 12/31/16 04:08 AM

It's MY answer, not the *official* one, there is no really official answer in fact.


Quote:

  1. PM the author, ALWAYS.
  2. Wait 7 days (at least)
  3. Check his "Last Activity" (clic on its name on the addon page, it's written at the right, near its avatar)
  4. If addon only need an API update and 0 feature/bugfix, wait until next API bump (generally ~3 months), then if still not, look at The big choice (see under).

If addon needs code refactoring (bugfix/new features) :

If author last activity > 1 month :
  • The big choice (see under).

If last activity < 1 month
  • If addon is broken, submit a patch if you can (Addon page > Other Files).




It's not an official process, but as being one of the biggest "takeover-er" that's a good method which is not too fast and not too slow.

We have several authors who logs here once a month or once a DLC, so for many of them, you need to be patient.
Checking the addon last update date is also a good way to know if author is active or not, but it's not always accurate for big authors.


At any moment, if author say No, then > STOP < *(S)HE* IS THE AUTHOR

If you REALLY want a feature and REALLY think it's good for the addon (consider the scope of the addon and the exp. of the author) try to explain and argue with author and if still say No, fork by respecting the licence. (you'll enter in a possible drama-zone, plase avoid this at all cost). This case should never being hit for me. Consider Gitter for an objective point of view of other exp. authors.

Don't fork for a bugfix if author replied, please respect him/her.




The big choice:
  • PM Cairenn to ask to be added to addon team, that you PM'ed author and he didn't replied and he's away from ESOUI since more than a month. You will have possibility to upload, but no bugtracking/features panel and no downloads for you.
  • Upload a new addon with a similar name, please add a comment if possible on old addon to warn users with a link to the new added. You can also submit a patch. You'll have addon portal with team management with bug/features list and download counter to you.



@Cairenn / Dolby : feel free to edit my post.

Ayantir 01/01/17 03:43 PM

Quote:

We will be performing maintenance for patch 2.7.0 on the PTS on Tuesday at 10:00AM EST (15:00 GMT).
bit earlier than planned

ZOS_ChipHilseberg 01/03/17 10:06 AM

1 Attachment(s)
Attached is the updated documentation for PTS. You can ask any questions you have about the changes here. The summary notes have not been written yet. Are those useful to you guys or would you rather we address the changes in a Q+A format on this thread?

Baertram 01/03/17 10:32 AM

Thanks Chip!
Differences after first comparison are stored here: https://www.diffchecker.com/v4WyyUws

=================
Events - Added
=================

Code:

* EVENT_ACTION_SLOT_ABILITY_USED_WRONG_WEAPON (*integer* _weaponConfigType_)

* EVENT_DUEL_STARTED

* EVENT_GROUPING_TOOLS_READY_CHECK_CANCELLED (*integer* _reason_)
* EVENT_GROUPING_TOOLS_READY_CHECK_UPDATED

* EVENT_HOME_SHOW_LEADERBOARD_DATA_CHANGED (*integer* _voteCategory_, *integer* _houseCategory_)

* EVENT_HOUSING_ADD_PERMISSIONS_CANT_ADD_SELF
* EVENT_HOUSING_EDITOR_REQUEST_RESULT (*integer* _requestResult_)
* EVENT_HOUSING_LOAD_PERMISSIONS_RESULT (*integer* _loadResult_)
* EVENT_HOUSING_PERMISSIONS_CHANGED (*integer* _userGroup_)
* EVENT_HOUSING_PLAYER_INFO_CHANGED (*bool* _wasOwner_, *bool* _oldCanEdit_, *integer* _oldVisitorRole_)
* EVENT_HOUSING_PRIMARY_RESIDENCE_SET (*integer* _houseId_)

* EVENT_OPEN_HOUSE_STORE

* EVENT_WRIT_VOUCHER_UPDATE (*integer* _newWritVouchers_, *integer* _oldWritVouchers_, *integer* _reason_)

* EVENT_MARKET_PURCHASE_RESULT (*integer* _purchaseResult_, *integer* _tutorialTrigger_)
* EVENT_MARKET_STATE_UPDATED (*integer* _displayGroup_, *integer* _marketState_)



=================
Events - Removed
=================

Code:

* EVENT_CLOSE_FENCE
* EVENT_HOUSING_COLLECTIBLE_PLACED (*integer* _collectibleId_)

* EVENT_HOUSING_COLLECTIBLE_REMOVED (*integer* _collectibleId_)


=================
Events - Changed
=================


Code:

* EVENT_SHOW_BOOK (*string* _bookTitle_, *string* _body_, *integer* _medium_, *bool* _showTitle_, *integer* _bookId_)

====================
functions - Added
====================


Code:

* DoesSystemSupportHDR()
** _Returns:_ *bool* _supportsHDR_

* IsSystemUsingHDR()
** _Returns:_ *bool* _usesHDR_


* IsChromaSystemAvailable()
** _Returns:_ *bool* _systemAvailable_

* ChromaClearKeyboardEffect()

* ChromaClearKeypadEffect()

* ChromaClearMouseEffect()

* ChromaClearMousepadEffect()

* ChromaClearHeadsetEffect()

* ChromaCreateKeyboardStaticEffect(*number* _red_, *number* _green_, *number* _blue_)

* ChromaCreateKeypadStaticEffect(*number* _red_, *number* _green_, *number* _blue_)

* ChromaCreateMouseStaticEffect(*number* _red_, *number* _green_, *number* _blue_)

* ChromaCreateMousepadStaticEffect(*number* _red_, *number* _green_, *number* _blue_)

* ChromaCreateHeadsetStaticEffect(*number* _red_, *number* _green_, *number* _blue_)

* ChromaCreateKeyboardBreathingEffect(*[ChromaKeyboardBreathingEffectType|#ChromaKeyboardBreathingEffectType]* _breathingType_, *number* _red1_, *number* _green1_, *number* _blue1_, *number* _red2_, *number* _green2_, *number* _blue2_)

* ChromaCreateKeypadBreathingEffect(*[ChromaKeypadBreathingEffectType|#ChromaKeypadBreathingEffectType]* _breathingType_, *number* _red1_, *number* _green1_, *number* _blue1_, *number* _red2_, *number* _green2_, *number* _blue2_)

* ChromaCreateMouseBreathingEffect(*[ChromaMouseBreathingEffectType|#ChromaMouseBreathingEffectType]* _breathingType_, *number* _red1_, *number* _green1_, *number* _blue1_, *number* _red2_, *number* _green2_, *number* _blue2_)

* ChromaCreateMousepadBreathingEffect(*[ChromaMousepadBreathingEffectType|#ChromaMousepadBreathingEffectType]* _breathingType_, *number* _red1_, *number* _green1_, *number* _blue1_, *number* _red2_, *number* _green2_, *number* _blue2_)

* ChromaCreateHeadsetBreathingEffect(*number* _red_, *number* _green_, *number* _blue_)

* ChromaCreateKeyboardWaveEffect(*[ChromaKeyboardWaveEffectDirection|#ChromaKeyboardWaveEffectDirection]* _waveDirection_)

* ChromaCreateKeypadWaveEffect(*[ChromaKeypadWaveEffectDirection|#ChromaKeypadWaveEffectDirection]* _waveDirection_)

* ChromaCreateMouseWaveEffect(*[ChromaMouseWaveEffectDirection|#ChromaMouseWaveEffectDirection]* _waveDirection_)

* ChromaCreateMousepadWaveEffect(*[ChromaMousepadWaveEffectDirection|#ChromaMousepadWaveEffectDirection]* _waveDirection_)

* ChromaCreateKeyboardReactiveEffect(*[ChromaKeyboardReactiveEffectDuration|#ChromaKeyboardReactiveEffectDuration]* _reactionDuration_, *number* _red_, *number* _green_, *number* _blue_)

* ChromaCreateKeypadReactiveEffect(*[ChromaKeypadReactiveEffectDuration|#ChromaKeypadReactiveEffectDuration]* _reactionDuration_, *number* _red_, *number* _green_, *number* _blue_)

* ChromaCreateMouseReactiveEffect(*[ChromaMouseReactiveEffectDuration|#ChromaMouseReactiveEffectDuration]* _reactionDuration_, *number* _red_, *number* _green_, *number* _blue_)

* ChromaCreateKeyboardSpectrumCyclingEffect()

* ChromaCreateKeypadSpectrumCyclingEffect()

* ChromaCreateMouseSpectrumCyclingEffect()

* ChromaCreateMousepadSpectrumCyclingEffect()

* ChromaResetCustomEffectObject(*[ChromaDeviceType|#ChromaDeviceType]* _deviceType_)

* ChromaApplyCustomEffectFullColor(*[ChromaDeviceType|#ChromaDeviceType]* _deviceType_, *number* _red_, *number* _green_, *number* _blue_, *number* _alpha_, *[ChromaBlendMode|#ChromaBlendMode]* _blendMode_)

* ChromaApplyCustomEffectRowColor(*[ChromaDeviceType|#ChromaDeviceType]* _deviceType_, *luaindex* _rowIndex_, *number* _red_, *number* _green_, *number* _blue_, *number* _alpha_, *[ChromaBlendMode|#ChromaBlendMode]* _blendMode_)

* ChromaApplyCustomEffectColumnColor(*[ChromaDeviceType|#ChromaDeviceType]* _deviceType_, *luaindex* _columnIndex_, *number* _red_, *number* _green_, *number* _blue_, *number* _alpha_, *[ChromaBlendMode|#ChromaBlendMode]* _blendMode_)

* ChromaApplyCustomEffectCellColor(*[ChromaDeviceType|#ChromaDeviceType]* _deviceType_, *luaindex* _rowIndex_, *luaindex* _columnIndex_, *number* _red_, *number* _green_, *number* _blue_, *number* _alpha_, *[ChromaBlendMode|#ChromaBlendMode]* _blendMode_)

* ChromaApplyCustomEffectId(*integer* _effectId_)

* ChromaGetCustomEffectCellColor(*[ChromaDeviceType|#ChromaDeviceType]* _deviceType_, *luaindex* _rowIndex_, *luaindex* _columnIndex_)
** _Returns:_ *number* _red_, *number* _green_, *number* _blue_

* ChromaGetCustomEffectDimensions(*[ChromaDeviceType|#ChromaDeviceType]* _deviceType_)
** _Returns:_ *integer* _numRows_, *integer* _numColumn_

* ChromaFinalizeCustomEffect(*[ChromaDeviceType|#ChromaDeviceType]* _deviceType_)

* GetChromaKeyboardKeyByZoGuiKey(*[KeyCode|#KeyCode]* _zoGuiKeyCode_)
** _Returns:_ *[ChromaKeyboardKey|#ChromaKeyboardKey]* _chromaKeyboardKey_

* GetChromaKeyboardCellByChromaKeyboardKey(*[ChromaKeyboardKey|#ChromaKeyboardKey]* _chromaKeyboardKey_)
** _Returns:_ *luaindex* _rowIndex_, *luaindex* _columnIndex_

* GetChromaMouseCellByLED(*[ChromaMouseLED2|#ChromaMouseLED2]* _ledId_)
** _Returns:_ *luaindex* _rowIndex_, *luaindex* _columnIndex_

* GetChromaMousepadCellByLED(*[ChromaMousepadLED|#ChromaMousepadLED]* _ledId_)
** _Returns:_ *luaindex* _rowIndex_, *luaindex* _columnIndex_

* ChromaGenerateCustomEffect(*[ChromaDeviceType|#ChromaDeviceType]* _deviceType_, *[ChromaCustomEffectType|#ChromaCustomEffectType]* _customEffectType_, *[ChromaCustomEffectGridStyle|#ChromaCustomEffectGridStyle]* _gridStyle_)
** _Returns:_ *integer* _effectId_

* ChromaDeleteCustomEffectById(*integer* _effectId_)

* ChromaDeleteAllCustomEffectIds()

* ChromaSetCustomEffectCellActive(*integer* _effectId_, *luaindex* _rowIndex_, *luaindex* _columnIndex_, *bool* _isActive_)

* ChromaSetCustomEffectSingleColorRGBA(*integer* _effectId_, *number* _red_, *number* _green_, *number* _blue_, *number* _alpha_)

* ChromaSetCustomEffectSingleColorBlendMode(*integer* _effectId_, *[ChromaBlendMode|#ChromaBlendMode]* _blendMode_)

* ChromaSetCustomSingleColorFadingEffectValue(*integer* _effectId_, *number* _fadeValue_)

* ChromaSetCustomSingleColorFadingEffectUsesAlphaChannel(*integer* _effectId_, *bool* _useAlphaChannel_)



* CreateBackgroundListFilter(*[BackgroundListFilterTarget|#BackgroundListFilterTarget]* _target_, *string* _searchText_)
** _Returns:_ *integer* _taskId_

* AddBackgroundListFilterType(*integer* _taskId_, *[BackgroundListFilterType|#BackgroundListFilterType]* _filterType_)

* AddBackgroundListFilterEntry(*integer* _taskId_, *integer* _value1_, *integer* _value2_)

* AddBackgroundListFilterEntry64(*integer* _taskId_, *id64* _value_)

* StartBackgroundListFilter(*integer* _taskId_)

* DestroyBackgroundListFilter(*integer* _taskId_)

* GetNumBackgroundListFilterResults(*integer* _taskId_)
** _Returns:_ *integer* _numResults_

* GetBackgroundListFilterResult(*integer* _taskId_, *luaindex* _resultIndex_)
** _Returns:_ *integer* _value1_, *integer* _value2_

* GetBackgroundListFilterResult64(*integer* _taskId_, *luaindex* _resultIndex_)
** _Returns:_ *id64* _value_


* GetPlayerWorldPositionInHouse()
** _Returns:_ *integer* _worldX_, *integer* _worldY_, *integer* _worldZ_, *number* _rotationRadians_


* QueryHomeShowLeaderboardData()

* GetNumHomeShowVoteCategories()
** _Returns:_ *integer* _numVoteCategories_

* GetHomeShowLeaderboardVoteCategoryName(*integer* _voteCategory_)
** _Returns:_ *string* _homeShowEventName_

* GetHomeShowLeaderboardLocalPlayerInfo(*integer* _voteCategory_, *[HouseCategoryType|#HouseCategoryType]* _houseCategory_)
** _Returns:_ *integer* _personalBestRank_, *integer* _personalBestScore_

* GetNumHomeShowLeaderboardEntries(*integer* _voteCategory_, *[HouseCategoryType|#HouseCategoryType]* _houseCategory_)
** _Returns:_ *integer* _numEntries_

* GetHomeShowLeaderboardEntryInfo(*integer* _voteCategory_, *[HouseCategoryType|#HouseCategoryType]* _houseCategory_, *luaindex* _entryIndex_)
** _Returns:_ *integer* _rank_, *string* _playerDisplayname_, *integer* _houseCollectibleId_, *integer* _score_

* GetHomeShowLeaderboardTimeInfo()
** _Returns:_ *integer* _secondsUntilNextUpdate_


* JumpToHouse(*string* _displayName_)


* GetZoneNameById(*integer* _zoneId_)
** _Returns:_ *string* _name_

* GetZoneDescriptionById(*integer* _zoneId_)
** _Returns:_ *string* _description_

* SetPlayerWaypointByWorldLocation(*integer* _worldX_, *integer* _worldY_, *integer* _worldZ_)
** _Returns:_ *bool* _success_


* GenerateMasterWritBaseText(*string* _itemLink_)
** _Returns:_ *string* _description_

* GenerateMasterWritRewardText(*string* _itemLink_)
** _Returns:_ *string* _description_


* GetFastTravelNodeHouseId(*luaindex* _nodeIndex_)
** _Returns:_ *integer* _houseId_

* HasCompletedFastTravelNodePOI(*luaindex* _nodeIndex_)
** _Returns:_ *bool* _hasCompletedPOI_

* DoesObjectivePassCompassVisibilitySubzoneCheck(*integer* _keepId_, *integer* _objectiveId_, *[BattlegroundQueryContextType|#BattlegroundQueryContextType]* _battlegroundContext_)
** _Returns:_ *bool* _doesPassVisiblityCheck_

* GetStoreEntryBuyRequirementErrorId(*luaindex* _entryIndex_)
** _Returns:_ *integer* _errorId_

* GetStoreEntryHouseTemplateId(*luaindex* _entryIndex_)
** _Returns:_ *integer* _houseTemplateId_


* RemoveMapPinsByType(*[MapDisplayPinType|#MapDisplayPinType]* _pinType_)


* GetLoreBookCategoryIndexFromCategoryId(*integer* _categoryId_)
** _Returns:_ *luaindex:nilable* _categoryIndex_

* GetLoreBookCollectionIndicesFromCollectionId(*integer* _collectionId_)
** _Returns:_ *luaindex:nilable* _categoryIndex_, *luaindex:nilable* _collectionIndex_

* GetLoreBookIndicesFromBookId(*integer* _bookId_)
** _Returns:_ *luaindex:nilable* _categoryIndex_, *luaindex:nilable* _collectionIndex_, *luaindex:nilable* _bookIndex_


* GetTradeskillLevelPassiveAbilityId(*[TradeskillType|#TradeskillType]* _tradeskillType_)
** _Returns:_ *integer* _levelPassiveAbilityId_

* GetTradeskillRecipeCraftingSystem(*[TradeskillType|#TradeskillType]* _tradeskillType_)
** _Returns:_ *[RecipeCraftingSystem|#RecipeCraftingSystem]* _recipeCraftingSystem_

* GetNonCombatBonusLevelTypeForTradeskillType(*[TradeskillType|#TradeskillType]* _tradeskillType_)
** _Returns:_ *[NonCombatBonusType|#NonCombatBonusType]* _nonCombatBonusType_

* GetTradeskillTypeForNonCombatBonusLevelType(*[NonCombatBonusType|#NonCombatBonusType]* _nonCombatBonusType_)
** _Returns:_ *[TradeskillType|#TradeskillType]* _tradeskillType_

* GetMaxRecipeIngredients()
** _Returns:_ *integer* _maxIngredients_

* GetNumRecipeTradeskillRequirements(*luaindex* _recipeListIndex_, *luaindex* _recipeIndex_)
** _Returns:_ *integer* _numTradeskillRequirements_

* GetRecipeTradeskillRequirement(*luaindex* _recipeListIndex_, *luaindex* _recipeIndex_, *luaindex* _tradeskillIndex_)
** _Returns:_ *[TradeskillType|#TradeskillType]* _tradeskill_, *integer* _levelRequirement_

* HasLFGReadyCheckNotification()
** _Returns:_ *bool* _hasReadyCheckNotification_

* HasAcceptedLFGReadyCheck()
** _Returns:_ *bool* _hasAcceptedReadyCheck_

* GetLFGReadyCheckNotificationInfo()
** _Returns:_ *[LFGActivity|#LFGActivity]* _activityType_, *[LFGRole|#LFGRole]* _playerRole_, *integer* _timeRemainingSeconds_

* AcceptLFGReadyCheckNotification()

* DeclineLFGReadyCheckNotification()

* GetLFGReadyCheckCounts()
** _Returns:_ *integer* _tanksAccepted_, *integer* _tanksPending_, *integer* _healersAccepted_, *integer* _healersPending_, *integer* _dpsAccepted_, *integer* _dpsPending_


* RequestPurchaseMarketProduct(*integer* _marketProductId_, *luaindex* _presentationIndex_)

* StartWorldParticleEffect *private* (*integer* _particleEffectId_)

* StopWorldParticleEffect *private* (*integer* _particleEffectId_)

* SetWorldParticleEffectPosition *private* (*integer* _particleEffectId_, *number* _worldX_, *number* _worldY_, *number* _worldZ_)

* SetWorldParticleEffectOrientation *private* (*integer* _particleEffectId_, *number* _pitchRadians_, *number* _yawRadians_, *number* _rollRadians_)

* SetWorldParticleEffectScale *private* (*integer* _particleEffectId_, *number* _scale_)

* DeleteWorldParticleEffect *private* (*integer* _particleEffectId_)

* GetActiveUserEmailAddress *private* ()
** _Returns:_ *string* _emailAddress_

* GetCurrentZoneDungeonDifficulty()
** _Returns:_ *[DungeonDifficulty|#DungeonDifficulty]* _isVeteranDifficulty_

* CopyHousePermissions(*integer* _sourceHouseId_, *integer* _destinationHouseId_)

* GetNumHousingPermissions(*integer* _houseId_, *[HousePermissionUserGroup|#HousePermissionUserGroup]* _permissionCategory_)
** _Returns:_ *integer* _numPermissions_

* DoesHousingUserGroupHaveAccess(*integer* _houseId_, *[HousePermissionUserGroup|#HousePermissionUserGroup]* _permissionCategory_, *luaindex* _index_)
** _Returns:_ *bool* _hasAccess_

* IsHousingPermissionEnabled(*integer* _houseId_, *[HousePermissionUserGroup|#HousePermissionUserGroup]* _permissionCategory_, *luaindex* _index_, *[HousePermissionSetting|#HousePermissionSetting]* _setting_)
** _Returns:_ *bool* _isPermissionEnabled_

* IsHousingPermissionMarkedForDelete(*integer* _houseId_, *[HousePermissionUserGroup|#HousePermissionUserGroup]* _permissionCategory_, *luaindex* _index_)
** _Returns:_ *bool* _isMarkedForDelete_

* GetHousingUserGroupDisplayName(*integer* _houseId_, *[HousePermissionUserGroup|#HousePermissionUserGroup]* _permissionCategory_, *luaindex* _index_)
** _Returns:_ *string* _displayName_

* SetHousingPermissionPreset(*integer* _houseId_, *[HousePermissionUserGroup|#HousePermissionUserGroup]* _permissionCategory_, *luaindex* _index_, *[HousePermissionPresetSetting|#HousePermissionPresetSetting]* _preset_, *bool* _setForAllHouses_)

* RemoveHousingPermission(*integer* _houseId_, *[HousePermissionUserGroup|#HousePermissionUserGroup]* _permissionCategory_, *luaindex* _index_, *bool* _removeFromAllHouses_)

* AddHousingPermission(*integer* _houseId_, *[HousePermissionUserGroup|#HousePermissionUserGroup]* _permissionCategory_, *bool* _grantAccess_, *[HousePermissionPresetSetting|#HousePermissionPresetSetting]* _preset_, *bool* _addToAllHouses_, *string* _targetName_)

* GetHousingPermissionPresetType(*integer* _houseId_, *[HousePermissionUserGroup|#HousePermissionUserGroup]* _permissionCategory_, *luaindex* _index_)
** _Returns:_ *[HousePermissionPresetSetting|#HousePermissionPresetSetting]* _preset_

* SetHousingPrimaryHouse(*integer* _houseId_)

* GetHousingPrimaryHouse()
** _Returns:_ *integer* _houseId_

* GetCurrentZoneHouseId()
** _Returns:_ *integer* _houseId_

* GetCollectibleIdForHouse(*integer* _houseId_)
** _Returns:_ *integer* _collectibleId_

* GetNumFurnitureCategories()
** _Returns:_ *integer* _numCategories_

* GetFurnitureCategoryId(*luaindex* _categoryIndex_)
** _Returns:_ *integer* _categoryId_

* GetNumFurnitureSubcategories(*luaindex* _categoryIndex_)
** _Returns:_ *integer* _numSubcategories_

* GetFurnitureSubcategoryId(*luaindex* _categoryIndex_, *luaindex* _subcategoryIndex_)
** _Returns:_ *integer* _subcategoryId_

* GetFurnitureCategoryInfo(*integer* _furnitureCategoryId_)
** _Returns:_ *string* _displayName_, *integer:nilable* _parentCategoryId_

* GetFurnitureCategoryKeyboardIcons(*integer* _furnitureCategoryId_)
** _Returns:_ *textureName* _normalIcon_, *textureName* _pressedIcon_, *textureName* _mouseoverIcon_

* GetFurnitureCategoryGamepadIcon(*integer* _furnitureCategoryId_)
** _Returns:_ *textureName* _gamepadIcon_

* GetHouseZoneId(*integer* _houseId_)
** _Returns:_ *integer* _zoneId_

* GetHouseFoundInZoneId(*integer* _houseId_)
** _Returns:_ *integer* _zoneId_

* GetHouseCategoryType(*integer* _houseId_)
** _Returns:_ *[HouseCategoryType|#HouseCategoryType]* _houseType_

* GetHousePreviewBackgroundImage(*integer* _houseId_)
** _Returns:_ *textureName* _previewBackgroundFileIndex_

* GetNumHouseTemplatesForHouse(*integer* _houseId_)
** _Returns:_ *integer* _numHouseTemplates_

* GetHouseTemplateIdByIndexForHouse(*integer* _houseId_, *luaindex* _houseTemplateIndex_)
** _Returns:_ *integer* _houseTemplateId_

* IsPrimaryHouse(*integer* _houseId_)
** _Returns:_ *bool* _isPrimaryHouse_

* HousingEditorToggleSurfaceDragMode()

* HousingEditorIsSurfaceDragModeEnabled()
** _Returns:_ *bool* _enabled_

* HousingEditorRequestSelectedPlacement()
** _Returns:_ *[HousingRequestResult|#HousingRequestResult]* _result_

* HousingEditorRequestItemPlacement(*[Bag|#Bag]* _bagId_, *integer* _slotIndex_, *integer* _worldX_, *integer* _worldY_, *integer* _worldZ_, *number* _pitchRadians_, *number* _yawRadians_, *number* _rollRadians_)
** _Returns:_ *[HousingRequestResult|#HousingRequestResult]* _result_

* HousingEditorRequestCollectiblePlacement(*integer* _collectibleId_, *integer* _worldX_, *integer* _worldY_, *integer* _worldZ_, *number* _pitchRadians_, *number* _yawRadians_, *number* _rollRadians_)
** _Returns:_ *[HousingRequestResult|#HousingRequestResult]* _result_

* HousingEditorRequestChangePositionAndOrientation(*id64* _furnitureId_, *integer* _worldX_, *integer* _worldY_, *integer* _worldZ_, *number* _pitchRadians_, *number* _yawRadians_, *number* _rollRadians_)
** _Returns:_ *[HousingRequestResult|#HousingRequestResult]* _result_

* HousingEditorRequestChangePosition(*id64* _furnitureId_, *integer* _worldX_, *integer* _worldY_, *integer* _worldZ_)
** _Returns:_ *[HousingRequestResult|#HousingRequestResult]* _result_

* HousingEditorRequestChangeOrientation(*id64* _furnitureId_, *number* _pitchRadians_, *number* _yawRadians_, *number* _rollRadians_)
** _Returns:_ *[HousingRequestResult|#HousingRequestResult]* _result_

* HousingEditorGetFurnitureWorldPosition(*id64* _furnitureId_)
** _Returns:_ *integer* _worldX_, *integer* _worldY_, *integer* _worldZ_

* HousingEditorGetFurnitureWorldBounds(*id64* _furnitureId_)
** _Returns:_ *integer* _minWorldX_, *integer* _minWorldY_, *integer* _minWorldZ_, *integer* _maxWorldX_, *integer* _maxWorldY_, *integer* _maxWorldZ_

* HousingEditorGetFurnitureOrientation(*id64* _furnitureId_)
** _Returns:_ *number* _pitchRadians_, *number* _yawRadians_, *number* _rollRadians_

* HousingEditorRequestRemoveSelectedFurniture()
** _Returns:_ *[HousingRequestResult|#HousingRequestResult]* _result_

* HousingEditorRequestRemoveFurniture(*id64* _furnitureId_)
** _Returns:_ *[HousingRequestResult|#HousingRequestResult]* _result_

* HousingEditorGetSelectedFurnitureId()
** _Returns:_ *id64:nilable* _furnitureId_

* HousingEditorSelectFurnitureById(*id64* _furnitureId_)
** _Returns:_ *[HousingRequestResult|#HousingRequestResult]* _result_

* HousingEditorRotateFurniture(*[AxisTypes|#AxisTypes]* _axis_, *number* _magnitude_)

* HousingEditorPushFurniture(*number* _magnitude_)

* HousingEditorAlignFurnitureToSurface()

* HousingEditorCreateItemFurnitureForPlacement(*[Bag|#Bag]* _bagId_, *integer* _slotIndex_)
** _Returns:_ *bool* _success_

* HousingEditorCreateCollectibleFurnitureForPlacement(*integer* _collectibleId_)
** _Returns:_ *bool* _success_

* HousingEditorCreateFurnitureForPlacementFromMarketProduct(*integer* _marketProductId_)
** _Returns:_ *bool* _success_

* HousingEditorEndCurrentPreview()

* HousingEditorSelectTargettedFurniture()
** _Returns:_ *[HousingRequestResult|#HousingRequestResult]* _result_

* HousingEditorCanSelectTargettedFurniture()
** _Returns:_ *bool* _hasTarget_

* HousingEditorRequestModeChange(*[HousingEditorMode|#HousingEditorMode]* _mode_)

* GetHousingEditorMode()
** _Returns:_ *[HousingEditorMode|#HousingEditorMode]* _mode_

* GetHousingVisitorRole()
** _Returns:_ *[HousingVisitorRole|#HousingVisitorRole]* _role_

* GetNextPlacedHousingFurnitureId(*id64:nilable* _lastFurnitureId_)
** _Returns:_ *id64:nilable* _nextFurnitureId_

* GetPlacedHousingFurnitureInfo(*id64* _furnitureId_)
** _Returns:_ *string* _itemName_, *textureName* _icon_, *integer* _furnitureDataId_

* GetPlacedHousingFurnitureQuality(*id64* _furnitureId_)
** _Returns:_ *[ItemQuality|#ItemQuality]* _quality_

* HousingEditorCanPlaceCollectible(*integer* _collectibleId_)
** _Returns:_ *bool* _success_

* HousingEditorJumpToSafeLocation()

* GetHousingEditorConstants()
** _Returns:_ *number* _pushSpeedPerSecond_, *number* _rotationStepSizeRadians_, *integer* _numTicksPerSecondForRotationChange_

* HousingEditorApplyTemplate(*integer* _houseTemplateId_)

* GetCurrentHousePreviewTemplateId()
** _Returns:_ *integer* _houseTemplateId_

* HousingEditorPreviewTemplate(*integer* _houseTemplateId_)

* RequestOpenHouseStore()

* GetHouseFurnishingPlacementLimit(*integer* _houseId_, *[HousingFurnishingLimitType|#HousingFurnishingLimitType]* _limitType_)
** _Returns:_ *integer* _furnishingPlacementLimit_

* GetNumHouseFurnishingsPlaced(*[HousingFurnishingLimitType|#HousingFurnishingLimitType]* _limitType_)
** _Returns:_ *integer* _numFurnishingsPlaced_

* IsOwnerOfCurrentHouse()
** _Returns:_ *bool* _isOwner_

* HasAnyEditingPermissionsForCurrentHouse()
** _Returns:_ *bool* _canEdit_

* HasPermissionSettingForCurrentHouse(*[HousePermissionSetting|#HousePermissionSetting]* _setting_)
** _Returns:_ *bool* _hasSetting_

* GetFurnitureIdFromCollectibleId(*integer* _collectibleId_)
** _Returns:_ *id64* _furnitureId_

* GetCollectibleIdFromFurnitureId(*id64* _furnitureId_)
** _Returns:_ *integer* _collectibleId_

* GetItemUniqueIdFromFurnitureId(*id64* _furnitureId_)
** _Returns:_ *id64* _itemUniqueId_

* GetFurnitureIdFromItemUniqueId(*id64* _itemUniqueId_)
** _Returns:_ *id64* _furnitureId_

* SetNameplateKeyboardFont(*string* _fontName_, *[FontStyle|#FontStyle]* _fontStyle_)

* GetNameplateKeyboardFont()
** _Returns:_ *string* _fontName_, *[FontStyle|#FontStyle]* _fontStyle_

* SetNameplateGamepadFont(*string* _fontName_, *[FontStyle|#FontStyle]* _fontStyle_)

* GetNameplateGamepadFont()
** _Returns:_ *string* _fontName_, *[FontStyle|#FontStyle]* _fontStyle_

* GetNextActiveArtificialEffectId(*integer:nilable* _lastActiveEffectId_)
** _Returns:_ *integer:nilable* _nextActiveEffectId_

* GetArtificialEffectInfo(*integer* _artificialEffectId_)
** _Returns:_ *string* _displayName_, *textureName* _icon_, *[BuffEffectType|#BuffEffectType]* _effectType_, *integer* _sortOrder_

* GetArtificialEffectTooltipText(*integer* _artificialEffectId_)
** _Returns:_ *string* _tooltipText_


* GetItemId(*integer* _bagId_, *integer* _slotIndex_)
** _Returns:_ *integer* _itemId_


* GetItemFurnitureDataId(*integer* _bagId_, *integer* _slotIndex_)
** _Returns:_ *integer* _furnitureDataId_

* IsItemLinkPlaceableFurniture(*string* _itemLink_)
** _Returns:_ *bool* _isPlaceableFurniture_


* GetItemLinkRecipeIngredientInfo(*string* _itemLink_, *luaindex* _index_)
** _Returns:_ *string* _ingredientName_, *integer* _amountInInventoryAndBank_, *integer* _amountRequired_

* GetItemLinkRecipeIngredientItemLink(*string* _itemLink_, *luaindex* _index_, *[LinkStyle|#LinkStyle]* _linkStyle_)
** _Returns:_ *string* _link_

* GetItemLinkRecipeNumTradeskillRequirements(*string* _itemLink_)
** _Returns:_ *integer* _numTradeskillRequirements_

* GetItemLinkRecipeTradeskillRequirement(*string* _itemLink_, *luaindex* _tradeskillIndex_)
** _Returns:_ *[TradeskillType|#TradeskillType]* _tradeskill_, *integer* _requiredLevel_

* GetItemLinkRecipeCraftingSkillType(*string* _itemLink_)
** _Returns:_ *[TradeskillType|#TradeskillType]* _craftingSkillType_


* GetNumCrownGemsFromItemManualGemification(*[Bag|#Bag]* _bagId_, *integer* _slotIndex_)
** _Returns:_ *integer* _itemsRequired_, *integer* _gemsAwarded_

* IsItemFromCrownStore(*integer* _bagId_, *integer* _slotIndex_)
** _Returns:_ *bool* _isFromCrownStore_

* IsItemFromCrownCrate(*integer* _bagId_, *integer* _slotIndex_)
** _Returns:_ *bool* _isFromCrownCrate_

* GetCollectibleCategorySpecialization(*luaindex* _topLevelIndex_)
** _Returns:_ *[CollectibleCategorySpecialization|#CollectibleCategorySpecialization]* _specialization_

* GetTotalUnlockedCollectiblesByCategoryType(*[CollectibleCategoryType|#CollectibleCategoryType]* _collectibleCategoryType_)
** _Returns:_ *integer* _count_


* IsCollectibleOwnedByDefId(*integer* _collectibleId_)
** _Returns:_ *bool* _owned_

* GetCollectibleFurnitureDataId(*integer* _collectibleId_)
** _Returns:_ *integer* _furnitureDataId_

* GetCollectibleReferenceId(*integer* _collectibleId_)
** _Returns:_ *integer* _referenceId_

* GetNumMarketProductCategories *private* (*[MarketDisplayGroup|#MarketDisplayGroup]* _displayGroup_)
** _Returns:_ *integer* _numCategories_

* GetMarketProductCategoryInfo *private* (*[MarketDisplayGroup|#MarketDisplayGroup]* _displayGroup_, *luaindex* _topLevelIndex_)
** _Returns:_ *string* _name_, *integer* _numSubCatgories_, *integer* _numMarketProducts_, *textureName* _normalIcon_, *textureName* _pressedIcon_, *textureName* _mouseoverIcon_

* GetMarketProductSubCategoryInfo *private* (*[MarketDisplayGroup|#MarketDisplayGroup]* _displayGroup_, *luaindex* _topLevelIndex_, *luaindex* _subCategoryIndex_)
** _Returns:_ *string* _name_, *integer* _numMarketProducts_, *bool* _showGemIcon_

* GetMarketProductInfo *private* (*integer* _marketProductId_)
** _Returns:_ *string* _name_, *string* _description_, *textureName* _icon_, *bool* _isNew_, *bool* _isFeatured_

* GetMarketProductPricingByPresentation *private* (*integer* _marketProductId_, *luaindex:nilable* _presentationIndex_)
** _Returns:_ *[MarketCurrencyType|#MarketCurrencyType]* _currencyType_, *integer* _cost_, *bool* _hasDiscount_, *integer* _costAfterDiscount_, *integer* _discountPercent_

* GetMarketProductPresentationIds(*[MarketDisplayGroup|#MarketDisplayGroup]* _displayGroup_, *luaindex* _topLevelIndex_, *luaindex:nilable* _categoryIndex_, *luaindex* _marketProductIndex_)
** _Returns:_ *integer* _marketProductId_, *luaindex* _presentationIndex_

* GetMarketProductIcon *private* (*integer* _marketProductId_)
** _Returns:_ *textureName* _icon_

* GetMarketProductNumItems *private* (*integer* _marketProductId_)
** _Returns:_ *integer* _numItems_

* GetMarketProductInstantUnlockType *private* (*integer* _marketProductId_)
** _Returns:_ *[MarketInstantUnlock|#MarketInstantUnlock]* _instantUnlock_

* GetMarketProductPurchaseState *private* (*integer* _marketProductId_, *bool* _getCached_)
** _Returns:_ *[MarketProductPurchaseState|#MarketProductPurchaseState]* _purchaseState_

* DoesMarketProductContainDLC *private* (*integer* _marketProductId_)
** _Returns:_ *bool* _hasDLC_

* GetMarketProductEligibilityErrorStringIds *private* (*integer* _marketProductId_)
** _Uses variable returns..._
** _Returns:_ *integer* _errorStringId_

* GetMarketProductCompleteErrorStringId *private* (*integer* _marketProductId_)
** _Returns:_ *integer* _errorStringId_

* GetMarketProductItemInfo *private* (*integer* _marketProductId_)
** _Returns:_ *integer* _itemId_, *textureName* _iconFile_, *string* _name_, *[ItemQuality|#ItemQuality]* _itemQuality_, *integer* _requiredLevel_, *integer* _itemCount_

* GetMarketProductItemLink *private* (*integer* _marketProductId_, *[LinkStyle|#LinkStyle]* _linkStyle_)
** _Returns:_ *string* _link_

* GetMarketProductType *private* (*integer* _marketProductId_)
** _Returns:_ *[MarketProductType|#MarketProductType]* _productType_

* GetMarketProductDisplayName *private* (*integer* _marketProductId_)
** _Returns:_ *string* _displayName_

* GetMarketProductDescription *private* (*integer* _marketProductId_)
** _Returns:_ *string* _description_

* GetMarketProductNumChildren *private* (*integer* _marketProductId_)
** _Returns:_ *integer* _numChildren_

* GetMarketProductChildId *private* (*integer* _marketProductId_, *luaindex* _childIndex_)
** _Returns:_ *integer* _childId_

* GetMarketProductNumBundledProducts *private* (*integer* _marketProductId_)
** _Returns:_ *integer* _numBundledProducts_

* GetMarketProductStackCount *private* (*integer* _marketProductId_)
** _Returns:_ *integer* _stackCount_

* GetMarketProductFurnitureDataId *private* (*integer* _marketProductId_)
** _Returns:_ *integer* _furnitureDataId_

* GetMarketProductNumCollectibles *private* (*integer* _marketProductId_)
** _Returns:_ *integer* _numCollectibles_

* GetMarketProductCollectibleInfo *private* (*integer* _marketProductId_)
** _Returns:_ *integer* _collectibleId_, *textureName* _iconFile_, *string* _name_, *[CollectibleCategoryType|#CollectibleCategoryType]* _collectibleType_, *string* _description_, *bool* _owned_, *bool* _isPlaceholder_

* GetMarketProductCollectibleId *private* (*integer* _marketProductId_)
** _Returns:_ *integer* _collectibleId_

* GetMarketProductBundleHidesChildProducts *private* (*integer* _marketProductId_)
** _Returns:_ *bool* _hidesChildProducts_

* GetMarketProductCrownCrateId *private* (*integer* _marketProductId_)
** _Returns:_ *integer* _crateId_

* GetMarketProductHouseId *private* (*integer* _marketProductId_)
** _Returns:_ *integer* _houseId_

* GetMarketProductHouseTemplateId *private* (*integer* _marketProductId_)
** _Returns:_ *integer* _houseTemplateId_

* GetMarketProductTimeLeftInSeconds *private* (*integer* _marketProductId_)
** _Returns:_ *number* _timeLeftSeconds_

* OpenMarket *private* (*[MarketDisplayGroup|#MarketDisplayGroup]* _displayGroup_)

* GetMarketState *private* (*[MarketDisplayGroup|#MarketDisplayGroup]* _displayGroup_)
** _Returns:_ *[MarketState|#MarketState]* _marketState_

* GetMarketProductsForItem(*integer* _itemId_, *bool* _onlyActiveListings_)
** _Uses variable returns..._
** _Returns:_ *integer* _marketProductId_

* GetActiveMarketProductListingsForHouseTemplate(*integer* _houseTemplateId_, *[MarketDisplayGroup|#MarketDisplayGroup]* _displayGroup_)
** _Uses variable returns..._
** _Returns:_ *integer* _marketProductId_, *luaindex* _presentationIndex_

* OnMarketClose *private* ()

* CanPreviewMarketProduct(*integer* _marketProductId_)
** _Returns:_ *bool* _isPreviewable_

* GetNumMarketProductPreviewVariations(*integer* _marketProductId_)
** _Returns:_ *integer* _numVariations_

* GetMarketProductPreviewVariationDisplayName(*integer* _marketProductId_, *luaindex* _variation_)
** _Returns:_ *string* _variationDisplayName_

* PreviewMarketProduct(*integer* _marketProductId_, *luaindex* _variation_)

* IsPreviewingMarketProduct(*integer* _marketProductId_)
** _Returns:_ *bool* _isBeingPreviewed_

* OnMarketPurchaseMoreCrowns *private* ()

* GetMarketProductCrownCrateRewardInfo(*integer* _marketProductId_)
** _Returns:_ *string* _rewardName_, *string* _rewardTypeText_, *textureName* _cardFaceImage_, *textureName* _cardFaceFrameAccentImage_, *integer* _stackCount_

* GetMarketProductCrownCrateTierId(*integer* _marketProductId_)
** _Returns:_ *integer* _crownCrateTierId_

* GemifyItem(*integer* _itemId_, *integer* _howMany_)

* IsCurrentlyPreviewingCollectibleAsFurniture *private* (*integer* _collectibleId_)
** _Returns:_ *bool* _isPreviewing_



* IsCurrentlyPreviewingInventoryItemAsFurniture *private* (*[Bag|#Bag]* _bagId_, *integer* _slotIndex_)
** _Returns:_ *bool* _isPreviewing_



* IsCurrentlyPreviewingPlacedFurniture *private* (*id64* _furnitureId_)
** _Returns:_ *bool* _isPreviewing_


* PreviewCraftItem(*luaindex* _patternIndex_, *luaindex* _materialIndex_, *integer* _materialQuantity_, *luaindex* _styleIndex_, *luaindex* _traitIndex_, *bool* _useUniversalStyleItem_, *integer* _dyeBrushId_)

* PreviewCollectibleAsFurniture *private* (*integer* _collectibleDefId_)

* PreviewInventoryItemAsFurniture *private* (*[Bag|#Bag]* _bagId_, *integer* _slotIndex_)

* PreviewProvisionerItemAsFurniture *private* (*luaindex* _recipeListIndex_, *luaindex* _recipeIndex_)

* PreviewPlacedFurniture *private* (*id64* _furnitureId_)

* SetShowHiddenGear *private* (*bool* _showHiddenGear_)

* GetShowHiddenGear *private* ()
** _Returns:_ *bool* _showHiddenGear_

* ForceCancelMounted *private* ()

* RequestJumpToHouse(*integer* _houseId_)

* RequestJumpToHousePreviewWithTemplate(*integer* _houseTemplateId_)

* GetCraftingSkillName(*[TradeskillType|#TradeskillType]* _craftingSkillType_)
** _Returns:_ *string* _name_

* GetFurnitureCategoryName(*integer* _furnitureCategoryId_)
** _Returns:_ *string* _displayName_

* GetFurnitureDataCategoryInfo(*integer* _furnitureDataId_)
** _Returns:_ *integer:nilable* _categoryId_, *integer:nilable* _subcategoryId_



====================
functions - Removed (Including possible replacement functions)
====================


Code:

* IsPOIWayshrine(*luaindex* _zoneIndex_, *luaindex* _poiIndex_)
** _Returns:_ *bool* _isWayshrine_

* IsPOIPublicDungeon(*luaindex* _zoneIndex_, *luaindex* _poiIndex_)
** _Returns:_ *bool* _isPublicDungeon_

* IsPOIGroupDungeon(*luaindex* _zoneIndex_, *luaindex* _poiIndex_)
** _Returns:_ *bool* _isGroupDungeon_
---> Probably replaced by function:
 GetPOIType(*luaindex* _zoneIndex_, *luaindex* _poiIndex_)
** _Returns:_ *[PointOfInterestType|#PointOfInterestType]* _poiType_


* CanConvertItemStyleToImperial(*integer* _itemToBagId_, *integer* _itemToSlotIndex_)
** _Returns:_ *bool* _canConvert_
---> Probably replaced by function:
* CanConvertItemStyle(*integer* _itemToBagId_, *integer* _itemToSlotIndex_, *[ItemStyle|#ItemStyle]* _newStyle_)
** _Returns:_ *bool* _canConvert_


* ConvertItemStyleToImperial(*integer* _itemToBagId_, *integer* _itemToSlotIndex_)
---> Probably replaced by function:
* ConvertItemStyle(*integer* _itemToBagId_, *integer* _itemToSlotIndex_, *[ItemStyle|#ItemStyle]* _newStyle_)


* HousingEditorToggleSurfaceDragMode *private* ()



* HousingEditorRequestPlacement *private* ()



* HousingEditorRequestRemoveFurniture *private* (*id64* _furnitureId_)


* HousingEditorRotateFurniture *private* (*[AxisTypes|#AxisTypes]* _axis_, *number* _magnitude_)



* HousingEditorPushFurniture *private* (*number* _magnitude_)



* HousingEditorAlignFurnitureToSurface *private* ()


* HousingEditorPreviewItemFurniture *private* (*[Bag|#Bag]* _bagId_, *integer* _slotIndex_)
** _Returns:_ *bool* _success_



* HousingEditorPreviewCollectibleFurniture *private* (*integer* _collectibleId_)
** _Returns:_ *bool* _success_



* HousingEditorEndCurrentPreview *private* ()



* HousingEditorIsPreviewing *private* ()
** _Returns:_ *bool* _isPreview_



* HousingEditorSelectFurniture *private* ()



* HousingEditorCanSelectFurniture *private* ()



* HousingEditorRequestModeChange *private* (*[HousingEditorMode|#HousingEditorMode]* _mode_)



* GetHousingEditorMode *private* ()
** _Returns:_ *[HousingEditorMode|#HousingEditorMode]* _mode_



* GetNextPlacedHousingFurnitureId *private* (*id64:nilable* _lastItemId_)
** _Returns:_ *id64:nilable* _nextItemId_



* GetPlacedHousingFurnitureInfo *private* (*id64* _itemId_)
** _Returns:_ *string* _itemName_, *textureName* _icon_



* HousingEditorCanPlaceCollectible *private* (*integer* _collectibleId_)
** _Returns:_ *bool* _success_



* HousingEditorJumpToSafeLocation *private* ()



====================
functions - Changed
====================


Code:

* GetUnitBuffInfo(*string* _unitTag_, *luaindex* _buffIndex_)
** _Returns:_ *string* _buffName_, *number* _timeStarted_, *number* _timeEnding_, *integer* _buffSlot_, *integer* _stackCount_, *textureName* _iconFilename_, *string* _buffType_, *[BuffEffectType|#BuffEffectType]* _effectType_, *[AbilityType|#AbilityType]* _abilityType_, *[StatusEffectType|#StatusEffectType]* _statusEffectType_, *integer* _abilityId_, *bool* _canClickOff_, *bool* _castByPlayer_


* GetGameCameraPickpocketingBonusInfo()
** _Returns:_ *bool* _inBonus_, *bool* _isHostile_, *integer* _percentChance_, *[PickpocketDifficultyType|#PickpocketDifficultyType]* _difficulty_, *bool* _isEmpty_, *[ProspectivePickpocketResult|#ProspectivePickpocketResult]* _prospectiveResult_, *string* _monsterSocialClassString_, *[MonsterSocialClass|#MonsterSocialClass]* _monsterSocialClass_


* GetPOIType(*luaindex* _zoneIndex_, *luaindex* _poiIndex_)
** _Returns:_ *[PointOfInterestType|#PointOfInterestType]* _poiType_

* GetPOIMapInfo(*luaindex* _zoneIndex_, *luaindex* _poiIndex_)
** _Returns:_ *number* _normalizedX_, *number* _normalizedZ_, *[MapDisplayPinType|#MapDisplayPinType]* _poiPinType_, *textureName* _icon_, *bool* _isShownInCurrentMap_, *bool* _linkedCollectibleIsLocked_


* GetPOIMapInfo(*luaindex* _zoneIndex_, *luaindex* _poiIndex_)
** _Returns:_ *number* _normalizedX_, *number* _normalizedZ_, *[MapDisplayPinType|#MapDisplayPinType]* _poiType_, *textureName* _icon_, *bool* _isShownInCurrentMap_, *bool* _linkedCollectibleIsLocked_


* GetStoreCurrencyTypes()
** _Returns:_ *bool* _usesMoney_, *bool* _usesAlliancePoints_, *bool* _usesTelvarStones_, *bool* _usesWritVouchers_


* GetLootItemInfo(*luaindex* _lootIndex_)
** _Returns:_ *integer* _lootId_, *string* _name_, *textureName* _icon_, *integer* _count_, *integer* _quality_, *integer* _value_, *bool* _isQuest_, *bool* _stolen_, *[LootItemType|#LootItemType]* _itemType_


* GetLoreCategoryInfo(*luaindex* _categoryIndex_)
** _Returns:_ *string* _name_, *integer* _numCollections_, *integer* _categoryId_

* GetLoreCollectionInfo(*luaindex* _categoryIndex_, *luaindex* _collectionIndex_)
** _Returns:_ *string* _name_, *string* _description_, *integer* _numKnownBooks_, *integer* _totalBooks_, *bool* _hidden_, *textureName* _gamepadIcon_, *integer* _collectionId_

* GetLoreBookInfo(*luaindex* _categoryIndex_, *luaindex* _collectionIndex_, *luaindex* _bookIndex_)
** _Returns:_ *string* _title_, *textureName* _icon_, *bool* _known_, *integer* _bookId_


* GetRecipeInfo(*luaindex* _recipeListIndex_, *luaindex* _recipeIndex_)
** _Returns:_ *bool* _known_, *string* _name_, *integer* _numIngredients_, *integer* _provisionerLevelReq_, *integer* _qualityReq_, *[ProvisionerSpecialIngredientType|#ProvisionerSpecialIngredientType]* _specialIngredientType_, *[TradeskillType|#TradeskillType]* _requiredCraftingStationType_



=======
[Added]
=======


Code:

h5. ActivityFinderStatus
* ACTIVITY_FINDER_STATUS_FORMING_GROUP
* ACTIVITY_FINDER_STATUS_READY_CHECK

h5. BackgroundListFilterTarget
* BACKGROUND_LIST_FILTER_TARGET_BAG_SLOT
* BACKGROUND_LIST_FILTER_TARGET_COLLECTIBLE_ID
* BACKGROUND_LIST_FILTER_TARGET_FURNITURE_ID
* BACKGROUND_LIST_FILTER_TARGET_MARKET_PRODUCT_ID


h5. BackgroundListFilterType
* BACKGROUND_LIST_FILTER_TYPE_DESCRIPTION
* BACKGROUND_LIST_FILTER_TYPE_NAME
* BACKGROUND_LIST_FILTER_TYPE_SEARCH_KEYWORDS


h5. BuffsSettings
* BUFFS_SETTING_DEBUFFS_ENABLED_FOR_TARGET_FROM_OTHERS


h5. ChromaBlendMode
* CHROMA_BLEND_MODE_ADDITIVE
* CHROMA_BLEND_MODE_COLOR_DODGE
* CHROMA_BLEND_MODE_NORMAL


h5. ChromaCustomEffectGridStyle
* CHROMA_CUSTOM_EFFECT_GRID_STYLE_ANIMATED
* CHROMA_CUSTOM_EFFECT_GRID_STYLE_FULL
* CHROMA_CUSTOM_EFFECT_GRID_STYLE_STATIC_CELLS


h5. ChromaCustomEffectType
* CHROMA_CUSTOM_EFFECT_TYPE_RING
* CHROMA_CUSTOM_EFFECT_TYPE_SINGLE_COLOR
* CHROMA_CUSTOM_EFFECT_TYPE_SINGLE_COLOR_FADING


h5. ChromaDeviceType
* CHROMA_DEVICE_TYPE_HEADSET
* CHROMA_DEVICE_TYPE_INVALID
* CHROMA_DEVICE_TYPE_KEYBOARD
* CHROMA_DEVICE_TYPE_KEYPAD
* CHROMA_DEVICE_TYPE_MOUSE
* CHROMA_DEVICE_TYPE_MOUSEPAD
* CHROMA_DEVICE_TYPE_SYSTEM


h5. ChromaHeadsetEffectType
* CHROMA_HEADSET_EFFECT_TYPE_BREATHING
* CHROMA_HEADSET_EFFECT_TYPE_CUSTOM
* CHROMA_HEADSET_EFFECT_TYPE_INVALID
* CHROMA_HEADSET_EFFECT_TYPE_NONE
* CHROMA_HEADSET_EFFECT_TYPE_SPECTRUMCYCLING
* CHROMA_HEADSET_EFFECT_TYPE_STATIC


h5. ChromaKeyboardBreathingEffectType
* CHROMA_KEYBOARD_BREATHING_EFFECT_TYPE_INVALID
* CHROMA_KEYBOARD_BREATHING_EFFECT_TYPE_RANDOM_COLORS
* CHROMA_KEYBOARD_BREATHING_EFFECT_TYPE_TWO_COLORS


h5. ChromaKeyboardEffectType
* CHROMA_KEYBOARD_EFFECT_TYPE_BREATHING
* CHROMA_KEYBOARD_EFFECT_TYPE_CUSTOM
* CHROMA_KEYBOARD_EFFECT_TYPE_CUSTOM_KEY
* CHROMA_KEYBOARD_EFFECT_TYPE_INVALID
* CHROMA_KEYBOARD_EFFECT_TYPE_NONE
* CHROMA_KEYBOARD_EFFECT_TYPE_REACTIVE
* CHROMA_KEYBOARD_EFFECT_TYPE_RESERVED
* CHROMA_KEYBOARD_EFFECT_TYPE_SPECTRUMCYCLING
* CHROMA_KEYBOARD_EFFECT_TYPE_STATIC
* CHROMA_KEYBOARD_EFFECT_TYPE_WAVE


h5. ChromaKeyboardKey
* CHROMA_KEYBOARD_KEY_A
* CHROMA_KEYBOARD_KEY_B
* CHROMA_KEYBOARD_KEY_BACKSPACE
* CHROMA_KEYBOARD_KEY_C
* CHROMA_KEYBOARD_KEY_CAPSLOCK
* CHROMA_KEYBOARD_KEY_D
* CHROMA_KEYBOARD_KEY_DELETE
* CHROMA_KEYBOARD_KEY_DOWN
* CHROMA_KEYBOARD_KEY_E
* CHROMA_KEYBOARD_KEY_END
* CHROMA_KEYBOARD_KEY_ENTER
* CHROMA_KEYBOARD_KEY_ESC
* CHROMA_KEYBOARD_KEY_EUR_1_KOR_2
* CHROMA_KEYBOARD_KEY_EUR_2_KOR_3
* CHROMA_KEYBOARD_KEY_F
* CHROMA_KEYBOARD_KEY_F1
* CHROMA_KEYBOARD_KEY_F10
* CHROMA_KEYBOARD_KEY_F11
* CHROMA_KEYBOARD_KEY_F12
* CHROMA_KEYBOARD_KEY_F2
* CHROMA_KEYBOARD_KEY_F3
* CHROMA_KEYBOARD_KEY_F4
* CHROMA_KEYBOARD_KEY_F5
* CHROMA_KEYBOARD_KEY_F6
* CHROMA_KEYBOARD_KEY_F7
* CHROMA_KEYBOARD_KEY_F8
* CHROMA_KEYBOARD_KEY_F9
* CHROMA_KEYBOARD_KEY_FN
* CHROMA_KEYBOARD_KEY_G
* CHROMA_KEYBOARD_KEY_H
* CHROMA_KEYBOARD_KEY_HOME
* CHROMA_KEYBOARD_KEY_I
* CHROMA_KEYBOARD_KEY_INSERT
* CHROMA_KEYBOARD_KEY_INVALID
* CHROMA_KEYBOARD_KEY_J
* CHROMA_KEYBOARD_KEY_JPN_1_KOR_1
* CHROMA_KEYBOARD_KEY_JPN_2_KOR_4
* CHROMA_KEYBOARD_KEY_JPN_3_KOR_5
* CHROMA_KEYBOARD_KEY_JPN_4_KOR_6
* CHROMA_KEYBOARD_KEY_JPN_5_KOR_7
* CHROMA_KEYBOARD_KEY_K
* CHROMA_KEYBOARD_KEY_L
* CHROMA_KEYBOARD_KEY_LALT
* CHROMA_KEYBOARD_KEY_LCTRL
* CHROMA_KEYBOARD_KEY_LEFT
* CHROMA_KEYBOARD_KEY_LSHIFT
* CHROMA_KEYBOARD_KEY_LWIN
* CHROMA_KEYBOARD_KEY_M
* CHROMA_KEYBOARD_KEY_MACRO1
* CHROMA_KEYBOARD_KEY_MACRO2
* CHROMA_KEYBOARD_KEY_MACRO3
* CHROMA_KEYBOARD_KEY_MACRO4
* CHROMA_KEYBOARD_KEY_MACRO5
* CHROMA_KEYBOARD_KEY_N
* CHROMA_KEYBOARD_KEY_NUM0
* CHROMA_KEYBOARD_KEY_NUM1
* CHROMA_KEYBOARD_KEY_NUM2
* CHROMA_KEYBOARD_KEY_NUM3
* CHROMA_KEYBOARD_KEY_NUM4
* CHROMA_KEYBOARD_KEY_NUM5
* CHROMA_KEYBOARD_KEY_NUM6
* CHROMA_KEYBOARD_KEY_NUM7
* CHROMA_KEYBOARD_KEY_NUM8
* CHROMA_KEYBOARD_KEY_NUM9
* CHROMA_KEYBOARD_KEY_NUMLOCK
* CHROMA_KEYBOARD_KEY_NUMPAD0
* CHROMA_KEYBOARD_KEY_NUMPAD1
* CHROMA_KEYBOARD_KEY_NUMPAD2
* CHROMA_KEYBOARD_KEY_NUMPAD3
* CHROMA_KEYBOARD_KEY_NUMPAD4
* CHROMA_KEYBOARD_KEY_NUMPAD5
* CHROMA_KEYBOARD_KEY_NUMPAD6
* CHROMA_KEYBOARD_KEY_NUMPAD7
* CHROMA_KEYBOARD_KEY_NUMPAD8
* CHROMA_KEYBOARD_KEY_NUMPAD9
* CHROMA_KEYBOARD_KEY_NUMPAD_ADD
* CHROMA_KEYBOARD_KEY_NUMPAD_DECIMAL
* CHROMA_KEYBOARD_KEY_NUMPAD_DIVIDE
* CHROMA_KEYBOARD_KEY_NUMPAD_ENTER
* CHROMA_KEYBOARD_KEY_NUMPAD_MULTIPLY
* CHROMA_KEYBOARD_KEY_NUMPAD_SUBTRACT
* CHROMA_KEYBOARD_KEY_O
* CHROMA_KEYBOARD_KEY_OEM_1
* CHROMA_KEYBOARD_KEY_OEM_10
* CHROMA_KEYBOARD_KEY_OEM_11
* CHROMA_KEYBOARD_KEY_OEM_2
* CHROMA_KEYBOARD_KEY_OEM_3
* CHROMA_KEYBOARD_KEY_OEM_4
* CHROMA_KEYBOARD_KEY_OEM_5
* CHROMA_KEYBOARD_KEY_OEM_6
* CHROMA_KEYBOARD_KEY_OEM_7
* CHROMA_KEYBOARD_KEY_OEM_8
* CHROMA_KEYBOARD_KEY_OEM_9
* CHROMA_KEYBOARD_KEY_P
* CHROMA_KEYBOARD_KEY_PAGEDOWN
* CHROMA_KEYBOARD_KEY_PAGEUP
* CHROMA_KEYBOARD_KEY_PAUSE
* CHROMA_KEYBOARD_KEY_PRINTSCREEN
* CHROMA_KEYBOARD_KEY_Q
* CHROMA_KEYBOARD_KEY_R
* CHROMA_KEYBOARD_KEY_RALT
* CHROMA_KEYBOARD_KEY_RCTRL
* CHROMA_KEYBOARD_KEY_RIGHT
* CHROMA_KEYBOARD_KEY_RMENU
* CHROMA_KEYBOARD_KEY_RSHIFT
* CHROMA_KEYBOARD_KEY_S
* CHROMA_KEYBOARD_KEY_SCROLL
* CHROMA_KEYBOARD_KEY_SPACE
* CHROMA_KEYBOARD_KEY_T
* CHROMA_KEYBOARD_KEY_TAB
* CHROMA_KEYBOARD_KEY_U
* CHROMA_KEYBOARD_KEY_UP
* CHROMA_KEYBOARD_KEY_V
* CHROMA_KEYBOARD_KEY_W
* CHROMA_KEYBOARD_KEY_X
* CHROMA_KEYBOARD_KEY_Y
* CHROMA_KEYBOARD_KEY_Z


h5. ChromaKeyboardReactiveEffectDuration
* CHROMA_KEYBOARD_REACTIVE_EFFECT_DURATION_INVALID
* CHROMA_KEYBOARD_REACTIVE_EFFECT_DURATION_LONG
* CHROMA_KEYBOARD_REACTIVE_EFFECT_DURATION_MEDIUM
* CHROMA_KEYBOARD_REACTIVE_EFFECT_DURATION_NONE
* CHROMA_KEYBOARD_REACTIVE_EFFECT_DURATION_SHORT


h5. ChromaKeyboardWaveEffectDirection
* CHROMA_KEYBOARD_WAVE_EFFECT_DIRECTION_INVALID
* CHROMA_KEYBOARD_WAVE_EFFECT_DIRECTION_LEFT_TO_RIGHT
* CHROMA_KEYBOARD_WAVE_EFFECT_DIRECTION_NONE
* CHROMA_KEYBOARD_WAVE_EFFECT_DIRECTION_RIGHT_TO_LEFT


h5. ChromaKeypadBreathingEffectType
* CHROMA_KEYPAD_BREATHING_EFFECT_TYPE_INVALID
* CHROMA_KEYPAD_BREATHING_EFFECT_TYPE_RANDOM_COLORS
* CHROMA_KEYPAD_BREATHING_EFFECT_TYPE_TWO_COLORS


h5. ChromaKeypadEffectType
* CHROMA_KEYPAD_EFFECT_TYPE_BREATHING
* CHROMA_KEYPAD_EFFECT_TYPE_CUSTOM
* CHROMA_KEYPAD_EFFECT_TYPE_INVALID
* CHROMA_KEYPAD_EFFECT_TYPE_NONE
* CHROMA_KEYPAD_EFFECT_TYPE_REACTIVE
* CHROMA_KEYPAD_EFFECT_TYPE_SPECTRUMCYCLING
* CHROMA_KEYPAD_EFFECT_TYPE_STATIC
* CHROMA_KEYPAD_EFFECT_TYPE_WAVE


h5. ChromaKeypadReactiveEffectDuration
* CHROMA_KEYPAD_REACTIVE_EFFECT_DURATION_INVALID
* CHROMA_KEYPAD_REACTIVE_EFFECT_DURATION_LONG
* CHROMA_KEYPAD_REACTIVE_EFFECT_DURATION_MEDIUM
* CHROMA_KEYPAD_REACTIVE_EFFECT_DURATION_NONE
* CHROMA_KEYPAD_REACTIVE_EFFECT_DURATION_SHORT


h5. ChromaKeypadWaveEffectDirection
* CHROMA_KEYPAD_WAVE_EFFECT_DIRECTION_INVALID
* CHROMA_KEYPAD_WAVE_EFFECT_DIRECTION_LEFT_TO_RIGHT
* CHROMA_KEYPAD_WAVE_EFFECT_DIRECTION_NONE
* CHROMA_KEYPAD_WAVE_EFFECT_DIRECTION_RIGHT_TO_LEFT


h5. ChromaMouseBreathingEffectType
* CHROMA_MOUSE_BREATHING_EFFECT_TYPE_INVALID
* CHROMA_MOUSE_BREATHING_EFFECT_TYPE_ONE_COLOR
* CHROMA_MOUSE_BREATHING_EFFECT_TYPE_RANDOM_COLORS
* CHROMA_MOUSE_BREATHING_EFFECT_TYPE_TWO_COLORS


h5. ChromaMouseEffectType
* CHROMA_MOUSE_EFFECT_TYPE_BLINKING
* CHROMA_MOUSE_EFFECT_TYPE_BREATHING
* CHROMA_MOUSE_EFFECT_TYPE_CUSTOM
* CHROMA_MOUSE_EFFECT_TYPE_CUSTOM2
* CHROMA_MOUSE_EFFECT_TYPE_INVALID
* CHROMA_MOUSE_EFFECT_TYPE_NONE
* CHROMA_MOUSE_EFFECT_TYPE_REACTIVE
* CHROMA_MOUSE_EFFECT_TYPE_SPECTRUMCYCLING
* CHROMA_MOUSE_EFFECT_TYPE_STATIC
* CHROMA_MOUSE_EFFECT_TYPE_WAVE


h5. ChromaMouseLED2
* CHROMA_MOUSE_LED2_BACKLIGHT
* CHROMA_MOUSE_LED2_BOTTOM1
* CHROMA_MOUSE_LED2_BOTTOM2
* CHROMA_MOUSE_LED2_BOTTOM3
* CHROMA_MOUSE_LED2_BOTTOM4
* CHROMA_MOUSE_LED2_BOTTOM5
* CHROMA_MOUSE_LED2_INVALID
* CHROMA_MOUSE_LED2_LEFT_SIDE1
* CHROMA_MOUSE_LED2_LEFT_SIDE2
* CHROMA_MOUSE_LED2_LEFT_SIDE3
* CHROMA_MOUSE_LED2_LEFT_SIDE4
* CHROMA_MOUSE_LED2_LEFT_SIDE5
* CHROMA_MOUSE_LED2_LEFT_SIDE6
* CHROMA_MOUSE_LED2_LEFT_SIDE7
* CHROMA_MOUSE_LED2_LOGO
* CHROMA_MOUSE_LED2_RIGHT_SIDE1
* CHROMA_MOUSE_LED2_RIGHT_SIDE2
* CHROMA_MOUSE_LED2_RIGHT_SIDE3
* CHROMA_MOUSE_LED2_RIGHT_SIDE4
* CHROMA_MOUSE_LED2_RIGHT_SIDE5
* CHROMA_MOUSE_LED2_RIGHT_SIDE6
* CHROMA_MOUSE_LED2_RIGHT_SIDE7
* CHROMA_MOUSE_LED2_SCROLLWHEEL


h5. ChromaMouseReactiveEffectDuration
* CHROMA_MOUSE_REACTIVE_EFFECT_DURATION_LONG
* CHROMA_MOUSE_REACTIVE_EFFECT_DURATION_MEDIUM
* CHROMA_MOUSE_REACTIVE_EFFECT_DURATION_NONE
* CHROMA_MOUSE_REACTIVE_EFFECT_DURATION_SHORT


h5. ChromaMouseWaveEffectDirection
* CHROMA_MOUSE_WAVE_EFFECT_DIRECTION_BACK_TO_FRONT
* CHROMA_MOUSE_WAVE_EFFECT_DIRECTION_FRONT_TO_BACK


h5. ChromaMousepadBreathingEffectType
* CHROMA_MOUSEPAD_BREATHING_EFFECT_TYPE_INVALID
* CHROMA_MOUSEPAD_BREATHING_EFFECT_TYPE_RANDOM_COLORS
* CHROMA_MOUSEPAD_BREATHING_EFFECT_TYPE_TWO_COLORS


h5. ChromaMousepadEffectType
* CHROMA_MOUSEPAD_EFFECT_TYPE_BREATHING
* CHROMA_MOUSEPAD_EFFECT_TYPE_CUSTOM
* CHROMA_MOUSEPAD_EFFECT_TYPE_INVALID
* CHROMA_MOUSEPAD_EFFECT_TYPE_NONE
* CHROMA_MOUSEPAD_EFFECT_TYPE_SPECTRUMCYCLING
* CHROMA_MOUSEPAD_EFFECT_TYPE_STATIC
* CHROMA_MOUSEPAD_EFFECT_TYPE_WAVE


h5. ChromaMousepadLED
* CHROMA_MOUSEPAD_LED_BOTTOM1
* CHROMA_MOUSEPAD_LED_BOTTOM2
* CHROMA_MOUSEPAD_LED_BOTTOM3
* CHROMA_MOUSEPAD_LED_BOTTOM4
* CHROMA_MOUSEPAD_LED_BOTTOM5
* CHROMA_MOUSEPAD_LED_INVALID
* CHROMA_MOUSEPAD_LED_LEFT_SIDE1
* CHROMA_MOUSEPAD_LED_LEFT_SIDE2
* CHROMA_MOUSEPAD_LED_LEFT_SIDE3
* CHROMA_MOUSEPAD_LED_LEFT_SIDE4
* CHROMA_MOUSEPAD_LED_LEFT_SIDE5
* CHROMA_MOUSEPAD_LED_RIGHT_SIDE1
* CHROMA_MOUSEPAD_LED_RIGHT_SIDE2
* CHROMA_MOUSEPAD_LED_RIGHT_SIDE3
* CHROMA_MOUSEPAD_LED_RIGHT_SIDE4
* CHROMA_MOUSEPAD_LED_RIGHT_SIDE5


h5. ChromaMousepadWaveEffectDirection
* CHROMA_MOUSEPAD_WAVE_EFFECT_DIRECTION_INVALID
* CHROMA_MOUSEPAD_WAVE_EFFECT_DIRECTION_LEFT_TO_RIGHT
* CHROMA_MOUSEPAD_WAVE_EFFECT_DIRECTION_NONE
* CHROMA_MOUSEPAD_WAVE_EFFECT_DIRECTION_RIGHT_TO_LEFT


h5. CollectibleCategorySpecialization
* COLLECTIBLE_CATEGORY_SPECIALIZATION_DLC
* COLLECTIBLE_CATEGORY_SPECIALIZATION_HOUSING
* COLLECTIBLE_CATEGORY_SPECIALIZATION_NONE


h5. CollectibleCategoryType
* COLLECTIBLE_CATEGORY_TYPE_FURNITURE
* COLLECTIBLE_CATEGORY_TYPE_HOUSE
* COLLECTIBLE_CATEGORY_TYPE_MEMENTO

h5. CollectibleUsageBlockReason
* COLLECTIBLE_USAGE_BLOCK_REASON_PLACED_IN_HOUSE

h5. CrownGemBalanceReason
* CROWN_GEM_BALANCE_REASON_ITEMS_GEMMIFIED
* CROWN_GEM_BALANCE_REASON_NOTIFY

h5. CurrencyColors
* CURRENCY_COLOR_WRIT_VOUCHERS


h5. CurrencyType
* CURT_WRIT_VOUCHERS

h5. GemifiableFilterType
* GEMIFIABLE_FILTER_TYPE_ALL

h5. GuildKioskGuildInfoResult
* GUILD_KIOSK_GUILD_INFO_RESULT_NO_INFO_FOR_ANY_GUILD

h5. HousePermissionDefaultAccessSetting
* HOUSE_PERMISSION_DEFAULT_ACCESS_SETTING_DECORATOR
* HOUSE_PERMISSION_DEFAULT_ACCESS_SETTING_NO_ACCESS
* HOUSE_PERMISSION_DEFAULT_ACCESS_SETTING_VISITOR


h5. HousePermissionOptionsCategories
* HOUSE_PERMISSION_OPTIONS_CATEGORIES_BANLIST
* HOUSE_PERMISSION_OPTIONS_CATEGORIES_GENERAL
* HOUSE_PERMISSION_OPTIONS_CATEGORIES_GUILD_BANLIST
* HOUSE_PERMISSION_OPTIONS_CATEGORIES_GUILD_VISITORS
* HOUSE_PERMISSION_OPTIONS_CATEGORIES_SOCIAL_OPTIONS
* HOUSE_PERMISSION_OPTIONS_CATEGORIES_TEMPLATES
* HOUSE_PERMISSION_OPTIONS_CATEGORIES_VISITORS


h5. HousePermissionPresetSetting
* HOUSE_PERMISSION_PRESET_SETTING_DECORATOR
* HOUSE_PERMISSION_PRESET_SETTING_INVALID
* HOUSE_PERMISSION_PRESET_SETTING_VISITOR


h5. HousePermissionResult
* HOUSE_PERMISSION_RESULT_FAILED_TO_ADD
* HOUSE_PERMISSION_RESULT_FAILED_TO_MODIFY
* HOUSE_PERMISSION_RESULT_FAILED_TO_REMOVE
* HOUSE_PERMISSION_RESULT_INIT
* HOUSE_PERMISSION_RESULT_SUCCESS


h5. HousePermissionSetting
* HOUSE_PERMISSION_SETTING_BOOL_SECTION_END
* HOUSE_PERMISSION_SETTING_MOVE_FURNITURE
* HOUSE_PERMISSION_SETTING_PLACE_TEMP_ITEMS
* HOUSE_PERMISSION_SETTING_USE_ASSISTANTS
* HOUSE_PERMISSION_SETTING_USE_CRAFTING_STATIONS
* HOUSE_PERMISSION_SETTING_USE_OBJECTS


h5. HousePermissionUserGroup
* HOUSE_PERMISSION_USER_GROUP_GENERAL
* HOUSE_PERMISSION_USER_GROUP_GUILD
* HOUSE_PERMISSION_USER_GROUP_INDIVIDUAL


h5. HousingEditorMode
* HOUSING_EDITOR_MODE_BROWSE
* HOUSING_EDITOR_MODE_DISABLED
* HOUSING_EDITOR_MODE_PLACEMENT
* HOUSING_EDITOR_MODE_SELECTION


h5. HousingFurnishingLimitType
* HOUSING_FURNISHING_LIMIT_TYPE_FURNISHING
* HOUSING_FURNISHING_LIMIT_TYPE_OTHER
* HOUSING_FURNISHING_LIMIT_TYPE_TROPHY


h5. HousingLoadPermissionsResult
* HOUSING_LOAD_PERMISSIONS_RESULT_NO_CHANGE
* HOUSING_LOAD_PERMISSIONS_RESULT_SUCCESS


h5. HousingVisitorRole
* HOUSING_VISITOR_ROLE_EDITOR
* HOUSING_VISITOR_ROLE_HOME_SHOW
* HOUSING_VISITOR_ROLE_PREVIEW


h5. ItemFilterType
* ITEMFILTERTYPE_FURNISHING
* ITEMFILTERTYPE_HOUSE_WITH_TEMPLATE

h5. ItemType
* ITEMTYPE_FURNISHING
* ITEMTYPE_MASTER_WRIT

h5. LFGActivity
* LFG_ACTIVITY_BATTLE_GROUND
* LFG_ACTIVITY_HOME_SHOW
* LFG_ACTIVITY_INVALID

h5. LFGGroupType
* LFG_GROUP_TYPE_NONE

h5. LeaderboardType
* LEADERBOARD_TYPE_HOUSE

h5. LootItemType
* LOOT_TYPE_WRIT_VOUCHERS

h5. MarketDisplayGroup
* MARKET_DISPLAY_GROUP_CROWN_STORE
* MARKET_DISPLAY_GROUP_HOUSE_EDITOR
* MARKET_DISPLAY_GROUP_HOUSE_PREVIEW


h5. MarketProductType
* MARKET_PRODUCT_TYPE_HOUSING


h5. MarketPurchasableResult
* MARKET_PURCHASE_RESULT_HOUSING_ALREADY_OWNED
* MARKET_PURCHASE_RESULT_INVALID_MARKET_HOUSING

h5. MonsterSocialClass
* MONSTER_SOCIAL_CLASS_ALCHEMIST
* MONSTER_SOCIAL_CLASS_ARTISAN
* MONSTER_SOCIAL_CLASS_ASSASSIN
* MONSTER_SOCIAL_CLASS_BARD
* MONSTER_SOCIAL_CLASS_BEGGAR
* MONSTER_SOCIAL_CLASS_CHEF
* MONSTER_SOCIAL_CLASS_CIVIL_SERVANT
* MONSTER_SOCIAL_CLASS_CLOTHIER
* MONSTER_SOCIAL_CLASS_COMMONER
* MONSTER_SOCIAL_CLASS_CRAFTER
* MONSTER_SOCIAL_CLASS_CULTIST
* MONSTER_SOCIAL_CLASS_DRUNKARD
* MONSTER_SOCIAL_CLASS_FARMER
* MONSTER_SOCIAL_CLASS_FIGHTER
* MONSTER_SOCIAL_CLASS_FISHER
* MONSTER_SOCIAL_CLASS_GATHERER
* MONSTER_SOCIAL_CLASS_GHOST
* MONSTER_SOCIAL_CLASS_GUARD
* MONSTER_SOCIAL_CLASS_HEALER
* MONSTER_SOCIAL_CLASS_HUNTER
* MONSTER_SOCIAL_CLASS_LABORER
* MONSTER_SOCIAL_CLASS_MAGE
* MONSTER_SOCIAL_CLASS_MERCHANT
* MONSTER_SOCIAL_CLASS_NOBLE
* MONSTER_SOCIAL_CLASS_NOT_APPLICABLE
* MONSTER_SOCIAL_CLASS_NUDE
* MONSTER_SOCIAL_CLASS_ORDINATOR
* MONSTER_SOCIAL_CLASS_OUTLAW
* MONSTER_SOCIAL_CLASS_PILGRIM
* MONSTER_SOCIAL_CLASS_PRIEST
* MONSTER_SOCIAL_CLASS_PRISONER
* MONSTER_SOCIAL_CLASS_PROVISIONER
* MONSTER_SOCIAL_CLASS_SAILOR
* MONSTER_SOCIAL_CLASS_SCHOLAR
* MONSTER_SOCIAL_CLASS_SERVANT
* MONSTER_SOCIAL_CLASS_SKELETON
* MONSTER_SOCIAL_CLASS_SLAVE
* MONSTER_SOCIAL_CLASS_SMITH
* MONSTER_SOCIAL_CLASS_SOLDIER
* MONSTER_SOCIAL_CLASS_STUDENT
* MONSTER_SOCIAL_CLASS_THIEF
* MONSTER_SOCIAL_CLASS_UNDEFINED
* MONSTER_SOCIAL_CLASS_VAMPIRE
* MONSTER_SOCIAL_CLASS_WARRIOR
* MONSTER_SOCIAL_CLASS_WATCHMEN
* MONSTER_SOCIAL_CLASS_WEREWOLF
* MONSTER_SOCIAL_CLASS_WOODWORKER


h5. PointOfInterestType
* POI_TYPE_HOUSE

h5. ProvisionerSpecialIngredientType
* PROVISIONER_SPECIAL_INGREDIENT_TYPE_FURNISHING

h5. RecipeCraftingSystem
* RECIPE_CRAFTING_SYSTEM_ALCHEMY_FORMULAE
* RECIPE_CRAFTING_SYSTEM_BLACKSMITHING_DIAGRAMS
* RECIPE_CRAFTING_SYSTEM_CLOTHIER_PATTERNS
* RECIPE_CRAFTING_SYSTEM_ENCHANTING_SCHEMATICS
* RECIPE_CRAFTING_SYSTEM_INVALID
* RECIPE_CRAFTING_SYSTEM_PROVISIONING_DESIGNS
* RECIPE_CRAFTING_SYSTEM_WOODWORKING_BLUEPRINTS


h5. RewardType
* REWARD_TYPE_WRIT_VOUCHERS


h5. SpecializedCollectibleType
* SPECIALIZED_COLLECTIBLE_TYPE_BUST
* SPECIALIZED_COLLECTIBLE_TYPE_NONE


h5. SpecializedItemType
* SPECIALIZED_ITEMTYPE_ADDITIVE
* SPECIALIZED_ITEMTYPE_ARMOR
* SPECIALIZED_ITEMTYPE_ARMOR_BOOSTER
* SPECIALIZED_ITEMTYPE_ARMOR_TRAIT
* SPECIALIZED_ITEMTYPE_AVA_REPAIR
* SPECIALIZED_ITEMTYPE_BLACKSMITHING_BOOSTER
* SPECIALIZED_ITEMTYPE_BLACKSMITHING_MATERIAL
* SPECIALIZED_ITEMTYPE_BLACKSMITHING_RAW_MATERIAL
* SPECIALIZED_ITEMTYPE_CLOTHIER_BOOSTER
* SPECIALIZED_ITEMTYPE_CLOTHIER_MATERIAL
* SPECIALIZED_ITEMTYPE_CLOTHIER_RAW_MATERIAL
* SPECIALIZED_ITEMTYPE_CONTAINER
* SPECIALIZED_ITEMTYPE_COSTUME
* SPECIALIZED_ITEMTYPE_CROWN_ITEM
* SPECIALIZED_ITEMTYPE_CROWN_REPAIR
* SPECIALIZED_ITEMTYPE_DISGUISE
* SPECIALIZED_ITEMTYPE_DYE_STAMP
* SPECIALIZED_ITEMTYPE_ENCHANTING_RUNE_ASPECT
* SPECIALIZED_ITEMTYPE_ENCHANTING_RUNE_ESSENCE
* SPECIALIZED_ITEMTYPE_ENCHANTING_RUNE_POTENCY
* SPECIALIZED_ITEMTYPE_ENCHANTMENT_BOOSTER
* SPECIALIZED_ITEMTYPE_FISH
* SPECIALIZED_ITEMTYPE_FLAVORING
* SPECIALIZED_ITEMTYPE_FURNISHING_CRAFTING_STATION
* SPECIALIZED_ITEMTYPE_FURNISHING_LIGHT
* SPECIALIZED_ITEMTYPE_FURNISHING_ORNAMENTAL
* SPECIALIZED_ITEMTYPE_FURNISHING_SEATING
* SPECIALIZED_ITEMTYPE_FURNISHING_TARGET_DUMMY
* SPECIALIZED_ITEMTYPE_GLYPH_ARMOR
* SPECIALIZED_ITEMTYPE_GLYPH_JEWELRY
* SPECIALIZED_ITEMTYPE_GLYPH_WEAPON
* SPECIALIZED_ITEMTYPE_LOCKPICK
* SPECIALIZED_ITEMTYPE_LURE
* SPECIALIZED_ITEMTYPE_MASTER_WRIT
* SPECIALIZED_ITEMTYPE_MOUNT
 SPECIALIZED_ITEMTYPE_PLUG
* SPECIALIZED_ITEMTYPE_POISON
* SPECIALIZED_ITEMTYPE_POISON_BASE
* SPECIALIZED_ITEMTYPE_POTION
* SPECIALIZED_ITEMTYPE_POTION_BASE
* SPECIALIZED_ITEMTYPE_RAW_MATERIAL
* SPECIALIZED_ITEMTYPE_RECIPE_ALCHEMY_FORMULA_FURNISHING
* SPECIALIZED_ITEMTYPE_RECIPE_BLACKSMITHING_DIAGRAM_FURNISHING
* SPECIALIZED_ITEMTYPE_RECIPE_CLOTHIER_PATTERN_FURNISHING
* SPECIALIZED_ITEMTYPE_RECIPE_ENCHANTING_SCHEMATIC_FURNISHING
* SPECIALIZED_ITEMTYPE_RECIPE_PROVISIONING_DESIGN_FURNISHING
* SPECIALIZED_ITEMTYPE_RECIPE_PROVISIONING_STANDARD_DRINK
* SPECIALIZED_ITEMTYPE_RECIPE_PROVISIONING_STANDARD_FOOD
* SPECIALIZED_ITEMTYPE_RECIPE_WOODWORKING_BLUEPRINT_FURNISHING
* SPECIALIZED_ITEMTYPE_SIEGE_BALLISTA
* SPECIALIZED_ITEMTYPE_SIEGE_BATTLE_STANDARD
* SPECIALIZED_ITEMTYPE_SIEGE_CATAPULT
* SPECIALIZED_ITEMTYPE_SIEGE_GRAVEYARD
* SPECIALIZED_ITEMTYPE_SIEGE_MONSTER
* SPECIALIZED_ITEMTYPE_SIEGE_OIL
* SPECIALIZED_ITEMTYPE_SIEGE_RAM
* SPECIALIZED_ITEMTYPE_SIEGE_TREBUCHET
* SPECIALIZED_ITEMTYPE_SIEGE_UNIVERSAL
* SPECIALIZED_ITEMTYPE_SOUL_GEM
* SPECIALIZED_ITEMTYPE_SPELLCRAFTING_TABLET
* SPECIALIZED_ITEMTYPE_SPICE
* SPECIALIZED_ITEMTYPE_STYLE_MATERIAL
* SPECIALIZED_ITEMTYPE_TABARD
* SPECIALIZED_ITEMTYPE_TOOL
* SPECIALIZED_ITEMTYPE_TRASH
* SPECIALIZED_ITEMTYPE_TREASURE
* SPECIALIZED_ITEMTYPE_WEAPON
* SPECIALIZED_ITEMTYPE_WEAPON_BOOSTER
* SPECIALIZED_ITEMTYPE_WEAPON_TRAIT
* SPECIALIZED_ITEMTYPE_WOODWORKING_BOOSTER
* SPECIALIZED_ITEMTYPE_WOODWORKING_MATERIAL
* SPECIALIZED_ITEMTYPE_WOODWORKING_RAW_MATERIAL

h5. StoreEntryType
* STORE_ENTRY_TYPE_HOUSE_WITH_TEMPLATE


h5. WeaponConfigType
* WEAPON_CONFIG_TYPE_BOW
* WEAPON_CONFIG_TYPE_DESTRO_STAFF
* WEAPON_CONFIG_TYPE_DUAL_WIELD
* WEAPON_CONFIG_TYPE_FIRE_STAFF
* WEAPON_CONFIG_TYPE_FROST_STAFF
* WEAPON_CONFIG_TYPE_LIGHTNING_STAFF
* WEAPON_CONFIG_TYPE_NONE
* WEAPON_CONFIG_TYPE_ONE_HANDED
* WEAPON_CONFIG_TYPE_ONE_HAND_AND_SHIELD
* WEAPON_CONFIG_TYPE_RESTO_STAFF
* WEAPON_CONFIG_TYPE_TWO_HANDED
* WEAPON_CONFIG_TYPE_UNARMED


h5. HousingRequestResult
* HOUSING_REQUEST_RESULT_ALREADY_APPLYING_TEMPLATE
* HOUSING_REQUEST_RESULT_ALREADY_BEING_MOVED
* HOUSING_REQUEST_RESULT_CHEAP_COLLECTIBLE_PLACE_LIMIT
* HOUSING_REQUEST_RESULT_EXPENSIVE_COLLECTIBLE_PLACE_LIMIT
* HOUSING_REQUEST_RESULT_FURNITURE_ALREADY_SELECTED
* HOUSING_REQUEST_RESULT_HOME_SHOW_NOT_ENOUGH_PLACED
* HOUSING_REQUEST_RESULT_INCORRECT_MODE
* HOUSING_REQUEST_RESULT_INVALID_TEMPLATE
* HOUSING_REQUEST_RESULT_INVENTORY_REMOVE_FAILED
* HOUSING_REQUEST_RESULT_IN_SAFE_ZONE
* HOUSING_REQUEST_RESULT_ITEM_PLACE_LIMIT
* HOUSING_REQUEST_RESULT_ITEM_REMOVE_FAILED
* HOUSING_REQUEST_RESULT_ITEM_REMOVE_FAILED_INVENTORY_FULL
* HOUSING_REQUEST_RESULT_LISTED
* HOUSING_REQUEST_RESULT_MOVE_FAILED
* HOUSING_REQUEST_RESULT_NOT_HOME_SHOW
* HOUSING_REQUEST_RESULT_NO_DUPLICATES
* HOUSING_REQUEST_RESULT_NO_SUCH_FURNITURE
* HOUSING_REQUEST_RESULT_PERMISSION_FAILED
* HOUSING_REQUEST_RESULT_PERSONAL_TEMP_ITEM_PLACE_LIMIT
* HOUSING_REQUEST_RESULT_PLACE_FAILED
* HOUSING_REQUEST_RESULT_REMOVE_FAILED
* HOUSING_REQUEST_RESULT_REQUEST_IN_PROGRESS
* HOUSING_REQUEST_RESULT_SET_STATE_FAILED
* HOUSING_REQUEST_RESULT_SUCCESS
* HOUSING_REQUEST_RESULT_TOTAL_TEMP_ITEM_PLACE_LIMIT
* HOUSING_REQUEST_RESULT_UNKNOWN_FAILURE

h5. JumpResult
* JUMP_RESULT_JUMP_FAILED_DONT_OWN_HOUSE
* JUMP_RESULT_JUMP_FAILED_NO_HOUSE_PERMISSION

h5. MsgInteractType
* CHATTER_START_USE_FURNITURE
* CHATTER_END_USE_FURNITURE


h5. SocialActionResult
* SOCIAL_RESULT_CANT_JUMP_TARGET_IN_HOMESHOW
* SOCIAL_RESULT_CANT_JUMP_TARGET_PREVIEWING_HOUSE
* SOCIAL_RESULT_NO_HOUSE_PERMISSION
* SOCIAL_RESULT_PERMISSION_SAVE_FAILURE


h5. StoreFailure
* STORE_FAILURE_NOT_ENOUGH_WRIT_VOUCHERS


h5. TradingHouseFilterType
* TRADING_HOUSE_FILTER_TYPE_FURNITURE_CATEGORY
* TRADING_HOUSE_FILTER_TYPE_FURNITURE_SUBCATEGORY
* TRADING_HOUSE_FILTER_TYPE_SPECIALIZED_ITEM


h5. KeyCode
* KEY_GAMEPAD_BOTH_DPAD_RIGHT_BUTTON_2

h5. MapDisplayPinType
* MAP_PIN_TYPE_FLAG_ATTACKED



=======
REMOVED
=======

Code:

h5. CollectibleCategoryType
* COLLECTIBLE_CATEGORY_TYPE_TROPHY


h5. InteractionType
* INTERACTION_CORPSE_SUMMONER
* INTERACTION_SOUL_HEALER

h5. LFGActivity
* LFG_ACTIVITY_DEPRECATED1
* LFG_ACTIVITY_DEPRECATED2

h5. StoreEntryType
* STORE_ENTRY_TYPE_DEPRECATED

h5. ZoneGroupDisplayType
* ZONE_GROUP_DISPLAY_TYPE_DEPRECATED1
* ZONE_GROUP_DISPLAY_TYPE_DUNGEON
* ZONE_GROUP_DISPLAY_TYPE_GROUP
* ZONE_GROUP_DISPLAY_TYPE_GROUP_DELVE
* ZONE_GROUP_DISPLAY_TYPE_NONE


sirinsidiator 01/03/17 10:47 AM

Quote:

Originally Posted by ZOS_ChipHilseberg (Post 29277)
Attached is the updated documentation for PTS. You can ask any questions you have about the changes here. The summary notes have not been written yet. Are those useful to you guys or would you rather we address the changes in a Q+A format on this thread?

Thanks a lot for the early post. Really appreciate it :)
I usually read the summary notes once and then forget about them. Most info comes from the difference in the ESOUIDocumentation for me, so I am fine with discussing them here instead.

Ayantir 01/03/17 11:02 AM

Thank you Chip!

A nice guy has scripted your whole doc and we're able to do some nice output now. So it should be okay. If the API Natch potes is delayed of 1 week and only in english, it won't be a drama.

ZOS_ChipHilseberg 01/03/17 01:33 PM

Quote:

Originally Posted by Ayantir (Post 29280)
Thank you Chip!

A nice guy has scripted your whole doc and we're able to do some nice output now. So it should be okay. If the API Natch potes is delayed of 1 week and only in english, it won't be a drama.

:banana: Nice Guy! :banana:

Sounomi 01/03/17 05:52 PM

Code:

* CanConvertItemStyle(*integer* _itemToBagId_, *integer* _itemToSlotIndex_, *[ItemStyle|#ItemStyle]* _newStyle_)
** _Returns:_ *bool* _canConvert_

* ConvertItemStyle(*integer* _itemToBagId_, *integer* _itemToSlotIndex_, *[ItemStyle|#ItemStyle]* _newStyle_)

Gonna guess these won't do much yet since there's no mention of adding the ability to convert to other styles besides Imperial in the patch notes. :(

ZOS_ChipHilseberg 01/04/17 08:42 AM

Quote:

Originally Posted by Sounomi (Post 29282)
Code:

* CanConvertItemStyle(*integer* _itemToBagId_, *integer* _itemToSlotIndex_, *[ItemStyle|#ItemStyle]* _newStyle_)
** _Returns:_ *bool* _canConvert_

* ConvertItemStyle(*integer* _itemToBagId_, *integer* _itemToSlotIndex_, *[ItemStyle|#ItemStyle]* _newStyle_)

Gonna guess these won't do much yet since there's no mention of adding the ability to convert to other styles besides Imperial in the patch notes. :(

That is correct.

ZOS_ChipHilseberg 01/04/17 04:00 PM

The scroll control stack overflow is a known issue that will be fixed in the next PTS patch.

Sounomi 01/04/17 09:04 PM

What about the API version? I noticed its still giving 100017 as the version number and none of my add-ons were marked as out of date.

ZOS_ChipHilseberg 01/05/17 09:02 AM

Quote:

Originally Posted by Sounomi (Post 29299)
What about the API version? I noticed its still giving 100017 as the version number and none of my add-ons were marked as out of date.

This will also be updated in the next version.

Weolo 01/05/17 11:44 AM

Amazing changes, I love it.
I am looking forward to trying out
GetItemLinkRecipeCraftingSkillType()
PreviewCraftItem()

Odd how GetCraftingSkillName(craftingType) has come back
Which is more future proof, ZO_GetCraftingSkillName(craftingType) or GetCraftingSkillName(craftingType) ?

ZOS_ChipHilseberg 01/05/17 01:33 PM

Quote:

Originally Posted by Weolo (Post 29311)
Amazing changes, I love it.
I am looking forward to trying out
GetItemLinkRecipeCraftingSkillType()
PreviewCraftItem()

Odd how GetCraftingSkillName(craftingType) has come back
Which is more future proof, ZO_GetCraftingSkillName(craftingType) or GetCraftingSkillName(craftingType) ?

You can use either of them equally I'd say. I think we exposed it to unify the client and lua code for getting a tradeskill name.

votan 01/06/17 02:31 PM

Hi Chip,

IsSecureRenderModeEnabled() is not available (in opposite to the doc file) and IsInPreviewMode() is private.

Is this intended?

Baertram 01/06/17 04:09 PM

Quote:

Originally Posted by votan (Post 29325)
Hi Chip,

IsSecureRenderModeEnabled() is not available (in opposite to the doc file) and IsInPreviewMode() is private.

Is this intended?

IsSecureRenderModeEnabled() is a function of the WINDOW_MANAGER. Someone just pointed my nose on it :D


@Chip About the preview functions:
It would be really great if you could remove them from "private".
Or is there a better way to check if someone is previewing his house etc.?

IsInPreviewMode
IsCurrentlyPreviewing
IsCurrentlyPreviewingCollectibleAsFurniture
IsCurrentlyPreviewingInventoryItemAsFurniture
IsCurrentlyPreviewingPlacedFurniture
CanSpinPreviewCharacter

ZOS_ChipHilseberg 01/06/17 05:18 PM

Quote:

Originally Posted by Baertram (Post 29327)
IsSecureRenderModeEnabled() is a function of the WINDOW_MANAGER. Someone just pointed my nose on it :D


@Chip About the preview functions:
It would be really great if you could remove them from "private".
Or is there a better way to check if someone is previewing his house etc.?

IsInPreviewMode
IsCurrentlyPreviewing
IsCurrentlyPreviewingCollectibleAsFurniture
IsCurrentlyPreviewingInventoryItemAsFurniture
IsCurrentlyPreviewingPlacedFurniture
CanSpinPreviewCharacter

We'll be removing private from these among others.

votan 01/07/17 04:31 AM

Quote:

Originally Posted by Baertram (Post 29327)
IsSecureRenderModeEnabled() is a function of the WINDOW_MANAGER. Someone just pointed my nose on it :D

Ahjo, was late :D

@Chip: Ah, ok. Thanks.

BTW: Your addon compatibility aliases have a typo.
Code:

IsPOIWayshrine = function(zoneIndex, poiIndex)
    return GetPoiType(zoneIndex, poiIndex) == POI_TYPE_WAYSHRINE
end

The others, too. It is GetPOIType. But on the other side, that way one realizes that a function is obsolete. It may a good idea to wait with releasing aliases and/or posting an obsolete warning at PTS.

sirinsidiator 01/07/17 05:25 AM

Or maybe add a set of logging function that write directly to the interface log without impacting the game's performance too much.
LogError, LogWarning, LogInfo, LogDebug + SetLogLevel which defaults to LOG_LEVEL_WARNING on live and LOG_LEVEL_DEBUG on pts.

The log functions could also write which addon called them, at which time, and from which line e.g:
Code:

2017-01-07 12:23:45:678 [ingame] something, ingame/something/somefile.lua:123
2017-01-07 12:23:46:042 [AwesomeGuildStore] another, AwesomeGuildStore/StartUp.lua:42

Maybe also add a function SetLogStack(level, boolean[, addonName]) which allows for requesting the stacktrace to be printed after every message and an optional boolean on the log methods themselves for triggering it for individual messages.

The alias functions could then all include a LogInfo("deprecated method, consider replacing it").

This could help a lot with debugging addons and also during development where putting a d() call into a loop can cause a client crash.

sirinsidiator 01/07/17 10:13 AM

I just played around with the new housing APIs and so far I found that the placed furniture only returns a furnitureDataId to allow identifying items of the same type.
Maybe you could also return the itemLink from GetPlacedHousingFurnitureInfo or provide a method GetItemLinkFromFurnitureDataId? That way it would be easier possible to show which items are missing when trying to deserialize a serialized house, because the itemName won't work cross-language and searching all existing items for the right furnitureDataId is a bit of an overkill.

I also noticed that there is still no function to restore a stringified id64 into a proper id64. It shouldn't be necessary for this case, but it would still be nice to have in some other cases.

EDIT: after some more tinkering I found that furnitureDataId is not what I thought it was and multiple itemIds can have the same furnitureDataId. It also looks like there is more than one furniture item with the same name, which means there is currently no way to map furniture to an item based on the data returned from the housing API.

sirinsidiator 01/08/17 06:42 AM

I managed to make it work somewhat.
But there are a few major drawbacks.
  • I currently rely on SHARED_FURNITURE:GetPlaceableFurnitureCategoryTreeData():GetNumEntriesRecursive() and filter items by name in order to find what I need, but that means that it does not work across languages and it also requires that there is no search text placed in the housing editor (although I probably can clear that from code).
  • It looks like some items do not return an itemName from GetPlacedHousingFurnitureInfo which makes it impossible to restore them with this method. (Haven't checked which items are affected yet)
  • In order to find out which method I should use to place an item (HousingEditorRequestItemPlacement or HousingEditorRequestCollectiblePlacement) I use GetCollectibleInfo and check if the name is an empty string, but I am not confident that it is always correct. I believe if I get an itemLink it would be easy to determine by comparing the itemType.
  • This method is slow and sends a lot of individual requests to the server. Maybe you could add a HousingEditorBeginItemPlacement, HousingEditorCommitItemPlacement and HousingEditorRollbackItemPlacement and in the same fashion a HousingEditorBeginItemRemoval, HousingEditorCommitItemRemoval and HousingEditorRollbackItemRemoval to collect these calls locally and then do a bulk update. For removal you could also just add a HousingEditorClearHouse method which removes everything.

sirinsidiator 01/08/17 09:43 AM

I just tried to get the new trading house filters to work and found that some things just don't work (yet?).
First I tried to list some furniture and recipes in a guild store and use the vanilla interface. When searching for All items, the 3 furniture items and 6 recipes show up as expected, but when I select the new furnishings category and search for all furnishings / items and recipes I only see 2 recipes instead of the expected 9 items.
I then looked through other categories and noticed that the crafting category also has a new subcategory for furnishing formula which show the remaining 4 recipes, but the furniture items never showed besides in the main all items category.

Next I tried to add the filter to AwesomeGuildStore and found that there is a typo in the definition of ZO_TRADING_HOUSE_FILTER_FURNITURE_ITEM_TYPE_DATA in line 385 in tradinghouse_filter_shared.lua. The constant for SPECIALIZED_ITEMTYPE_RECIPE_BLACKSMITHING_FURNISHING_DIAGRAM should be SPECIALIZED_ITEMTYPE_RECIPE_BLACKSMITHING_DIAGRAM_FURNISHING instead.
When I use the ITEMTYPE_FURNISHING I can find all furnishing items as expected and the recipes also show in the category for recipes, but I cannot get the TRADING_HOUSE_FILTER_TYPE_SPECIALIZED_ITEM to work in order to split them up further.

From my standpoint it looks as if the trading house changes are not yet finished. :(

I also tried to figure out what I can do with the increased filter parameter limit and while 16 is already a good improvement, it is still too low. I need at least 20 parameters to be able to add an all category for all crafting materials. The issue where I cannot show shields in the all category for armor would also need a specialized item type for shields that is not linked with weapons and can be combined with the armor category.

Woeler 01/08/17 09:46 AM

Hey guys,

Does anyone have the style item index for all the new styles? I was looking here but I think people are still working on getting everything updated -> http://wiki.esoui.com/StyleItemIndex

Thanks!

sirinsidiator 01/09/17 03:33 PM

I was playing around with the new Master Writs to see what local filters I can do for them in the guildstore and noticed that there is a crash bug. I won't post the details here (already sent a bug report ingame), but please fix that before it goes live.

I also thought a bit more about the housing export addon I am making and I think with the possibility to save furniture arrangements it is important that you tie GetNextPlacedHousingFurnitureId() into the housing permission system, otherwise some random visitor could copy my hard work and claim it as their own (exactly what I am doing right now with Solinur's work :D).
For example you could always return nil when the player does not have decorator permissions or is not the owner himself, that way the homeowner can decide who may copy his work. I think this is especially important when/if the housing leaderboard becomes available.

Quote:

Originally Posted by Woeler (Post 29342)
Hey guys,

Does anyone have the style item index for all the new styles? I was looking here but I think people are still working on getting everything updated -> http://wiki.esoui.com/StyleItemIndex

Thanks!

Look again. I just updated it.

ZOS_ChipHilseberg 01/09/17 03:56 PM

Quote:

Originally Posted by sirinsidiator (Post 29341)
I just tried to get the new trading house filters to work and found that some things just don't work (yet?).
First I tried to list some furniture and recipes in a guild store and use the vanilla interface. When searching for All items, the 3 furniture items and 6 recipes show up as expected, but when I select the new furnishings category and search for all furnishings / items and recipes I only see 2 recipes instead of the expected 9 items.
I then looked through other categories and noticed that the crafting category also has a new subcategory for furnishing formula which show the remaining 4 recipes, but the furniture items never showed besides in the main all items category.

Next I tried to add the filter to AwesomeGuildStore and found that there is a typo in the definition of ZO_TRADING_HOUSE_FILTER_FURNITURE_ITEM_TYPE_DATA in line 385 in tradinghouse_filter_shared.lua. The constant for SPECIALIZED_ITEMTYPE_RECIPE_BLACKSMITHING_FURNISHING_DIAGRAM should be SPECIALIZED_ITEMTYPE_RECIPE_BLACKSMITHING_DIAGRAM_FURNISHING instead.
When I use the ITEMTYPE_FURNISHING I can find all furnishing items as expected and the recipes also show in the category for recipes, but I cannot get the TRADING_HOUSE_FILTER_TYPE_SPECIALIZED_ITEM to work in order to split them up further.

From my standpoint it looks as if the trading house changes are not yet finished. :(

I also tried to figure out what I can do with the increased filter parameter limit and while 16 is already a good improvement, it is still too low. I need at least 20 parameters to be able to add an all category for all crafting materials. The issue where I cannot show shields in the all category for armor would also need a specialized item type for shields that is not linked with weapons and can be combined with the armor category.

The typos are now fixed. The other problems you are seeing are likely because many items haven't had their specialized item type set yet. Those should be complete shortly.

I'll increase the search term limits to 24 and we'll see how that plays. The shield problem will takes adding some new specialized item types which won't happen until the next major release.

ZOS_ChipHilseberg 01/09/17 04:26 PM

Quote:

Originally Posted by sirinsidiator (Post 29340)
I managed to make it work somewhat.
But there are a few major drawbacks.
  • I currently rely on SHARED_FURNITURE:GetPlaceableFurnitureCategoryTreeData():GetNumEntriesRecursive() and filter items by name in order to find what I need, but that means that it does not work across languages and it also requires that there is no search text placed in the housing editor (although I probably can clear that from code).
  • It looks like some items do not return an itemName from GetPlacedHousingFurnitureInfo which makes it impossible to restore them with this method. (Haven't checked which items are affected yet)
  • In order to find out which method I should use to place an item (HousingEditorRequestItemPlacement or HousingEditorRequestCollectiblePlacement) I use GetCollectibleInfo and check if the name is an empty string, but I am not confident that it is always correct. I believe if I get an itemLink it would be easy to determine by comparing the itemType.
  • This method is slow and sends a lot of individual requests to the server. Maybe you could add a HousingEditorBeginItemPlacement, HousingEditorCommitItemPlacement and HousingEditorRollbackItemPlacement and in the same fashion a HousingEditorBeginItemRemoval, HousingEditorCommitItemRemoval and HousingEditorRollbackItemRemoval to collect these calls locally and then do a bulk update. For removal you could also just add a HousingEditorClearHouse method which removes everything.

Please provide an example of an item without a name when you find one.

As for the placement functions, those trigger an inventory operation and also broadcast a new piece of furniture to everyone when they are used. We have to be careful so that if an addon was made that moved or placed the full contents of the house very frequently it would not grind the servers to a halt. The current mechanism for this is using the message rate limits, but we could potentially build a more robust system for queuing these things in the future.

Weolo 01/09/17 04:37 PM

Are you aware that the Ebony motif items are showing as motif number 36 but that's also the same motif number as Dark brotherhood already uses?
Do you know what motif number Ebony is planned to be?

Sounomi 01/09/17 05:25 PM

I've noticed that furnishings bought from the crown store have an item value of 0 while they're non-crown store counterparts have their full item value. It makes sense and all but the problem is that when you try to get the item's value via its item link, it returns the full item value regardless. This not only causes some issues with add-ons that view inventory via item links but it also causes the gamepad interface to list the wrong item value in the tooltips.

sirinsidiator 01/10/17 03:53 AM

Quote:

Originally Posted by ZOS_ChipHilseberg (Post 29348)
The typos are now fixed. The other problems you are seeing are likely because many items haven't had their specialized item type set yet. Those should be complete shortly.

I'll increase the search term limits to 24 and we'll see how that plays. The shield problem will takes adding some new specialized item types which won't happen until the next major release.

Looking forward to these changes! Thank you very much. :)

Quote:

Originally Posted by ZOS_ChipHilseberg (Post 29349)
Please provide an example of an item without a name when you find one.

As for the placement functions, those trigger an inventory operation and also broadcast a new piece of furniture to everyone when they are used. We have to be careful so that if an addon was made that moved or placed the full contents of the house very frequently it would not grind the servers to a halt. The current mechanism for this is using the message rate limits, but we could potentially build a more robust system for queuing these things in the future.

I went back to the same house on Sunday, but the items all showed their name then. Either it was just a display bug in my addon or it depended on some other condition besides the item itself. I'll keep an eye on it either way.

I don't know how your server handles these calls, but in other server based systems a bulk update usually has a performance advantage because of the reduced overhead. I'd think this holds especially true in a case where I would send 1000 individual requests to place all furniture or remove it. I don't expect that it will be added with this update, but I'd love to see an improved way to do this in the future.

p.s. please add a return value for itemLink to GetPlacedHousingFurnitureInfo, or add a method GetPlacedHousingFurnitureItemLink

Solinur 01/10/17 04:51 AM

Quote:

Originally Posted by Weolo (Post 29350)
Are you aware that the Ebony motif items are showing as motif number 36 but that's also the same motif number as Dark brotherhood already uses?
Do you know what motif number Ebony is planned to be?

This happens with every patch. We have to wait and see waht the new numbers are.

QuadroTony 01/13/17 08:38 AM

hey Chip! will you adress this guild sales history bug in this update?

http://www.esoui.com/forums/showthread.php?t=6695

ZOS_ChipHilseberg 01/13/17 08:39 AM

Quote:

Originally Posted by QuadroTony (Post 29379)
hey Chip! will you adress this guild sales history bug in this update?

http://www.esoui.com/forums/showthread.php?t=6695

Yes, it has been fixed.

sirinsidiator 01/14/17 03:14 PM

I just finished the first version of SaveHouse. Unfortunately I could only test it partially, because in the current PTS version HousingEditorRequestItemPlacement produces a crash to desktop whenever I call it for any item in my inventory in any house. I really hope that you can fix that before Homestead goes live. :)

votan 01/15/17 01:16 PM

Skin Changer Motif Chapter Books broken
 
@Chip:
The IsItemLinkBookKnown function returns false on the skin changer motif chapter books. The PTS template knowns all styles. The full books are ok.
Two of them have typos in the german description.

item ids
[73855]
[73856]
[73857]
[73858]<-typo
[73859]
[73860]
[73861]
[73862]
[73863]
[73864]
[73865]<-typo
[73866]
[73867]
[73868]

And GetItemLinkItemType does not return 61=SPECIALIZED_ITEMTYPE_RACIAL_STYLE_MOTIF_CHAPTER for any chapter book (the second return value).
Is this correct?

sirinsidiator 01/15/17 02:16 PM

While getting AGS ready for Homestead I noticed that the TRADING_HOUSE_FILTER_TYPE_FURNITURE_CATEGORY shows entries for mounts, pets and assistants in the vanilla interface. Seems a bit pointless, or do you plan to make them tradeable? :D

It also looks like the filter limit is still set to 8. Will the change make it in with the patch tomorrow?

And last but not least there is a typo in addoncompatibilityaliases.lua: GetItemLinkRankRequirement should actually be GetItemLinkRecipeRankRequirement. ;)

Weolo 01/16/17 12:06 PM

Quote:

Originally Posted by votan (Post 29391)
@Chip:
The IsItemLinkBookKnown function returns false on the skin changer motif chapter books. The PTS template knowns all styles. The full books are ok.
Two of them have typos in the german description.

item ids
[73855]
[73856]
[73857]
[73858]<-typo
[73859]
[73860]
[73861]
[73862]
[73863]
[73864]
[73865]<-typo
[73866]
[73867]
[73868]

And GetItemLinkItemType does not return 61=SPECIALIZED_ITEMTYPE_RACIAL_STYLE_MOTIF_CHAPTER for any chapter book (the second return value).
Is this correct?

I also noticed IsItemLinkBookKnown() was broken on PTS for skin changer motif.

I tried GetItemLinkItemType() but never got it to return anything about motif chapters :(

I should add that I checked on PTS today (16th Jan) and now my live characters have been copied over the skin changer motif is behaving correctly.

ZOS_ChipHilseberg 01/16/17 01:15 PM

Quote:

Originally Posted by sirinsidiator (Post 29384)
I just finished the first version of SaveHouse. Unfortunately I could only test it partially, because in the current PTS version HousingEditorRequestItemPlacement produces a crash to desktop whenever I call it for any item in my inventory in any house. I really hope that you can fix that before Homestead goes live. :)

This will be fixed on the fourth PTS update.

Rhyono 01/18/17 09:13 PM

I just noticed that GetNumChampionXPInChampionPoint(champLevel) can only be called by players that are past level 50. Could this be changed?

Ayantir 01/19/17 01:23 AM

What would be the usage ?.... I don't see any reason for this ?

Rhyono 01/19/17 10:10 AM

All it does is grab the XP for a specific champion level so it should be a pretty lightweight function to allow. Due to the way champion levels rescale every update, there isn't a permanent XP amount from one CP to another. I was using it for calculating remaining XP until X CP, but it can only function for people that have already reached CP. So on my main, it works perfectly. On an alt at lv 44, it won't work at all.

Ayantir 01/19/17 03:14 PM

but for people who ddn't reached level 50.. there's no need to know this, only xp required for next level.

Rhyono 01/19/17 03:16 PM

The intent was for someone at level X (below 50) to be able to check how much XP until Y (the normal goal being CP160). I can still achieve this by having to build a table of 600+ CP levels, but it isn't ideal.

ZOS_ChipHilseberg 01/19/17 05:03 PM

Quote:

Originally Posted by Rhyono (Post 29473)
The intent was for someone at level X (below 50) to be able to check how much XP until Y (the normal goal being CP160). I can still achieve this by having to build a table of 600+ CP levels, but it isn't ideal.

We can do this. I can't see any reason why an informational function should be restricted based on the level of the current character.

Rhyono 01/19/17 05:04 PM

Quote:

Originally Posted by ZOS_ChipHilseberg (Post 29475)
We can do this. I can't see any reason why an informational function should be restricted based on the level of the current character.

Thanks! I only figured it out once I was basically done with it, so now I don't have to do a tedious rewrite and manually update a table every update.

sirinsidiator 01/20/17 02:14 AM

Quote:

Originally Posted by ZOS_ChipHilseberg (Post 29475)
We can do this. I can't see any reason why an informational function should be restricted based on the level of the current character.

On a different note, maybe you could also take a look at GetCollectibleInfo and GetCollectibleName. For some reason they won't work with crownstore collectibles which have not been purchased yet. The only way to show their name to a player is to use a collectible link.

Haho 01/20/17 05:42 AM

@Chip

will ZOS lock on gear prevent items from being picked for completing a master writ?

(case : i have to craft the same gear i'm using sometimes, i craft a C150 for the writ, is there a check on which one will be picked? the 150 or my functional 160?)

if yes, can we have this "writ lock check" as an API feature please? (for all writs and item types if possible)

if no, could you please look into it? I know the odds of it happening are very low, but not null.

Rhyono 01/20/17 10:11 AM

Quote:

Originally Posted by Haho (Post 29482)
(case : i have to craft the same gear i'm using sometimes, i craft a C150 for the writ, is there a check on which one will be picked? the 150 or my functional 160?)

I know writs won't take upgraded items and I'm pretty sure they don't take crafted set items. I'm not sure if they take traited items. You might want to try making a CP150 for a writ with a trait and see if it takes it. If it doesn't: I don't think there's an issue. If it does: there is a small one, but then I'd recommend immediately upgrading the quality (for your use) before turning writs in.

sirinsidiator 01/20/17 10:25 AM

Quote:

Originally Posted by Rhyono (Post 29483)
I know writs won't take upgraded items and I'm pretty sure they don't take crafted set items. I'm not sure if they take traited items. You might want to try making a CP150 for a writ with a trait and see if it takes it. If it doesn't: I don't think there's an issue. If it does: there is a small one, but then I'd recommend immediately upgrading the quality (for your use) before turning writs in.

He's talking about master writs. In case you have to make something for a master writ that is identical to a piece of equipment that you have in your backbag and do actively use (just not right now), how will the game decide which one to pick? For example you have to make a golden cp160 twice born star helmet with divines trait. For the writ the style doesn't matter, but the one you use has yokudan style. Which one will be used for the master writ? Does locking the item work in that case?

Rhyono 01/20/17 10:30 AM

Ah, my bad, he did say master writ.

Haho 01/20/17 11:28 AM

I tested by myself, made a c150 and a c160 valid for the quest. Locked both with ESO Lock.

the c160 item had a slotIndex > than the c150 one.
and bye bye locked c160 gold eternal hunting well fitted gear


So all of the points have been overlooked for now.
i think i'm gonna avoid the gear master writs.


Also getting writs craftable only in DLC territories when not having the DLC is really not acceptable. And on live we got surveys like that too. but i wont mind trashing them if they are not tradable.

@sir : the style is requested by the writ. with makes the odds really lower, but still. It's overlooked. like the tripots.

sirinsidiator 01/20/17 11:38 AM

They could at least make it so that bound equipment won't get taken for the master writs. Should at least solve the problem for equipment. As for potions, there was an addon a while ago which managed to swap them out before they got taken when you handed the quest in. Maybe that same technique could be used for the master writs too?

Haho 01/20/17 11:44 AM

Quote:

Originally Posted by sirinsidiator (Post 29487)
They could at least make it so that bound equipment won't get taken for the master writs. Should at least solve the problem for equipment. As for potions, there was an addon a while ago which managed to swap them out before they got taken when you handed the quest in. Maybe that same technique could be used for the master writs too?

it would be hard to target the item because on the difference with the potions, when the deed is complete, there is no text in the general description of the writ anymore to know which item to save.

but you can make an addon that reallocate slotIndexes from the higher level gear to the lower level gear unconditionnally to protect your items though.

the idea is that the ****tiest item needs the higher slotIndex.
but that would be easier for everybody to have an API lock for writs with bagId,slotIndex usable on stacks of pots or anything... I'm thinking of itemsaver or FCO itemsaver too.

Baertram 01/20/17 12:46 PM

I'd prefer the game just to give us a seleciton popup for the master writs where you can choose which item will be taken.
Adding some protective functions via addons could be possible but you'd need to check so much stuff which could be avoided by the game "from the scratch"! So better build it right instead of having to rely on addons which have to be adapted after each patch again :(

@Chip
Please have a look at those master writs and try to come up with something that prevents destroying of the higher level equipment due to master writes (even if the item is unbound and a set part -> maybe one crafted a set part for a guild mate, improved it and then suddenly the next writ just will destroy it...).
Maybe a simple "ask dialog" will be enough?

Haho 01/20/17 01:10 PM

Agreed for having the choice. Probably too complex to implement before Homestead release though.

btw I didnt equip the c160 item before talking to the npc when i tested, but anyway, I would want to be able to get rid of an old piece of armor i don't use anymore if it happens i have one that fits a writ.

but in the end, i expected the Build-in lock to actually lock stuff.
That would be intuitive, easy to use, to understand, non-intrusive, easy to implement and most of all expected by anyone.
Though you can't lock potions with it.
So while we're at it... if the check done for item Validity was to include the lock, it couldn't hurt to have the corresponding API for other things than gear.

just a thought.

sirinsidiator 01/20/17 01:43 PM

Quote:

Originally Posted by ZOS_ChipHilseberg (Post 29348)
The other problems you are seeing are likely because many items haven't had their specialized item type set yet. Those should be complete shortly.

Does this only refer to furniture related items or all types? I just ran a script to show me which SPECIALIZED_ITEMTYPES are actually in use and it looks like right now only SPECIALIZED_ITEMTYPE_RECIPE and SPECIALIZED_ITEMTYPE_TROPHY are ready. I planned to add new filters for drinks, food, provisioning ingredients, alchemy ingredients and siege items, but I guess they'll have to wait for now if you only plan to update them for furniture.

Rhyono 01/21/17 08:39 PM

Just found a bug that is in the vein of locked issues: if you have two of the same item, one locked and one unlocked, they will both show up in the improvement tab.

ZOS_ChipHilseberg 01/23/17 09:25 AM

Quote:

Originally Posted by Baertram (Post 29489)
@Chip
Please have a look at those master writs and try to come up with something that prevents destroying of the higher level equipment due to master writes (even if the item is unbound and a set part -> maybe one crafted a set part for a guild mate, improved it and then suddenly the next writ just will destroy it...).
Maybe a simple "ask dialog" will be enough?

I'll raise this concern today.


All times are GMT -6. The time now is 06:52 AM.

vBulletin © 2024, Jelsoft Enterprises Ltd
© 2014 - 2022 MMOUI