返回社区
攻略

如何制作 Factorio(异星工厂)Mod:使用 Lua 添加物品、配方和韩文名称

在 Factorio 2.0 中,我们添加一个用两块铁板制作的练习物品 tm-practice-plate。这是一个直接制作物品 prototype、制造 recipe 和 locale 并作为 Mod 文件夹加载的示例。它基于不依赖 Space Age 资源的 base Mod,并使用单独的测试地图而不是现有的工厂存档。

1. 准备 Mod 文件夹和文件

Factorio 的可执行文件文件夹和用户数据文件夹可能不同。在官方文档的用户数据位置找到 mods 文件夹。常规 Windows 安装使用 %APPDATA%/Factorio/mods,但便携式和自定义配置有所不同。备份您的存档文件和现有的 Mod 设置,并创建一个 tm-practice_1.0.0 文件夹。

Factorio 2.0 · 모드 구조 — TroubleMaker 운영팀 제작 · 제작·테스트 절차 도식
Factorio 2.0 · 모드 구조 — TroubleMaker 운영팀 제작 · 제작·테스트 절차 도식
tm-practice_1.0.0/
  info.json
  data.lua
  locale/
    en/strings.cfg
    ko/strings.cfg

2. 在 info.json 中声明兼容性

name 是 Mod 的内部标识符,需与文件夹名称的前半部分相匹配。version 必须与文件夹的 _1.0.0 一致。factorio_version 固定为 2.0,以免与 1.1 的结构混淆。由于 dependencies 的 base 条件,您可以使用游戏基础的 prototype。

{
  "name": "tm-practice",
  "version": "1.0.0",
  "title": "TroubleMaker Practice Plate",
  "author": "TroubleMaker",
  "factorio_version": "2.0",
  "dependencies": ["base >= 2.0.0"],
  "description": "An original item and recipe tutorial."
}

3. 在 data.lua 中放入物品和配方

复制基础铁板的 item prototype,并赋予其新名称和堆叠大小。图标引用了用户拥有的基础游戏的内部路径,因此游戏图像不会复制到 ZIP 中。配方的 ingredients 和 results 以 Factorio 2.0 的显式 type/name/amount 格式编写。将其设为 enabled=true,以便在测试地图中无需额外解锁科技即可找到它。

local plate = table.deepcopy(data.raw.item["iron-plate"])
plate.name = "tm-practice-plate"
plate.order = "a[tm-practice-plate]"
plate.stack_size = 100

data:extend({
  plate,
  {
    type = "recipe",
    name = "tm-practice-plate",
    enabled = true,
    energy_required = 1,
    ingredients = {
      {type = "item", name = "iron-plate", amount = 2}
    },
    results = {
      {type = "item", name = "tm-practice-plate", amount = 1}
    }
  }
})
연습용 철판의 제작 흐름 — TroubleMaker 운영팀 제작 · 제작·테스트 절차 도식
연습용 철판의 제작 흐름 — TroubleMaker 운영팀 제작 · 제작·테스트 절차 도식

4. 使用 locale 附加显示名称

将以下文本放入 locale/ko/strings.cfg 中。在 item-name 和 recipe-name 部分中准确匹配 prototype 名称。如果 Lua 字符串和 locale 键不同,可能会显示内部 ID 或 Unknown key。

[item-name]
tm-practice-plate=연습용 철판

[recipe-name]
tm-practice-plate=연습용 철판 제작

[item-description]
tm-practice-plate=모드 제작 학습용 아이템입니다.

在 locale/en/strings.cfg 中,使用相同的键结构填入您自己的英文短语 Practice plate、Make practice plate、An item for modding practice。文件保存为 UTF-8。如果将 .cfg 保存为 JSON 格式,将无法读取。

5. 启用 Mod 并验证制造

  1. 运行游戏并在 Mods 中启用 TroubleMaker Practice Plate。
  2. 确保游戏重新启动以加载 Mod 时没有错误消息。
  3. 在新的沙盒或测试地图中游玩并准备铁板。
  4. 在制造菜单中找到练习铁板配方,并确认 2 个铁板是否变成 1 个物品。
  5. 比较韩文和英文设置中的名称和描述是否显示为相应的 locale 短语。
  6. 完全退出游戏,禁用 Mod,并在单独的测试地图上验证基本配置。

6. 读取错误的的顺序

如果 Mod 加载停止,请在 factorio-current.log 中查找第一个错误。提示缺少 prototype 的错误应首先检查 iron-plate 拼写和 base 依赖项,配方错误应首先检查 results·ingredients 格式。如果列表中没有 Mod,请检查 info.json 路径是否位于两层文件夹内。图标是相同的,因此如果外观与基础铁板相同,这不是 Bug。在此步骤成功之后,最好添加您自己的制造图标、科技解锁和平衡性以方便测试。

테스트에서 배포까지 — TroubleMaker 운영팀 제작 · 제작·테스트 절차 도식
테스트에서 배포까지 — TroubleMaker 운영팀 제작 · 제작·테스트 절차 도식

7. 移除和分享

添加了物品的 Mod 如果被移除,可能会导致存档中的相应物品消失。请不要在重要的工厂存档中直接关闭它,而应该在备份的副本中进行检查。制作共享 ZIP 时使其仅包含一个 tm-practice_1.0.0 文件夹,并匹配 name·version。指定与其他 Mod 一起测试的条件、支持的游戏 2.0 以及使用的 base 依赖项。游戏更新后,重新检查加载、制造和名称显示这三项内容,并提高发布版本。

原始文档和验证标准

这是 TroubleMaker 运营团队于 2026 年 10 月 7 日根据创作者和官方工具文档编写的入门指南。代码和图表是用于说明的自定义示例,并不是在此服务器上验证该游戏实际游玩的结果。请在分发前在单独的测试存档中用正文中指定的版本进行验证。在下面的原版中对照各工具的最新版本和依赖项。

Factorio 2.0 모드 제작 튜토리얼

Factorio locale 공식 문서

Factorio recipe prototype

Factorio 모딩 문서

Gemini 自动翻译 · 保留原文与来源地区。

原文语言 · ko

팩토리오 모드 만드는 법: Lua로 아이템·레시피·한국어 이름 추가

Factorio 2.0에서 철판 두 개로 만드는 연습용 아이템 tm-practice-plate를 추가합니다. 아이템 prototype, 제작 recipe와 locale을 직접 만들어 모드 폴더로 읽는 예제입니다. Space Age 자산에 의존하지 않는 base 모드 기준이며 기존 공장 세이브 대신 별도 테스트 맵을 사용합니다.

[1. 모드 폴더와 파일 준비]

Factorio는 실행 파일이 있는 폴더와 사용자 데이터 폴더가 다를 수 있습니다. 공식 문서의 사용자 데이터 위치에서 mods 폴더를 찾으세요. 일반 Windows 설치는 %APPDATA%/Factorio/mods를 사용하지만 포터블·커스텀 구성은 달라집니다. 저장 파일과 기존 모드 설정을 백업하고 tm-practice_1.0.0 폴더를 만듭니다.

[image:conditions]

```text
tm-practice_1.0.0/
info.json
data.lua
locale/
en/strings.cfg
ko/strings.cfg
```

[2. info.json에 호환성을 선언하기]

name은 모드 내부 식별자이고 폴더 이름 앞부분과 맞춥니다. version은 폴더의 _1.0.0과 일치해야 합니다. factorio_version은 2.0으로 고정해 1.1용 구조와 혼동하지 않게 합니다. dependencies의 base 조건 때문에 기본 게임 prototype을 사용할 수 있습니다.

```json
{
"name": "tm-practice",
"version": "1.0.0",
"title": "TroubleMaker Practice Plate",
"author": "TroubleMaker",
"factorio_version": "2.0",
"dependencies": ["base >= 2.0.0"],
"description": "An original item and recipe tutorial."
}
```

[3. data.lua에 아이템과 제작법 넣기]

기본 철판의 item prototype을 복사해 새 이름과 스택 크기를 부여합니다. 아이콘은 사용자가 가진 base 게임의 내부 경로를 참조하므로 게임 이미지를 ZIP에 복제하지 않습니다. 레시피의 ingredients와 results는 Factorio 2.0의 명시적 type/name/amount 형식으로 작성합니다. enabled=true로 두어 별도 기술 해금 없이 테스트 맵에서 찾을 수 있게 합니다.

```lua
local plate = table.deepcopy(data.raw.item["iron-plate"])
plate.name = "tm-practice-plate"
plate.order = "a[tm-practice-plate]"
plate.stack_size = 100

data:extend({
plate,
{
type = "recipe",
name = "tm-practice-plate",
enabled = true,
energy_required = 1,
ingredients = {
{type = "item", name = "iron-plate", amount = 2}
},
results = {
{type = "item", name = "tm-practice-plate", amount = 1}
}
}
})
```

[image:request]

[4. locale로 표시 이름을 붙이기]

locale/ko/strings.cfg에 아래 텍스트를 넣습니다. item-name과 recipe-name 섹션에서 prototype 이름을 정확히 맞춥니다. Lua 문자열과 locale 키가 다르면 내부 ID나 Unknown key가 표시될 수 있습니다.

```ini
[item-name]
tm-practice-plate=연습용 철판

[recipe-name]
tm-practice-plate=연습용 철판 제작

[item-description]
tm-practice-plate=모드 제작 학습용 아이템입니다.
```

locale/en/strings.cfg에는 같은 키 구조로 Practice plate, Make practice plate, An item for modding practice라는 자체 영어 문구를 넣습니다. 파일은 UTF-8로 저장합니다. .cfg를 JSON 형태로 저장하면 읽히지 않습니다.

[5. 모드 켜고 제작 확인하기]

1. 게임을 실행하고 Mods에서 TroubleMaker Practice Plate를 활성화합니다.
2. 게임이 모드를 읽기 위해 재시작되면 오류 메시지가 없는지 확인합니다.
3. 새 샌드박스 또는 테스트 맵에서 플레이하고 철판을 준비합니다.
4. 제작 메뉴에서 연습용 철판 레시피를 찾고 철판 2개가 아이템 1개로 바뀌는지 확인합니다.
5. 한국어·영어 설정에서 이름과 설명이 해당 locale 문구로 보이는지 비교합니다.
6. 게임을 완전히 종료하고 모드를 비활성화한 뒤 별도 테스트 맵에서 기본 구성을 확인합니다.

[6. 오류를 읽는 순서]

모드 로딩이 멈추면 factorio-current.log에서 최초 오류를 찾습니다. prototype이 없다는 오류는 iron-plate 철자와 base 의존성, 레시피 오류는 results·ingredients 형식부터 확인합니다. 목록에 모드가 없으면 info.json 경로가 폴더 두 겹 안에 들어갔는지 확인하세요. 아이콘은 동일하므로 기본 철판과 외형이 같아도 버그는 아닙니다. 이 단계가 성공한 뒤 본인 제작 아이콘·기술 해금·밸런스를 추가하는 편이 테스트가 쉽습니다.

[image:contact]

[7. 제거와 공유]

아이템을 추가한 모드는 제거하면 세이브의 해당 아이템이 사라질 수 있습니다. 중요한 공장 세이브에서 바로 끄지 말고 백업한 복사본에서 확인합니다. 공유 ZIP은 tm-practice_1.0.0 폴더 한 개를 포함하도록 만들고 name·version을 맞춥니다. 다른 모드와 함께 테스트한 조건과 지원 게임 2.0, 사용한 base 의존성을 명시하세요. 게임 업데이트 후에는 로딩·제작·이름 표시 세 가지를 다시 확인하고 배포 버전을 올립니다.

[원본 문서와 확인 기준]

2026년 10월 7일 제작자·공식 도구 문서를 확인해 TroubleMaker 운영팀이 작성한 입문 공략입니다. 코드와 도식은 설명을 위한 자체 예제이며 이 서버에서 해당 게임의 실제 플레이를 검증한 결과는 아닙니다. 본문에 명시한 버전으로 별도 테스트 세이브에서 확인하고 배포하세요. 도구별 최신 버전·의존성은 아래 원본에서 대조합니다.

Factorio 2.0 모드 제작 튜토리얼

Factorio locale 공식 문서

Factorio recipe prototype

Factorio 모딩 문서

用朋友的语言分享

评论 1

Factorio 2.0에서 recipe의 ingredients와 results 형식을 명시적으로 작성할 때, 이전 버전과 달리 반드시 type을 지정해야 하는 구체적인 기술적 이유나 장점이 있을까요?

将使用会员昵称评论。 登录或注册

COMMUNITY NOTICE

无法发布

内容含有禁止使用的词语。

请修改内容后重试。

登录

登录

使用 Google 继续
或使用邮箱

客服中心

请告诉我们遇到的问题或疑问。无需登录即可咨询。

我们保存您的姓名、电子邮件、内容及登录时的账户信息以处理咨询,仅供管理员查阅。提交180天后列入自动删除范围。请勿提供密码、卡号或身份证件等敏感信息。 隐私说明

可选的分析 Cookie 用于了解网站使用情况。拒绝不影响登录或浏览。广告同意由 Google 单独管理。

隐私政策