Pros of Lua vs Perl:
- Smaller footprint, memory and cpu wise.
- Can be distributed with the code base.
- Removes an outside dependency.
- Popular among game enthusiasts.
- If it's used to replace Perl & MySQL then we also have the option of creating 'eq server in a box' linux distribution with a great deal less headache since it's only the server to deal with and not the server and sql issues.
- Item look up side can become far more dynamic for the custom users. Easy set bonuses, for example.
- Lua to c interface is far simpler and cleaner. Means that whole interfacing point could become much cleaner for scripter's. Examples where shown in the thread. Could lead to a standard library for EQ Lua scripts since it's far simpler to reuse.
- Some tools might be easier to write since we can reuse much of the lua script code directly into the tools themselves. This is difficult to do with Perl as it stands.
Cons of Lua vs Perl:
- Switching systems means we have people who need to learn Lua who all ready know Perl.
- Perl has a huge number of packages all ready made (may not be relevant considering our current uses).
- need to rewrite many of the current quests to use Lua.
- Some will not switch since they have a large number of custom scripts.
- Under some conditions the Lua GC can become finicky. (rare but can happen, usually just a set gc level change at the global scope)
Pro's of Lua vs MySQL:
- Imperative as well as Declarative for those who want more dynamic content behavior or are used to imperative but not declarative systems.
- A chance to clean up the item table and other components since it's getting a little....crazy? yeah. crazy.

- Lua embedding is just as supported as SQL in almost all cases.
- Easy starting out for modders / content creators. All that is required is a text editor.
Con's of Lua vs MySQL:
- SQL is a very common language. Many developers know it. Lua? not as much.
- Thousands of SQL tools out there.
- very very very easy to do global modifications in SQL, may not (but doesn't have to be) easy to do this in Lua, depends on implementation.
What else am I missing? I'll edit as I people add.