Hi Larian! First of all, thank you for the continued support. In particular, the recent story tweaks were a nice surprise, as that's where I live most of the time when modding.

Given that more story script methods may be possible, I thought I'd write up a list of requests.

Note: Items marked with an asterisk (*) are what I consider "high priority".

Mod Checking:
A way for us to check which mods are active would be super helpful. Doing so would make it easier for us to add mod support, without requiring those mods explicitly.
Code
//For fetching which mods are active in the save file.
DB_ModsActive((STRING)_ModName, (INTEGER)_Major, (INTEGER)_Minor, (INTEGER)_Revision, (INTEGER)_Build)

//Alternatives
call ModIsActive((STRING)_ModName, [out](INTEGER)_Bool) ***
query GetModVersion((STRING)_ModName, [out](INTEGER)_Major, [out](INTEGER)_Minor, [out](INTEGER)_Revision, [out](INTEGER)_Build) *

Example usage, using a known database from a different mod:
Code
PROC
LL_DragoonMod_ModSupport()
AND
ModIsActive("AutoBags", 1)
THEN
//Template, Bag Category
DB_AutoBags_Registry_Templates("LLDC_LOOT_Dragonstone_Red_264da479-d10c-43bf-a731-88236b65421a
", "Quest");


Character Sheet Point Events:
Ways to detect if a player spends an point on their character sheet would be handy. This would allow us to avoid using timers to check for these changes, which is particularly useful if you have scaling statuses tied to specific stat values.

Events:
Code
CharacterAttributePointSpent((CHARACTERGUID)_Character, (STRING)_Attribute)
CharacterAbilityPointSpent((CHARACTERGUID)_Character, (STRING)_Ability)
CharacterCivilAbilityPointSpent((CHARACTERGUID)_Character, (STRING)_CivilAbility)
CharacterTalentPointSpent((CHARACTERGUID)_Character, (STRING)_Talent)


Crafting Support & Item Stats
My recents involvement with crafting got me thinking: More story script access to crafting and item data would be a wonderful addition. So I took some time to drum up a wishlist of additional script methods that would open up new avenues for modding.

I imagine many of these may be hard to implement, given how stats are currently out of reach to the scripting side of things. Yet, I remain hopeful that there may be some possibility of getting more information on items, as doing so would bring a world of possibilities.

In particular, deltamod support from the scripting side (adding/checking/ and possibly removing deltamods) would open up a lot of choices for changing items dynamically.

Even being able to craft via scripts would bring an interesting change, as we could dynamically modify player's equipment in controlled scenarios.

Example:
Lock certain itemcombos behind specific crafting equipment (that will be unattainable by the player), and then bypass the crafting equipment requirement through the use of scripts.

Player obtains unique "Dragon Slaying" sword.
Player kills dragon.
Random itemcombo for this sword is selected by the story script.
The unique sword is crafted with the itemcombo (which would probably be a boost), complete with flashy cutscene and dialog.

Anyway, back to the method requests!
Events:
Code
ItemComboSuccess((STRING)_ItemCombo, (CHARACTERGUID)_Player, (ITEMGUID)_Result)
ItemChargesDepleted((ITEMGUID)_Item) *
ItemDurabilityDepleted((ITEMGUID)_Item)

Queries:
Code
CharacterCanEquipItem((CHARACTERGUID)_Character, (ITEMGUID)_Item, [out](INTEGER)_Bool) *

ItemHasCraftingEnabled((ITEMGUID)_Item, [out](INTEGER)_Bool)

ItemGetName((ITEMGUID)_Item, [out](STRING)_Name) **
ItemGetDescription((ITEMGUID)_Item, [out](STRING)_Description) *
ItemGetObjectCategory((ITEMGUID)_Item, [out](STRING)_ObjectCategory) *
ItemGetItemComboProperty((ITEMGUID)_Item, [out](STRING)_ItemComboProperty)

//Item type checking
ItemIsWeapon((ITEMGUID)_Item, [out](INTEGER)_Bool)
ItemIsArmor((ITEMGUID)_Item, [out](INTEGER)_Bool)
ItemIsEquipment((ITEMGUID)_Item, [out](INTEGER)_Bool) *
//Object stat items
ItemIsObject((ITEMGUID)_Item, [out](INTEGER)_Bool)
 //Potion stat items
ItemIsConsumable((ITEMGUID)_Item, [out](INTEGER)_Bool)
ItemIsUnique((ITEMGUID)_Item, [out](INTEGER)_Bool)

//Equipment are both Weapon and Armor stat items
EquipmentHasDeltamod((ITEMGUID)_Item, (STRING)_Deltamod, [out](INTEGER)_Bool) *
EquipmentGetDeltamod((ITEMGUID)_Item, [out](STRING)_Deltamod) *
EquipmentHasSkill((ITEMGUID)_Item, [out](STRING)_Skill, [out](INTEGER)_Bool)
EquipmentHasTalent((ITEMGUID)_Item, [out](STRING)_Skill, [out](INTEGER)_Bool)
EquipmentHasRune((ITEMGUID)_Item, [out](INTEGER)_Bool)
EquipmentGetItemGroup((ITEMGUID)_Item, [out](STRING)_Slot)
EquipmentGetRuneSlots((ITEMGUID)_Item, [out](INTEGER)_Slots)
EquipmentGetRuneInSlot((ITEMGUID)_Item, (INTEGER)_Slot, [out](ITEMGUID)_Rune)

WeaponGetDamageType((ITEMGUID)_Item, [out](STRING)_DamageType) ***
WeaponGetWeaponType((ITEMGUID)_Item, [out](STRING)_WeaponType) *
WeaponIsTwoHanded((ITEMGUID)_Item, [out](INTEGER)_Bool) *

ArmorGetSlot((ITEMGUID)_Item, [out](STRING)_Slot)
ArmorGetArmorType((ITEMGUID)_Item, [out](STRING)_ArmorType)

Calls:
Code
//Crafting via script
CharacterCombineItems((CHARACTERGUID)_Character, (STRING)_ItemCombo, (ITEMGUID)_Item1, (ITEMGUID)_Item2)
CharacterCombineItems((CHARACTERGUID)_Character, (STRING)_ItemCombo, (ITEMGUID)_Item1, (ITEMGUID)_Item2, (ITEMGUID)_Item3)
CharacterCombineItems((CHARACTERGUID)_Character, (STRING)_ItemCombo, (ITEMGUID)_Item1, (ITEMGUID)_Item2, (ITEMGUID)_Item3, (ITEMGUID)_Item4)
CharacterCombineItems((CHARACTERGUID)_Character, (STRING)_ItemCombo, (ITEMGUID)_Item1, (ITEMGUID)_Item2, (ITEMGUID)_Item3, (ITEMGUID)_Item4, (ITEMGUID)_Item5)

//Prevents an item from being modified via crafting.
ItemSetCanCraft(ITEMGUID)_Item, (INTEGER)_Bool)
ItemSetObjectCategory((ITEMGUID)_Item, (STRING)_ObjectCategory)

ItemSetName((ITEMGUID)_Item, (STRING)_Name) ***
ItemSetDescription((ITEMGUID)_Item, (STRING)_Description) **

//Resets to the template value
ItemResetName((ITEMGUID)_Item, (STRING)_Name)
ItemResetDescription((ITEMGUID)_Item, (STRING)_Description)

//Equipment manipulation
EquipmentApplyDeltamod((ITEMGUID)_Item, (STRING)_Deltamod) ***
EquipmentRemoveDeltamod((ITEMGUID)_Item, (STRING)_Deltamod) *
EquipmentClearDeltamods((ITEMGUID)_Item) *

EquipmentAddRuneSlot((ITEMGUID)_Item, (INTEGER)_Slots)
EquipmentRemoveRuneSlot((ITEMGUID)_Item, (INTEGER)_Slots)
EquipmentSetRune((ITEMGUID)_Item, (INTEGER)_Slot, (ITEMGUID)_Rune)
EquipmentRemoveRune((ITEMGUID)_Item, (ITEMGUID)_Rune)
EquipmentRemoveRuneInSlot((ITEMGUID)_Item, (INTEGER)_Slot)

EquipmentAddSkill((ITEMGUID)_Item, (STRING)_Skill)
EquipmentRemoveSkill((ITEMGUID)_Item, (STRING)_Skill)
EquipmentClearSkills((ITEMGUID)_Item)
EquipmentAddTalent((ITEMGUID)_Item, (STRING)_Talent)
EquipmentRemoveTalent((ITEMGUID)_Item, (STRING)_Talent)
EquipmentClearTalents((ITEMGUID)_Item)

______________________________

Thanks for reading! rpg007

Last edited by LaughingLeader; 13/12/17 12:10 AM. Reason: Added character sheet section