zetaepyon edited this page Jan 9, 2018 · 3 revisions

The libraries described here are meant to aid the developer in programming in Lua, since Lua itself is lacking in any form of abstraction and only provides the most rudimentary of functions to work with.

To use a library inside your code, you will need to load it with require(name), where name is the name of the library to load. This is usually done at the very top of your file before any other code (although it can be done at any point, even conditionally).

There are two types of libraries. The first type only needs to be loaded and writes content to either existing namespaces or the global namespace. The second type (which is more common) returns its content inside a table and needs to be loaded as such. For example, the packets library returns a table with its desired functions, so it needs to be loaded by typing packets = require('packets'), and can be used by accessing the newly created packets table where all of its functions are stored.

Windower-exclusive Lua libraries

  • Actions - Wrapper for the FFXI action packet
  • Chat - Collections of chat-related functions and a table containing chat-specific variables
  • Config - Handles loading/saving of settings XML files in the standard Windower format
  • Files - Wrapper for file input/output
  • Functions - Adds several functions that facilitate functional programming patterns
  • JSON - JSON reader/writer
  • Lists - Adds lists as a data structure
  • Logger - Adds functions to output to the chat log
  • LuaU - A collection of commonly used core libraries
  • Maths - Facilitates working with numbers
  • Matrices - Adds matrix objects and functions to work on them
  • Packets - Provides an interface for working with packets
  • Queues - Adds queues as a data structure
  • Resources - Adds a table containing FFXI-related resources and some functions on them
  • Sets - Adds sets as a data structure
  • Slips - Facilitates working with item-slips
  • Strings - Adds string-related functions
  • Tables - Adds a table object and several related functions
  • Texts - Provides an interface for working with text objects
  • TimeIt - Provides timing facilities including a function benchmark
  • Vectors - Adds vector objects and functions to work on them
  • XML - XML reader/writer

Third party libraries

  • LuaSocket - Provides an interface for network programming (source)
  • LPack - Provides binary string packing/unpacking functions (source)
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.