🏠
首页
🎨
创意设计
🧮
游戏计算
🖥️
服务器管理
控制台

Minecraft 数据包教程 - 完整制作指南

通过我们全面的教程掌握 Minecraft 数据包的制作。学习为现代 Minecraft 服务器和游戏玩法增强创建自定义函数、战利品表、配方、进度和世界生成功能。


🎯 选择您的 Minecraft 版本

选择您的游戏版本以获取正确的包格式和功能

1.21.9 Upcoming
包格式: 86

Latest format with minor version support

1.21.7 – 1.21.8 Current
包格式: 81

Current stable format

1.21.6 Stable
包格式: 80

Stable with cloud height support

1.21.5 Stable
包格式: 71

Major overhaul with component changes

1.21.4 Legacy
包格式: 61

TNT minecart and furnace changes

1.21.2 – 1.21.3 Legacy
包格式: 57

Attribute and component updates

1.21 – 1.21.1 Legacy
包格式: 48

Data-driven enchantments

1.20.5 – 1.20.6 Legacy
包格式: 41

Item components and recipe changes

1.20.3 – 1.20.4 Legacy
包格式: 26

Text parsing and grass renaming

1.20.2 Legacy
包格式: 18

Function macros introduced

1.20 – 1.20.1 Legacy
包格式: 15

Sign NBT and advancement changes

1.19.4 Legacy
包格式: 12

Damage types added

1.19 – 1.19.3 Legacy
包格式: 10

Filter sections and locate merge

1.18.2 Legacy
包格式: 9

Structure location changes

1.18 – 1.18.1 Legacy
包格式: 8

Loot function string requirements

1.17 – 1.17.1 Legacy
包格式: 7

Replace item command changes

1.16.2 – 1.16.5 Legacy
包格式: 6

Custom world generation added

1.15 – 1.16.1 Legacy
包格式: 5

Predicates introduced

1.13 – 1.14.4 Legacy
包格式: 4

Initial data pack format




🚀 数据包制作教程

跟随这些步骤创建您的第一个 Minecraft 数据包

📁

设置数据包

📂 查找世界目录

🪟 Windows

Press Win + R, type %APPDATA%\.minecraft\saves\(your world)

C:\Users\YourName\AppData\Roaming\.minecraft\saves\YourWorld\datapacks
🍎 macOS

Press Cmd + Shift + G, navigate to ~/Library/Application Support/minecraft/saves/(your world)

~/Library/Application Support/minecraft/saves/YourWorld/datapacks
🐧 Linux

Press Ctrl + L, navigate to ~/.minecraft/saves/(your world)

~/.minecraft/saves/YourWorld/datapacks

📁 所需文件夹结构

📁 YourDataPack/
📄 pack.mcmeta (required)
🖼️ pack.png (optional icon)
📁 data/
📁 your_namespace/
📁 function/
📁 loot_table/
📁 recipe/
📁 advancement/
⚙️

创建 pack.mcmeta

⚙️ 理解 pack.mcmeta

pack.mcmeta 文件是数据包中唯一必须的文件。它告诉 Minecraft 关于您的包的兼容性和描述。

📋 文件结构解析
"description": 在游戏中悬停在包上时显示的文本
"pack_format": 版本兼容性编号(见上方的版本选择器)
"supported_formats": 兼容版本范围(可选,自 1.20.2 起)
⚠️ 重要提示
  • 文件名必须正好是 pack.mcmeta(不是 .txt!)
  • 检查操作系统中文件扩展名是否可见
  • JSON 语法必须完美(括号、逗号、引号)
  • 使用上面的版本选择器获取正确的格式
  • 您可以在描述中使用 § 符号添加颜色代码!
  • supported_formats 是可选的(1.20.2+)但推荐使用
🏷️

创建命名空间

🏷️ 创建您的命名空间

命名空间可防止不同数据包之间的冲突,并有效地组织您的内容。

📝 命名规则
my_awesome_pack
skyblock_tools
My Awesome Pack (spaces not allowed)
minecraft (reserved namespace)
🎯 最佳实践
  • 使用小写字母、数字、下划线、连字符
  • 使其独特且具描述性
  • 避免使用 "minecraft" 命名空间(保留给原版)
  • 使用您的用户名或项目名称
📝

添加内容

📝 添加您的第一个内容

从一个简单的函数开始测试您的数据包设置。

⚡ 创建您的第一个函数

文件: data/your_namespace/function/hello.mcfunction

# My first data pack function
say Hello from my data pack!
give @s diamond 1
title @s title {"text":"Welcome!","color":"gold"}
🧪 测试您的数据包
/reload 重载所有数据包
/datapack list 显示所有已加载的数据包
/function your_namespace:hello 运行您的函数

📚 数据包内容类型

探索您可以在数据包中创建的不同类型的内容

函数

入门

可执行的命令序列

文件夹: function
扩展名: .mcfunction
💰

战利品表

中级

定义生物或容器掉落物

文件夹: loot_table
扩展名: .json
🔨

配方

入门

自定义合成和熔炼配方

文件夹: recipe
扩展名: .json
🏆

进度

中级

带有奖励的成就系统

文件夹: advancement
扩展名: .json
🏗️

结构

高级

自定义建筑结构

文件夹: structure
扩展名: .nbt
🌍

世界生成

专家

自定义地形和生物群系生成

文件夹: worldgen
扩展名: .json
🏷️

标签

入门

对物品、方块或实体进行分组

文件夹: tags
扩展名: .json
🎯

谓词

高级

命令和战利品表的条件

文件夹: predicate
扩展名: .json

🚀 高级数据包功能

🔄 函数宏

带参数的动态函数 (1.20.2+)

$execute as $(player) run say Hello $(message)

🎨 自定义附魔

数据驱动的附魔 (1.21+)

data/namespace/enchantment/custom.json

🌍 维度创建

自定义维度和世界生成

/execute in namespace:custom_dimension

🏗️ 结构放置

自定义结构和拼图方块

/place structure namespace:castle

⚠️ 重要版本变更

影响数据包兼容性的关键变更

🚨 文件夹命名变更 (1.21)

旧 → 新

  • recipes/recipe/
  • loot_tables/loot_table/
  • functions/function/

需要操作:升级到 1.21+ 时更新文件夹名称

📝 配方格式变更 (1.20.5)

结果对象语法

Old: "result": {"item": "minecraft:diamond"}

New: "result": {"id": "minecraft:diamond"}

需要操作:更新所有配方文件

🎨 包图标支持

pack.png 图标

  • Optional 128×128px PNG image
  • Place next to pack.mcmeta
  • Square aspect ratio (1:1)
  • Shows in data pack selection screen

🧪 测试命令

常用命令

  • /reload - Reload all data packs
  • /datapack list - Show loaded data packs
  • /datapack enable "file/pack_name" - Enable pack
  • /datapack disable "file/pack_name" - Disable pack

🔧 常见问题排查

❌ 数据包未加载

常见原因:

  • pack.mcmeta 语法错误
  • 文件夹结构错误
  • 无效的 pack_format
  • 缺少 .mcmeta 扩展名

解决方案:

  • 检查 pack.mcmeta 中的 JSON 语法
  • 验证文件夹名称为小写
  • 使用适合您版本的正确包格式
  • 确保文件扩展名可见

⚠️ 函数不工作

常见原因:

  • 文件扩展名错误(是 .txt 而不是 .mcfunction)
  • 命令中的命名空间错误
  • 命令语法错误
  • 函数在错误的文件夹中(使用 function/ 而不是 functions/)

解决方案:

  • 确保文件具有 .mcfunction 扩展名
  • 使用 /function namespace:filename
  • 先单独测试命令
  • 检查文件夹命名(1.21+ 变更)