开发者中心

一套 Lua API 打通游戏与模组开发:添加节点、物品、生物与玩法,无需编译引擎。本页带你从零写出第一个模组,并了解服务器架设与作品发布。

入门

为什么选择 Lua 开发?

Luanti 引擎用 C++ 编写并负责渲染、物理与网络等底层能力,内容层完全通过 Lua 脚本驱动。这意味着:

  • 改玩法不用碰引擎源码,保存脚本后重载世界即可见效;
  • Lua 语法简洁,是编程入门的常选语言,学生也能快速上手;
  • 模组与游戏共用同一套 API,学会一处即可两用;
  • 官方提供完整的 Lua API 参考文档与开发者指南。

基础

三个核心概念

  • 节点(node):构成世界的方块。每个 16 x 16 x 16 的区块由节点组成,节点由 C++ 高效渲染,适合做地形与建筑。
  • 物品(item / craftitem):玩家手中的东西,可定义合成配方、工具属性与使用行为。
  • 实体(entity):可移动对象,例如生物、投掷物与载具,由脚本驱动其行为逻辑。

世界数据以区块(mapblock)为单位存储与同步,开发者通常无需直接处理区块细节。

实战

第一个模组:注册一个节点

模组以文件夹形式存放于 worlds 同级的 mods 目录,入口文件为 init.lua。以下代码注册一个可挖可放的示例方块:

modname = "my_first_mod"

-- 注册一个新节点(方块)
minetest.register_node(modname .. ":demo_block", {
    description = "演示方块",
    tiles = { "my_first_mod_demo_block.png" },
    groups = { cracky = 3 },
})

-- 注册合成配方:3x3 木板 --> 4 个演示方块
minetest.register_craft({
    output = modname .. ":demo_block 4",
    recipe = {
        { "default:wood", "default:wood", "default:wood" },
        { "default:wood", "default:wood", "default:wood" },
        { "default:wood", "default:wood", "default:wood" },
    },
})

进入游戏后开启 Mod,创造模式中即可看到「演示方块」。完整的回调、权限与 HUD 能力请查阅官方 Lua API 文档。

发布

把作品发布到 ContentDB

  1. 为模组撰写 mod.conf(名称、描述、依赖)与 license.txt(许可证声明);
  2. 在 ContentDB 注册账号,提交仓库地址,平台会自动拉取版本;
  3. 打上语义化版本标签(如 1.0.0),玩家即可在客户端内搜索安装;
  4. 持续维护:回应评价、修复问题,作品评分与下载量会持续累积。

架设多人服务器

一台普通 VPS 即可承载数十名玩家同时在线。

服务器程序

官方提供 luanti-server(曾名 minetest-server)专用程序,Linux 各发行版可通过包管理器安装,Windows 亦可用主程序以服务器模式启动。

Docker 部署

官方仓库提供 Dockerfile 与部署文档,环境一致、迁移方便,适合容器化运维,见 GitHub 仓库 doc/docker_server.md。

权限与管理

内置权限(privilege)体系:授予、回收、封禁与区域保护,配合管理类模组可实现完整的社区治理方案。

开发者资源导航

资源地址说明
Lua API 参考文档api.luanti.org全部注册函数、回调与对象定义
官方开发者文档docs.luanti.org入门教程、Mod 规范与最佳实践
源代码仓库github.com/luanti-org/luantiLGPL v2.1+,C++ 引擎与内置脚本
ContentDB 发布平台content.luanti.org游戏、模组与材质包的分发中心
官方论坛forum.luanti.org模组发布版块与问题解答

准备好写第一个模组了?

下载 Luanti,打开文本编辑器,从注册一个节点开始你的创作之旅。