跳到主要内容

EternalTD 自定义内容打包

EternalTD 仍然支持基于文件系统的自定义内容,但当前代码要求特定的文件夹布局和包跟踪模型。

导入根目录

手动导入仍然通过以下路径进行:

plugins/EternalTD/imports/

手动导入内容后,执行:

/etd reload

标准内容文件夹

当前插件会扫描这些小写文件夹:

plugins/EternalTD/levels/
plugins/EternalTD/waves/
plugins/EternalTD/npcs/
plugins/EternalTD/worlds/

旧版说明:

  • Levels/NPCs/ 是旧的文件夹名称。
  • EternalTD 现在会在启动和重载时将它们迁移到 levels/npcs/

世界打包规则

EternalTD 将以下位置中的世界:

plugins/EternalTD/worlds/

视为世界模板。

当玩家开始一个关卡时,EternalTD 会将匹配的模板世界克隆到服务器世界容器中,并在这个克隆副本中运行该会话。

实际含义:

  • 将模板世界打包到 plugins/EternalTD/worlds/
  • 不要把运行时克隆出来的世界当作打包内容的 source of truth

官方 hub 世界是一个特殊情况,它会直接在服务器世界容器中以以下名称进行跟踪:

etd_spawn

什么会让一个包可切换

只有暴露出可跟踪配置文件的包,才能在 /etd setup 中进行切换。

当前跟踪的资源字段有:

  • levelFiles
  • waveFiles
  • npcFiles
  • worldFolders
  • worldContainerFolders
  • markerFileName

在实际中:

  • 关卡、波次和 NPC 包可以通过在这些 YAML 文件中写入 isEnabled 来启用或禁用
  • 共享的世界容器内容和仅依赖 marker 文件的资源包不能用同样的方式切换

包元数据字段

当前的包配置字段模型支持:

  • isEnabled
  • name
  • description
  • downloadLink
  • version
  • nightbreakSlug
  • levelFiles
  • waveFiles
  • npcFiles
  • worldFolders
  • worldContainerFolders
  • markerFileName
  • category
  • toggleable

如果你希望自定义内容在设置 UI 中像一个可跟踪的包一样工作,你就需要与这些字段匹配的包元数据。

模型打包说明

当前的 EternalTD Custom Models 包是通过 marker 文件进行跟踪的,而不是通过普通的 EternalTD 配置文件。

这意味着:

  • EternalTD 可以跟踪共享模型包是否已被下载
  • 如果已安装 FMM,实际的模型资源位于 FreeMinecraftModels 一侧的设置流程中
  • 清理需要手动完成,然后执行 /etd reload

本页面不声明的内容

本页面记录的是仓库中已经验证过的当前磁盘目标位置和跟踪模型。

它并没有为 Nightbreak 包归档定义 first-party ZIP 结构,因为这个打包格式在当前仓库中并没有作为独立的公开创作规范进行说明。