Lua Parser has been the works for a while now.
We're getting close to release of it but it's still a couple days away while we clean up last minute build issues and such.
https://github.com/EQEmu/Server/tree/lua
Documentation:
https://github.com/EQEmu/Server/wiki/Lua-Parser
Right now it is turned OFF by default but eventually we want to get to the point where we turn it ON by default and perl OFF by default.
Also we've worked hard to reduce incompatible changes with the Perl parser but there are a few:
Code:
* templates quest folder has been renamed global.
* The items and spells quest folders need to be moved to the global folder.
* Item quests have been consolidated into a single type instead of the three types based on event_type.
Now instead of three potential quests per item there is just one loaded as follows:
-if scriptfileid != 0 -> load script_<scriptfileid>.ext (eg: script_1000.pl)
-else if charmfile != "" -> load <charmfile>.ext (eg: CHRMTest.pl)
-else load <item_id>.ext (eg: 10001.pl)
* EVENT_PROXIMITY_SAY no longer occurs automatically.
You need to call quest::enable_proximity_say() in perl
or call eq.enable_proximity_say() in lua at least once
for the quest_manager to begin looking to process proximity events.
* quest::handleturnin has been removed
* quest::completehandin has been removed
* quest::resethandin has been removed
* quest::clearhandin has been removed
* Cazic Touch (982) is no longer hard coded to shout the target's name on cast.
This can easily be scripted in now and we're looking to hard code as few things as possible.
* Spell quests that previously blocked effects no longer function as they did in perl due to a limitation of the perl parser.
* event_death no longer triggers after a death has occurred but before.
For the item quests it's very likely people wont have to modify a thing. Before we had 3 types of item quests based on the items charm, script and item_id that varied based on event type. This is now all in one quest according to that priority. If you have an item quest right now that has more than one script for the same item then you'll need to make some changes but odds are you do not. Eg: none of the PEQ quests afaik follow this pattern.
For the handin stuff things we wrote a plugin that duplicates the functionality of multiquesting for perl. Though if you make heavy use of the functions it might take a while to update.
The spell stuff is more tricky due to how we changed the underlying system and a limitation in our perl parser we simply cannot override the effects on perl. It's suggested that if you need scripted spells that have completely overridable effects and can't use lua to make the spells be basically blank.
For the event_death, the way to get the old functionality (which is required in a few circumstances) is to instead use the event: event_death_complete.