Hi all,
I'm gonna try to write a plugin that'll do the following:

check the user's stats for which crafting professions they have, and of those, which they've guilded.
Of their guilded professions, do they have the skill level and recipe(s) needed to craft reputation items for each guild they're in. If recipes are missing, a note gets displayed where to acquire it/them (one of the crafting guild halls).
For each recipe, check whether it's on a cooldown and if so, the cooldown's current time left.
If a recipe is currently craftable, the plugin will list all primary ingredients for each recipe, and as a user configurable option, list whatever crafting subcomponents & starting ingredients necessary.
Finally, compare the ingredient list with the character's inventory and create a gathering/shopping list for missing ingredients/components.
Also, it'll display any current rep. level gained, as well as the gain from selected craft recipe & how much rep needed to next level.

Here's the rub: I'm not a programmer.

I did read through Garan's Scripting tutorial and, tbh, got 'only' about halfway though the 1st page before I got lost.

I created directories & two or three .lua files that, thus far, load into LotRO, open a window, and send a message to the chat window displaying plugin name & version.

At that point, I loaded an instance of the character (which i assume went properly as there were no error messages ( localPlayer=Turbine.Gameplay.L ocalPlayer:GetInstance() ) however, doing a subsequent voc=localPlayer:GetVocation() does get me an error message ( attempt to call method 'GetVocation' (a nil value) ). ATM, I've no clue where/how to correct this.

In the meantime, I did succeed putting together the following:

LoadedString2=[[<rgb=#539e53> - </rgb>]]
LoadedString4=[[<rgb=#539e53>uild </rgb>]]
LoadedString6=[[<rgb=#539e53>ep </rgb>]]
LoadedString8=[[<rgb=#539e53>rafting </rgb>]]
LoadedString10=[[<rgb=#539e53>ngredient </rgb>]]
LoadedString12=[[<rgb=#539e53>alculator - </rgb>]]
LoadedString14=[[<rgb=#539e53> successfully loaded.</rgb>]]

Turbine.Shell.WriteLine(LoadedString1 .. LoadedString2 .. LoadedString3 ..
	 	LoadedString4 .. LoadedString5 .. LoadedString6 .. LoadedString7 ..
	 	LoadedString8 .. LoadedString9 .. LoadedString10 .. LoadedString11 ..
	 	LoadedString12 .. LoadedString13 .. plugin:GetVersion() .. LoadedString14)
Cumbersome, inelegant, but it is functional, which says alot coming from a non-programmer. Down the road, as I learn more, i'll hope to b able to greatly refine this.

I'm running on the assumption that the information I want to display/manipulate exists within the playerdata I got from LocalPlayer=Turbine.Gameplay.L ocalPlayer:GetInstance(), yet I need to access that properly. I also assume once I've surmounted that problem the rest will fall into line into a decent learning curve as I learn this stuff. Confirmation and/or destruction of those assumptions and specific guidance greatly appreciated.