Playing an EternalTD Match
This page covers what a player actually sees and does inside a level instance: the on-screen displays, the placement aid, and the rules that quietly end a run. Tower stats live in Towers; enemy scaling lives in Waves & Enemies.
Getting In and Out
| Action | Command |
|---|---|
| Join a level | /etd join <level>, or right-click a level NPC and pick a map from its menu |
| Start the first wave | /etd start (alias /etd go) |
| Skip the build timer | Right-click with the Next Wave tool; tutorial requirements still apply |
| Leave the run | /etd quit (alias /etd stop) |
| Leave and return to the hub | /etd hub (alias /etd lobby) |
You cannot join a second level while you are already in one, and a second /etd join while your world is still being copied is refused rather than queued. Levels run on the shared Nightbreak match system, so you also cannot join while you are in another Nightbreak plugin's match, and while your world is being copied other plugins' matches turn you away. Disconnecting, or 10 minutes without a ready world, cancels the preparation and deletes the partial copy. Wait for "Created your world! We're ready to go."; "Joined level!" alone does not prove entry succeeded. You arrive at the level world's spawn point.
/etd start only works before the first wave. The Next Wave tool advances from the starting or construction phase. Neither advances until any tutorial requirement is met, although /etd start still replies "Started level!".
On-Screen Displays
Scoreboard
A sidebar scoreboard headed [Eternal TD] is shown for the whole run and refreshed whenever anything on it changes:
- Wave — the current wave number
- Lives — starts at 20
- Gold — starts at 150
- Kills — total enemies you have killed this run
- Current wave attribute — the current wave object's elemental attunement (fire, air, water or earth), shown after a wave starts and retained during the following construction phase
Your scoreboard is captured on entry and restored when the run ends within the same server session. That saved scoreboard is kept in memory, so it is not restored from the crash-recovery record after a server restart.
Wave progress bar
While a wave is running, a red boss bar reads Wave N! | remaining/total, plus modifiers from its first configured enemy (Fast, Horde, Air, Boss, Treasure, Resistant). Remaining includes enemies not yet spawned and decreases when enemies die or reach an exit. Splitterlings add to remaining without increasing the original total, so the count can exceed that total; the bar itself is capped at full.
Boss enemies get their own separate red bar titled Boss! tracking that single mob's health.
Action bar prices
Holding a tower item shows its current price next to your gold. That price text currently stays dark green even when you cannot afford it, so compare the numbers. Holding the Upgrade tool and looking at a tower shows its upgrade cost in green when affordable and red otherwise. The Sell tool shows only the tower's sell value in green. These displays refresh every 5 ticks; upgrade and sell targeting traces blocks up to 300 blocks away.
Nameplates and floating tags
- Every enemy glows and carries a red heart bar (
♥/♡, up to ten hearts) as its nameplate. - From wave 10 onward, enemies with armor also carry a shield bar (
🛡/X) floating just above the hearts. - Enemies that rolled the wave's elemental attunement carry a coloured element tag above that.
- Every Basic Tower carries a stat stack above it — always
DamageandAttack Speed, plus one line per support bonus actually attached. Support towers carry their own element tag. - Every kill that pays gold spawns a floating
+Ngold tag at the mob's head.
The Placement Highlight
A translucent stained-glass slab tracks whichever grid square your crosshair is on, refreshed every 2 ticks out to 25 blocks. Its colour tells you whether you can build there:
| Colour | Meaning |
|---|---|
| Lime | Buildable — empty and not a start/end tile |
| Red | A tower is already on this square |
| Light blue | A start or end tile, permanently non-buildable |
| Nothing shown | Your crosshair is outside the play area |
The slab is a server-created BlockDisplay entity used for scenery. It does not place a real block or block enemy paths. Lime only reflects an empty constructable square; placement can still fail because of cost, path blocking, tutorial rules or a cancelled placement event. The tool's block trace reaches 300 blocks, farther than the 25-block highlight.
Match Rules
While you are in a level instance:
- You are given flight at fly speed
0.3. The match inventory setup does not change your game mode or invulnerability flag. - Breaking and placing blocks is cancelled.
- EternalTD cancels player interaction events unless the main hand holds a written book; this includes left-click interactions. Its own right-click build/upgrade/sell handler runs at an earlier priority and has a 5-tick cooldown. These handlers do not guarantee ordering against other plugins that alter the same event.
- Ordinary right-click item use is blocked. The separate projectile listener does not provide a blanket projectile ban: it checks the projectile entity as though it were a player, so integrations that launch projectiles directly are not covered by it.
- Damage events against participating players are cancelled; the plugin does not need to change their persistent invulnerability flag.
- Teleports into or out of the level world are refused while you are in the run, including teleports from one point of the level world to another. Only EternalTD's own moves go through, so teleports from commands such as
/spawnor/tpaare refused until you leave with/etd quitor/etd hub. - If you fall below the world or end up outside the level world, you are pulled back to the last block you stood on. The level spawn is used instead when you have not stood on a block yet or after three rescues in a row.
- Other players cannot teleport into your level world. Anyone who gets in anyway is sent to the hub spawn from
config.yml, or to the main world's spawn when no hub is configured. Players witheternaltd.match.bypass(default: op) can teleport in and are left alone. - Inventory clicks are cancelled by default. Clicks in the upper rows (slot 9 and above) are re-allowed when there is an item there, and the support-tower row is rebuilt half a second later so nothing goes missing. Empty hotbar slots accept picked-up items; clicking an occupied hotbar slot consumes that match item instead. Match items are freely re-obtainable from the rows above. Clicks outside the player inventory stay cancelled.
- The instance world itself blocks explosions, liquid flow, elytra, fly toggling, friendly fire and vanilla mob spawning.
- EternalTD cancels vanilla damage against active wave enemies. Its tagged entities also have combustion and transformation events cancelled and their death drops and XP cleared. Napalm can still apply visual fire and EternalTD damage over time.
Things That End Your Run
These events end the session and start player recovery, tower removal and temporary-world cleanup:
/etd quit, or/etd hubafter a usable hub destination has been found- Losing your last life
- Running out of waves with no sudden-death pool configured
- Dying
- Disconnecting from the server
- A server shutdown,
/etd reload, or an EternalTD plugin update applied without a restart
Teleporting does not end a run: the match system refuses the teleport instead (see Match Rules).
Ending is idempotent: /etd quit immediately followed by /etd hub will not double-tear-down the session.
Before changing your inventory, EternalTD saves a recovery record containing inventory, selected slot, flight state and return location. Normal recovery restores that state and moves you back to where you were just before you entered the level, or to the main world's spawn if that world is no longer loaded. After a crash, the record is restored the next time you join and you are sent to the saved location if its world is loaded; a rejected teleport there is logged without undoing inventory recovery. With manageSpawn: true, the usual join teleport to the hub still follows one tick later. Failed state recovery retains the record and disconnects you for a retry on rejoin; scoreboard recovery requires the same server session. World cleanup may be refused or delayed, so the end message does not prove deletion. See Levels & Maps.
Normal completion broadcasts your name and the wave reached. If you did not cheat and beat the stored record, a separate high-score broadcast is sent just before it. Each new wave also gets a server-wide announcement. Aborted initialization does not record a score or announce a completed run.
The Guide Book
Slot 0 (and slot 9) holds a written book generated from the playerGuide value in config.yml. The default text walks a new player through lives, gold, tower basics, each tower type, every wave property, and a few build strategies. <br> in that config value splits the text into book pages, and &-codes are converted to colours.
The written book is exempt from EternalTD's general interaction cancellation, so it can be opened mid-run. It has no tower/tool action, but the right-click handler still performs its block lookup and may print an aiming or outside-play-area message.
After editing playerGuide and running /etd reload, the next generated book uses the new text. The item is cached and rebuilt only when that text changes. Reloading also ends active matches.