EternalTD Custom Content Packaging
EternalTD still supports filesystem-driven custom content, but the current code expects a specific folder layout and package-tracking model.
Import Root
Manual imports still go through:
plugins/EternalTD/imports/
After importing content manually, run:
/etd reload
Canonical Content Folders
The current plugin scans these lowercase folders:
plugins/EternalTD/levels/
plugins/EternalTD/waves/
plugins/EternalTD/npcs/
plugins/EternalTD/worlds/
Legacy note:
Levels/andNPCs/are legacy folder names.- EternalTD now migrates them to
levels/andnpcs/during startup and reload.
World Packaging Rules
EternalTD treats the worlds under:
plugins/EternalTD/worlds/
as world templates.
When a player starts a level, EternalTD clones the matching template world into the server world container and runs the session in that cloned copy.
Practical implication:
- package template worlds under
plugins/EternalTD/worlds/ - do not treat the runtime cloned worlds as the source of truth for packaged content
The official hub world is a special case and is tracked in the server world container directly as:
etd_spawn
What Makes a Package Toggleable
Package toggling in /etd setup only works for packages that expose tracked config files.
The current tracked asset fields are:
levelFileswaveFilesnpcFilesworldFoldersworldContainerFoldersmarkerFileName
In practice:
- level, wave, and NPC packages can be enabled or disabled by writing
isEnabledinside those YAML files - shared world-container content and marker-only resource packages are not toggleable in the same way
Package Metadata Fields
The current package config field model supports:
isEnablednamedescriptiondownloadLinkversionnightbreakSluglevelFileswaveFilesnpcFilesworldFoldersworldContainerFoldersmarkerFileNamecategorytoggleable
If you want custom content to behave like a tracked package in the setup UI, you need package metadata that matches those fields.
Model-Packaging Notes
The current EternalTD Custom Models package is tracked with a marker file rather than normal EternalTD config files.
That means:
- EternalTD can track whether the shared model pack was downloaded
- the actual model assets live in the FreeMinecraftModels side of the setup when FMM is installed
- cleanup is manual and followed by
/etd reload
What This Page Does Not Claim
This page documents the current on-disk destinations and tracking model that are verified in the repo.
It does not define a first-party ZIP schema for Nightbreak package archives, because that packaging format is not spelled out in this repo as a standalone public authoring spec.