Development Tools

This page contains a list of tools that are useful for developing games and mods for Luanti, or working with parts of the engine.

In addition to this list, you can also see the Development Tools tag on ContentDB for mods useful for development and the modtools repository for officially maintained modding tools.

Engine development

  • Development Test: A testing game for testing various engine features
  • /luanti/util: Various maintenance utilities

General Lua Tools

Debugging/profiling

Syntax highlighting/autocompletion

Note: the extensions below are community projects, not maintained by the Luanti team.

  • “Luanti API” extension:
    • Features:
      • Typed Luanti API: classes (ObjectRef, InvRef, ItemStack, Settings, …), core.* functions, and definition tables are described with exact types
      • Context-aware autocompletion: after player: only player methods are suggested, after inv: only inventory methods, inside a node definition only its fields and callbacks
      • API documentation shown in a popup as you type and on hover
      • Diagnostics: warns about typos, wrong arguments and wrong types before you run the game
      • Built on top of EmmyLua Language Server (installed automatically), which also provides:
        • Autocompletion for your own functions, methods and tables, across all mods in the workspace
        • Type annotations for your own code (---@param, ---@return, ---@class, …) using LuaCATS annotations
      • Screencast with examples: see the extension page (links below)
      • Not included: mod and game folder templates, .luacheckrc generator, formspec syntax highlighting
    • Get it at:
    • Other editors: installation instructions
  • “Luanti Tools” extension:
    • Features:
      • Lightweight snippet-based autocompletion for core.* functions and object methods, with a few simplifications:
        • method suggestions after : are not tied to the object type, so methods of all classes are listed
        • fields and callbacks of definition tables are not suggested
      • Short description for each suggestion with a link to the relevant section of lua_api.md
      • Formspec syntax highlighting and texture modifier suggestions
      • Commands to create mod and game folder templates
      • .luacheckrc generator
    • Get it at:

Schematics

  • Schematic Editor: Luanti mod that allows you to import, edit and export schematics straight within Luanti.
  • MTS Editor: Standalone program to view and edit Luanti schematics, but it supports other file formats (e.g. Minecraft schematics) as well.
  • Lua2Mts: Luanti mod to convert .lua schematics to .mts schematics.
  • ASCII Art Schematics: Library to manage Luanti schematics as ASCII art

Biomes

Perlin Noise

  • Perlin Explorer: Luanti mod that allows you to experiment with all sorts of Perlin noise.
  • Perlin noise tuner: Visualizes 2D Perlin noise that Luanti will generate with different noise params.(Emulation of Luanti Perlin noise can be wrong in extremes/edge-cases due to precision of JavaScript number type)

3D models

Images

Formspecs

Translation

ContentDB

  • cdbrelease: Release automation tool for ContentDB packages

Misc.

  • Definition Ripper: Extract node and item definitions, generating decorative and inert facades from them