Narrel writes today about how LUA scripting came about for LOTRO in the most recently released Dev Diary. He was hired as a game systems engineer for LOTRO in late 2007 and eventually “…became the ‘go-to guy’ for UI on my team.” Dissatisfied with the current UI he eventually started working with “ForsakenArcher” and “Agiclaw”, to of the internal tools engineers at Turbine, and they began discussing, planning and working on a prototype for the LUA system. To paraphrase, after internal testing, meetings, and with help from “Frosty” they were given the approval and the opportunity to introduce it with the Volume 3.2 testing.
So what does LUA do and what is it capable of? Well, quite a bit actually, but the implementation in LOTRO has actually been limited on purpose by Turbine.
As I said at the start, our goals were purely centered on UI modifications and not introducing otherwise obscured information or allowing players to do things they couldn’t otherwise do (such as “bot-ing” or “macro-ing”). There will not be a way to execute skills or use items through Lua scripts. We also do not allow the simulation of mouse-clicks in any way. These limits are in place to prevent any kind of automation of gameplay. Another intentional limit is that while we do expose inventory information, it is only for your own inventory and does not give you information on the items of another player. Yes, that does indeed mean that there is no functionality for any “gear score comparison” type add-ons.
And this is true. There is quite a bit of features that cannot be implemented (both good and bad) because of the limitations of the API’s Turbine chose to implement. Most of the ones that were released were basic UI features (text boxes, windows, buttons, etc) and only a few gameplay API’s
The three gameplay APIs that will be available at launch are as follows:
- Quickslots – Allows for the creation and customization of additional quickslots.
- Player self-vitals – Exposes effect information as well as health and morale for only yourself – party member and target vitals did not make it in for this release due to time constraints and will be addressed in a future update.
- Inventory – Allows for custom organization of your inventory. For example, creating a single-bag view of your character inventory.
Narrel also states that they’re looking into different ways to expand the API’s to include modifications to the Valut UI, Mouse cursors, Chat windows, the Kinship UI, and beyond as they expand functionality. He feels that they are also past the proving stage, but he doesn’t say with any assuredness that LUA scripting will be released with Free-to-Play. This makes me curious, because I’d love to know whether it is or not. In my opinion, if they are going to continue with LUA, then they will either need to release it to the live servers or keep Bullroarer open with the current build. Otherwise they will kill the progress of LUA quite a bit. Sure, they could just invite everyone who has been working on the plugins to the Isengard program, but that would immediately alienate anyone who previously had not worked on LUA scripting; which I think is a bad move. Personally, I say let it be released.
Edit:
Narrel has posted the following:
I certainly didn’t call it out as much as I could have so to confirm (with the ever-present caveat of "things can always explode/change at any moment" so nothing is ever 100%), yes, we were able to get all the appropriate "ducks in a row" to have Lua plugins be made available with the FreeToPlay launch.
So barring any last minute explosions, expect to be able to tinker around with plugins next week! We really hope you guys enjoy what we have made available so far.













September 2, 2010 at 2:41 pm
I’m looking forward to writing scripts which will interact with the chat window. I have previously written some code which will use chatlogs to process various information such as XP gains, kill statistics, etc. It might be interested to be able to give realtime statistics on data that can be collected from the chat window.
Also, I wonder if you could make an LUA script based on the Instance chart from the other day. Perhaps it could open a window showing the chart right in game and then let you click on an instance to set it as our LFF tag in the social panel?
September 3, 2010 at 10:02 pm
I think something like that would be AWESOME! Count me in if you ever need someone to test any of those!