SpecializedIDE for Luanti (ex-Minetest) mod development
Designed to work on PC, tablet, and phone — no installation, no server required.
I present a new project for Luanti: LuantiIDE M.This is an initial presentation of the tool, still unfinished and currently under active development. The current version is v3, which already includes support for most of the features and functionality described in this presentation.
The project continues to evolve, and upon completion of version v5, it will be prepared for public release.
What is LuantiIDE M?
LuantiIDE M is a web-based development environment specialized in creating, editing, and organizing mods for Luanti (formerly known as Minetest).
It runs directly in the browser without requiring installation, compilation, or a local server, allowing development from PCs, tablets, and phones with an interface adapted to each device.
It is focused on the Luanti development ecosystem, including support for Lua as the primary scripting language, along with tools for C++, JSON, Markdown, GLSL, Python, and shell scripting.
Main Features
File and Folder Explorer
- Create new files with custom names
- Create folders and nested subfolders
- Right click (or long press on mobile) on files and folders to:
- Rename files
- Delete files
- Create files inside folders
- Create subfolders
- Delete entire folders
- Folders can be collapsed and expanded
- Each file displays its language with a colored badge
- Real-time syntax highlighting for 7 languages:
- Lua
- C++
- Python
- JSON
- Markdown
- GLSL
- Shell
- Intelligent autocomplete with 60+ Luanti API functions:
Code: Select all
minetest.* vector.* ItemStack - Real-time linter detecting common issues:
- usage instead of
Code: Select all
print()Code: Select all
minetest.log() - disallowed in mods
Code: Select all
load() - Trailing commas in JSON
- in C++ headers
Code: Select all
using namespace std
- Scroll-synced line numbers
- Cursor position highlight (Ln/Col)
- Configurable tabs (2, 4, or 8 spaces)
- comment/uncomment line
Code: Select all
Ctrl+/ - save
Code: Select all
Ctrl+S
- Automatic saving to
Code: Select all
localStorage - Full session restoration
- Last save timestamp visible
- Save on tab close
- Periodic backup every 30 seconds
- Cache clear button
Ready-to-insert templates based on active language.
Lua (Luanti):
- register_node
- register_craftitem
- register_tool
- register_craft
- register_abm
- register_chatcommand
- on_joinplayer
- globalstep
- formspec
- VoxelManip
- C++: classes, Lua bindings, MapNode operations
- Python: build scripts and utilities
- JSON: configs and schemas
- Markdown: mod README templates
Quick reference panel for each language.
Includes:
- 60+ Luanti Lua functions
- Engine C++ API references
- Useful Python libraries
- JSON schema keys
Side panel showing a visual map of the project:
- Language-based organization
- File color categorization
- SVG export support
Available modes:
- Output
- Lua REPL
- Errors
- Commands
Code: Select all
help
reload
list
check
langs
stat
canvas
clear
save
3-step assistant:
- Basic information
- Template and extensions
- Preview
- Basic mod
- Full mod
- Full game
- Library/API
- Save file
- Save all
- Open folder
- Export full project
Mobile and Tablet Support
On small screens:
- Sidebar becomes a sliding drawer
- Bottom quick navigation bar
- Compact buttons
- Long press context menus
- Touch-optimized interface
- Reduced sidebar
- Optional hidden labels
Keyboard Shortcuts
- Ctrl+S - Save
- Ctrl+N - New file
- Ctrl+/ - Comment line
- Tab - Indent/autocomplete
- Esc - Close autocomplete
Internal Architecture
Code: Select all
LANGUAGES -> language definitions
Highlighter -> syntax highlighting engine
FS -> virtual filesystem
Cache -> autosave system
FolderTree -> folder states
Linter -> code analysis
Autocomplete -> suggestions engine
Editor -> main editor
Console -> integrated console
Canvas -> SVG project map
Wizard -> project assistant
Dialog -> modal dialogs
CtxMenu -> context menu
UI -> general rendering
Why a Single HTML File
All modules can be packaged into a single HTML file for maximum portability.
Advantages:
- No server required
- No installation required
- Offline support
- Maximum portability
Supported Languages
- Lua - .lua - Mods
- C++ - .cpp .h .hpp - Native extensions
- Python - .py - Scripts
- JSON - .json - Configuration
- Markdown - .md .txt .tr - Documentation
- GLSL - .glsl .vert .frag - Shaders
- Shell - .sh .bash - Automation
Compatibility
- Chrome / Chromium - Full
- Firefox - Full
- Safari - Full
- Android Chromium - Full
- iOS Safari - Functional
- Spck Editor - Compatible
- Edge - Full
Project Status and Collaboration
LuantiIDE M is under active development and currently in an expansion phase focused on new functionality and improvements.
The project will be published and maintained on GitHub, allowing anyone to access the source code, explore its internal structure, and follow its progress across versions.
Anyone interested in contributing can join development by providing ideas, improvements, testing, bug fixes, or new features related to the Luanti ecosystem.
Accepted contributions include:
- Editor and user experience improvements
- New snippets and API references
- Mobile optimization
- Compatibility with new Luanti ecosystem tools
- Bug fixes and testing
License
MIT - free to use, modify, and distribute.
LuantiIDE M
Built with HTML, CSS, and vanilla JavaScript.
No frameworks. No build step. No server.