Code:
if IsScribableScriptCombinationForCraftedAbility(craftedAbilityId, primaryScriptId, secondaryScriptId, tertiaryScriptId) then
SetCraftedAbilityScriptSelectionOverride(craftedAbilityId, primaryScriptId, secondaryScriptId, tertiaryScriptId)
local abilityId = GetCraftedAbilityRepresentativeAbilityId(craftedAbilityId)
-- Ask whatever questions about the ability you want to ask
ResetCraftedAbilityScriptSelectionOverride()
end
Keep in mind though that just having the abilityId doesn't mean it's everything you need to know. There can be dozens of combinations of scripts that use the same abilityId. All the GetAbility* functions (e.g.: GetAbilityDuration, GetAbilityRange, etc) can return drastically different values depending on the scripts even for the same abilityId. And how they're calculated is to look at the override scripts (if applicable) or look at what you've got currently scribed. This is why all our tooltips set the override first and foremost.