New to EQEmulator? New to scripting? No worries - many people have started their Quest learning how to program in this community through building scripts.
Scripts can be leveraged to build an endless amount customization.
Some examples might be custom boss events, NPC dialogue, custom spell behavior, custom tradeskills and so many more.
EverQuest Emulator supports two scripting languages, Perl and Lua.
Perl was introduced in the early 2000's and has been the first language still used by many and is still supported today.
Lua was introduced to EverQuest Emulator in 2013 as a newer language with modern support, easier C++ integration and bindings as well as more features in the Quest API.
If you are new to scripting, you might want to learn some basics and primitives. Both languages share many basics such as conditionals, operators, iterators, arrays, loops etc.
Below are some beginner friendly tutorial sites that can get you started if you are new, they may even be helpful if you are already familiar with programming but maybe not familiar with Perl or Lua.
|Perl Tutorial (Tizag)||Tizag|
|Lua Tutorial (tutorialspoint)||Tutorialspoint|
What Language Should I Choose?¶
What language you use is entirely up to you and your preference.
Lua is more modern with more features and is the chosen language in ProjectEQ Quests Repo however it makes no difference what you choose to use.
Choice comes down to personal preference, however your personal preference may be influenced by some features and capabilities that are unique to each. You will need to figure that for yourself over time.
If you're new, you might be wondering what are the kinds of things you can do with scripts
- 1,000+ API methods
- 100+ custom events
The short answer is there is almost nothing you can't do. The possibilities are endless, but to give you some ideas.
- Custom item hand in events
- Custom tradeskills
- Custom dialogue windows
- Custom spells
- Custom boss and encounter events
- Changing weather, environment, time
- NPC dialogue, emotes etc
- Setting and reading character flags
- Task manipulation