Skip to main content

EternalTD Models and Resource Pack

EternalTD's current model flow is built around FreeMinecraftModels, and its current resource-pack flow is driven by /etd install.

FreeMinecraftModels

FreeMinecraftModels is a soft dependency.

  • EternalTD still loads without it.
  • When it is present, EternalTD can replace vanilla entities with FMM-backed static models.
  • When it is not present, EternalTD falls back to its non-FMM behavior instead of blocking startup.

The current shared model package is:

  • EternalTD Custom Models

That package is downloaded through EternalTD's content flow and is described in code as content that imports into FreeMinecraftModels when FMM is available.

Because the pack's models land on the FreeMinecraftModels side, EternalTD also treats a non-empty FMM model folder as proof the pack is installed:

plugins/FreeMinecraftModels/models/EternalTD default towers/
plugins/FreeMinecraftModels/Models/EternalTD default towers/

(the capitalised spelling is the legacy FMM folder name). If either is present, /etd setup shows the pack as installed and writes the tracking marker on the spot, so models that arrived through a manual import or through FMM's own setup no longer read as missing.

What /etd reload Does for Models

/etd reload restarts EternalTD in place and reloads EternalTD's own files, but it does not reload FreeMinecraftModels. A method that would forward the reload to FMM exists in EternalTD's source, but nothing calls it in the current build.

After importing or downloading model assets, reload FreeMinecraftModels through its own commands as well.

/etd install

/etd install does not download a model package. It applies the official EternalTD resource-pack distribution settings.

The current official resource-pack URL is:

https://www.magmaguy.com/downloads/eternaltd_resource_pack.zip

If ResourcePackManager is installed

EternalTD registers the official pack with ResourcePackManager and asks RPM to reload its pack state.

In that mode:

  • EternalTD does not write the pack URL into server.properties
  • ResourcePackManager handles distribution to players
  • EternalTD registers /etd reload as the follow-up reload command

If ResourcePackManager is not installed

EternalTD falls back to editing server.properties directly.

It writes:

  • resource-pack
  • resource-pack-sha1

Before changing either property, EternalTD downloads the pack to a temporary file and calculates its SHA1. If the download or hash fails, server.properties is left unchanged. On success, both values are written together through a temporary file and atomic replacement where the operating system supports it; the downloaded temporary pack is then deleted.

In this fallback mode, the command tells you to restart the server for the new pack settings to apply.

SHA1 Update Check

If EternalTD is using the server.properties path instead of ResourcePackManager, startup also checks whether the official resource pack's SHA1 has changed.

If it has changed, EternalTD updates the stored SHA1 and warns that a restart is required.

Operator Warning Behavior

When all of these are true:

  • FreeMinecraftModels is installed
  • the joining player is op
  • EternalTD does not detect an active resource-pack setup

EternalTD warns that the official resource pack still needs to be installed and points the operator to:

  • /etd install
  • /etd initialize (opens the first-time setup menu; requires eternaltd.*)
  • /etd setup

Cleanup Notes

The custom models package is treated as shared resource content, not as a normal toggleable pack.

If you want to remove it:

  1. Remove the imported files manually.
  2. Review the FreeMinecraftModels model folders or /fmm setup as needed.
  3. Run /etd reload.