[MC-2490] TNT animation ends at 80 ticks, ignores fuse length changes Created: 08/Nov/12  Updated: 14/Nov/20  Resolved: 11/Nov/20

Status: Resolved
Project: Minecraft: Java Edition
Component/s: None
Affects Version/s: Minecraft 1.4.2, Minecraft 1.5, Minecraft 1.5.2, Minecraft 1.6.2, Minecraft 1.6.4, Minecraft 1.7.10, Minecraft 14w30c, Minecraft 1.8, Minecraft 1.8.1, Minecraft 1.8.3, Minecraft 1.8.4, Minecraft 1.8.5, Minecraft 1.8.6, Minecraft 1.8.7, Minecraft 1.9.4, Minecraft 16w20a, Minecraft 16w21a, Minecraft 16w21b, Minecraft 1.10 Pre-Release 1, Minecraft 1.10 Pre-Release 2, Minecraft 1.10, Minecraft 1.10.1, Minecraft 1.10.2, Minecraft 16w32a, Minecraft 16w32b, Minecraft 16w33a, Minecraft 16w35a, Minecraft 1.11.2, Minecraft 1.12.2, Minecraft 18w20c, Minecraft 1.13.1, Minecraft 1.13.2, Minecraft 18w48a, Minecraft 18w48b, Minecraft 18w49a, 1.14.4, 19w39a, 19w40a, 19w41a, 19w42a, 19w44a, 1.15 Pre-release 1, 1.15 Pre-Release 2, 1.15 Pre-release 3, 1.15 Pre-release 4, 1.15 Pre-release 6, 1.15 Pre-release 7, 1.15.1 Pre-release 1, 1.15.2 Pre-Release 1, 1.15.2 Pre-release 2, 1.15.2, 20w06a, 20w07a, 20w08a, 20w09a, 20w10a, 20w11a, 20w12a, 20w21a, 1.16 Pre-release 2, 1.16 Pre-release 3, 1.16 Pre-release 5, 20w28a, 20w29a, 20w30a, 1.16.2 Pre-release 1, 1.16.2, 1.16.3 Release Candidate 1, 1.16.3, 1.16.4 Pre-release 2, 1.16.4
Fix Version/s: Minecraft 15w32c, 20w46a

Type: Bug
Reporter: Connor Steppie Assignee: [Mojang] slicedlime
Resolution: Fixed Votes: 29
Labels: None

Issue Links:
Duplicate
is duplicated by MC-81937 PrimedTnt with long fuses disappear b... Resolved
is duplicated by MC-102314 Tnt invisibility Resolved
Relates
relates to MC-100146 Creeper swelling animation doesn't ta... Reopened
relates to MC-59168 TNT explode delay Resolved
relates to MC-205567 TNT flashes are translucent once again Resolved
CHK:
Confirmation Status: Confirmed
Category:
Commands, Entities, Rendering
Mojang Priority: Normal

 Description   

Summon a Primed TNT using

/summon tnt ~ ~ ~ {Fuse:127}

As the fuse is set to 127, the Primed TNT will explode after 127 ticks. This is as expected.
However the client isn't informed of this change and will show the TNT animation exploding at the normal 80 ticks. This also removes the TNT entity from the client side.

/data merge entity @e[type=tnt,limit=1] {Fuse:127}

works on the invisible TNT to extend the fuse, but will not render it back as the client has already deleted the entity.

TL;DR Server doesn't inform client of fuse length changes, TNT animation will always end at 80 ticks.


To reproduce in 16w21b, simply summoning a TNT with Fuse:127b won't work. You must continuously use /entitydata to stop the Fuse value from reaching zero.
Example: run this in a repeating command block:

/data merge entity @e[type=tnt,limit=1] {Fuse:127}

Code analysis by marcono1234 can be found in this comment.



 Comments   
Comment by Numeritos [ 12/Jun/20 ]

Affects 1.16 pre5

Comment by Connor Steppie [ 27/Sep/19 ]

Affects 19w39a

Comment by Connor Steppie [ 26/Sep/19 ]

Affects 19w38b, can I request ownership?

Comment by Oval [ 20/Sep/18 ]

Confirmed for 1.13.1.

Updated entitydata command: /data merge entity @e[type=tnt,limit=1] {Fuse:127}
Comment by Paint [ 29/Jan/17 ]

Confirmed for 1.11.2.

Comment by Marcono1234 [ 09/Jul/16 ]

Please link to this comment in the description

The following is based on a decompiled version of Minecraft 1.10 using MCP 9.30.

The reason for this is that the method net.minecraft.network.datasync.EntityDataManager.set(DataParameter<T>, T) only sets the dirty field of a DataEntry to true if the set value is not equal to the current value. Only if the dirty value is true, a SPacketEntityMetadata is sent to the client. The problem here is that the EntityTNTPrimed class uses both a DataEntry an a fuse field for storing the fuse value. However only the fuse field is decreased when the method net.minecraft.entity.item.EntityTNTPrimed.onUpdate() is called. This means that the value of the DataEntry is still 127 when the /entitydata command sets it to 127.
This should probably solved by removing the fuse field completely.

Comment by null (Inactive) [ 23/Jun/16 ]

Confirmed for 1.10.2.

Comment by null (Inactive) [ 22/Jun/16 ]

Confirmed for 1.10.1.

Comment by null (Inactive) [ 08/Jun/16 ]

Confirmed for 1.10.

Comment by null (Inactive) [ 07/Jun/16 ]

Confirmed for 1.10-pre2.

Comment by null (Inactive) [ 03/Jun/16 ]

Confirmed for 1.10-pre1.

Comment by null (Inactive) [ 27/May/16 ]

The bug is the same; only the steps to reproduce have been slightly modified.

Comment by libraryaddict [ 27/May/16 ]

If the bug has changed, shouldn't a new bug be opened instead of this bug used?

This bug has been fixed, the new bug is similar but not the same one.

Comment by null (Inactive) [ 26/May/16 ]

Confirmed for 16w21b.

The description of the bug should be updated, as the steps to reproduce in the description no longer work.

Comment by null (Inactive) [ 25/May/16 ]

Confirmed for 16w21a.

To reproduce, simply summoning a TNT with Fuse:127b won't work. You must continuously use /entitydata to stop the Fuse value from reaching zero.

Comment by user-f2760 (Inactive) [ 24/May/16 ]

Reopened.

Comment by null (Inactive) [ 24/May/16 ]

Confirmed for 16w20a! See MC-102314 (I also tested it myself).

Comment by user-f2760 (Inactive) [ 19/Aug/15 ]

if I use it in the latest snapshot, the tnt is still unrendered a lot earlier then it explodes for me

Comment by [Mod] redstonehelper [ 19/Aug/15 ]

FVBico: That command works fine for me in 15w34a. Is it still broken for you in the latest snapshot?

Comment by user-f2760 (Inactive) [ 18/Aug/15 ]

it states that this is fixed in 15w32c, but if I use

summon PrimedTnt ~ ~ ~ {Fuse:200}

it still disappears before it explodes

Comment by mert [ 31/May/15 ]

Confirmed for 1.8.6

Comment by KingSupernova [ 17/Mar/15 ]

Confirmed for 1.8.3. Relates to MC-59168.

Comment by [Mod] Sonicwave [ 16/Sep/14 ]

Confirmed for 1.8.

Comment by [Mod] Ezekiel (ezfe) [ 10/Aug/14 ]

From the same comment

a 5 second fuse visually explodes at ~4 seconds, and actually explodes at ~5

Comment by Paint [ 10/Aug/14 ]

"a 60 second fuse simply doesn't work"

Indeed, since the fuse value can only go to a max of 127 (See MC-30255, that's intentional). But ignoring that factor, the fuse animation is still independent from the actual fuse of the entity. Use this command:

/summon PrimedTnt ~ ~ ~

{Fuse:127}

The pause in-between the entity disappearing and the actual explosion is the bug.

Comment by [Mod] Ezekiel (ezfe) [ 27/Jul/14 ]

summon still counts as vanilla

Comment by libraryaddict [ 26/Jul/14 ]

Does spawning it in using /summon count as vanilla?

Comment by [Mod] Ezekiel (ezfe) [ 26/Jul/14 ]

I'm not able to reproduce. While I do see some de-syncing of explosion times, i.e. a 5 second fuse visually explodes at ~4 seconds, and actually explodes at ~5, a 60 second fuse simply doesn't work, and the server / client agree on it. Does this require non-vanilla NBT changes?

Comment by libraryaddict [ 26/Jul/14 ]

Updated

Comment by [Mod] Ezekiel (ezfe) [ 26/Jul/14 ]

Is this still a concern in the latest Minecraft version 14w30c? If so, please update the affected versions in order to best aid Mojang ensuring bugs are still valid in the latest releases/pre-releases.

Comment by feildmaster [ 26/Sep/13 ]

An update on what this issue is caused by:

The client gets a packet when the entity spawns (Packet23), this packet does not take NBT data into account. The way tnt fuses are implemented (as nbt, not in the DataWatcher), the fuse gets completely ignored (both on the server <stop/start> and the client <always>)

Comment by libraryaddict [ 26/Sep/13 ]

Still is a concern.

Comment by [Mod] CubeTheThird [ 26/Sep/13 ]

Is this still a concern in the current Minecraft version 1.6.4 / Launcher version 1.2.5 ? If so, please update the affected versions in order to best aid Mojang ensuring bugs are still valid in the latest releases/pre-releases.

Comment by libraryaddict [ 21/May/13 ]

Still is a concern.

Comment by Tails [ 15/Mar/13 ]

Is this still a concern in the current Minecraft version? If so, please update the affected versions in order to best aid Mojang ensuring bugs are still valid in the latest releases/pre-releases.

Comment by feildmaster [ 26/Dec/12 ]

This isn't invalid, as you can actually reproduce it in vanilla. Reopening.

Comment by mprock3 [ 11/Nov/12 ]

I was able to replicate this without bukkit and in single player. This can't be replicated in pure vanilla, but it also addresses that some NBT data isn't being sent to the client, which is an issue.

To change the fuse length, you can use MCEdit to create a schematic where an NBT editor can edit the entity then and replaced back into the map.

In vanilla minecraft the fuse length is redundant but to map makers, or to a future feature this is potentially a bad issue.

Comment by Cloudy (Aaron Mills) [ 10/Nov/12 ]

The client won't know about the fuse length being changed after being spawned - hence why it explodes at a different time. As this was done using bukkit, this is invalid as it cannot be repeated under vanilla circumstances.

Comment by libraryaddict [ 10/Nov/12 ]

This was using bukkit.

Spawned in entity and changed fuse length.

Comment by Selbram (Tory Clement) [ 10/Nov/12 ]

I would still like to know the steps taken to accomplish this so it can be confirmed.

Comment by mprock3 [ 10/Nov/12 ]

TNT now has an NBT tag defining the fuse length.

Comment by Selbram (Tory Clement) [ 10/Nov/12 ]

How are you changing the fuse length?

Generated at Sun Jan 12 11:58:02 UTC 2025 using Jira 9.12.2#9120002-sha1:301bf498dd45d800842af0b84230f1bb58606c13.