Welcome to the new official WARFRAME Wiki!
Migrate your account | Wiki Discord

WARFRAME Wiki:Modules

From WARFRAME Wiki
Jump to navigation Jump to search
“It's taking longer than I calculated.”
This page is actively being worked on and may not be completely correct. Please assist in making this page accurate. See WARFRAME Wiki:Research on ways to perform research on this game. Click here to add more info.
x

The WARFRAME Wiki relies on many Lua modules to automate content creation at scale to deliver accurate, relevant, and timely information to wiki readers.

Rationale[edit source]

Since WARFRAME is a live-service game with regular updates and hotfixes, there is a need for a up-to-date community-ran repository of knowledge to document the latest information on the game. As software, video games store their game objects as structured data which means that there is a relatively easy way to translate in-game items to more programmatic representation in the form of data with attributes and properties.

Using Lua scripts in the Module namespace, we are able to share a single source of truth of most game objects by storing them on the wiki's Data Stores. This way editors can:

  • Deduplicate effort spent editing articles, only needing to edit one place to have all the relevant articles updated with that data
    • Reduces the need of external scripts or editing tools like AutoWikiBrowser
      • Thus lowers the barrier of entry to mass-editing articles
  • Maintain content that tend to be repetitive in structure (e.g. wikitables with hundreds of rows)
  • Perform data processing and statistical analysis (e.g. data aggregation, probability distributions)

Module Navigation[edit source]

Issues[edit source]

  • Lua scripts are ran in a sandboxed environment on the MediaWiki wiki engine, being restricted to 50 mebibytes of memory usage and 7-seconds CPU runtime
    • Cannot use web APIs in Lua scripts
  • No native version control or DevOps in developing Lua scripts in Module namespace
    • No code reviews, CI/CD, code branching, different environments (development, staging, production)
    • Have to manually copy code from a test page to production or directly edit production code
  • Lack of tooling around developing Lua scripts in a MediaWiki context
    • Niche development community
  • Hard to create unit tests for code
    • Not traditional web development
  • No native database query language
    • No programmatic CRUD operations in updating data stores without external scripts
  • High-level programming may not be as performant as using more lower-level languages (e.g. developing PHP extensions that run on MediaWiki)
    • This is an issue that concerns wiki farm infrastructure and software engineering team more than wiki editors/administrators

See Also[edit source]