I have a simple (i.e. really, really ugly and not suitable for public consumption) plugin that I use to identify skills (and items). Basically, it has a scan function that starts at a known value and iteratively tries to create a shortcut and assign it to a quickslot using each ID until the user cancels the search. For each successfully assigned skill, it adds an entry into a skill table which can then be viewed in a window with a series of dynamically created quickslot controls. Yes, it is quick and ugly but it works - it could be greatly improved if I felt like spending time on it but we don't often need to find new skill IDs and when we do, it's easy to just fire up the quick and dirty tool and then look at all of the recently added skills.
To test a skill, use the Lua pcall function to attempt to create and assign a shortcut with a given ID. The code snippet from my fugly scanner that tests a skill with ID="index" is below. The SkillData table was meant to have entries with information about each skill but currently just creates a non nil entry to signify that the ID is a valid skill (if it wasn't valid, the pcall would trap an error instead of succeeding). The item scanner part works very similarly but uses type Turbine.UI.Lotro.ShortcutType. Item and actually assigns item info from the shortcut since there is a shortcut:GetItem() method in the API (there is no shortcut:GetSkill() method) to populate the ItemData entry with stuff like Name and Description, etc.
Code:
-- test this index
local sc=Turbine.UI.Lotro.Shortcut()
sc:SetType(Turbine.UI.Lotro.ShortcutType.Skill)
sc:SetData(string.format("0x%x",index))
local success, results=pcall(Turbine.UI.Lotro.Quickslot.SetShortcut,SkillWindow.TestQS,sc);
if success and results==nil then
SkillData[index]={};
if index>maxSkillID then maxSkillID=index end
end
That should be enough to get you headed down the right road if you want to create your own Item and Skill scanner.