Skip to main content

EternalTD Setup

The current EternalTD setup flow is built around Nightbreak-managed content, optional model support through FreeMinecraftModels, and a resource-pack helper command.

Requirements

  • EternalTD 1.4.1
  • Java 21
  • A Paper/Spigot-compatible server on the current 1.21 API line

Optional integrations:

  • FreeMinecraftModels for EternalTD's custom models
  • ResourcePackManager if you want EternalTD to register its official resource pack there instead of writing to server.properties
  • Floodgate, ModelEngine, and LibsDisguises are soft-depends, not setup requirements for the current setup flow

What EternalTD Creates

On startup, EternalTD initializes or uses these paths:

plugins/EternalTD/config.yml
plugins/EternalTD/content_packages/
plugins/EternalTD/imports/
plugins/EternalTD/levels/
plugins/EternalTD/waves/
plugins/EternalTD/npcs/
plugins/EternalTD/worlds/

Legacy note:

  • The plugin now treats levels/ and npcs/ as canonical folder names.
  • On startup and reload it will migrate legacy Levels/ and NPCs/ folders into the lowercase paths automatically.
  1. Install EternalTD and start the server once.
  2. Run /etd initialize as a player with eternaltd.*.
  3. Link your Nightbreak account with /nightbreaklogin <token>.
  4. Run /etd downloadall to download all accessible EternalTD packages into plugins/EternalTD/imports.
  5. Run /etd install to apply the official EternalTD resource-pack setup.
  6. Run /etd setup any time you want to browse, enable, disable, or update individual packages.

/nightbreaklogin <token> is part of the shared Nightbreak/MagmaCore account flow, not a command declared in EternalTD's plugin.yml.

What /etd initialize Actually Does

/etd initialize opens a first-time setup menu. It does not download content or install the resource pack for you.

The current menu offers three outcomes:

  • Recommended Setup: marks setup as complete and tells you to run /nightbreaklogin <token>, /etd downloadall, and /etd install
  • Manual Setup: marks setup as complete and leaves content management to you
  • Use Current Content: marks setup as complete and keeps the current on-disk content as-is

Because all three options set setupDone: true, treat /etd initialize as a guidance flow, not as a validation step.

Spawn and Hub Behavior

config.yml currently includes:

  • setupDone
  • spawnLocations
  • manageSpawn
  • playerGuide

When manageSpawn: true and the etd_spawn world exists, joining players are teleported to the configured EternalTD spawn location.

The official hub package is tracked separately from gameplay maps and is installed as the etd_spawn world in the server's world container.

Reloading After Imports

Use /etd reload after manual imports or manual file cleanup.

Reloading EternalTD currently:

  • re-runs the importer
  • reloads content packages
  • reloads levels, waves, NPCs, and world templates
  • refreshes package update/access state
  • re-initializes the resource-pack helper
  • asks FreeMinecraftModels to reload imported content if that plugin is present