I'm making a survival-mode PvP map which involves players sneaking into the opposing teams' bases to destroy objective blocks. This seems like a great opportunity for spectral arrows to actually be useful and impact gameplay in a interesting way. However, the default duration of spectral arrows' glowing effect (10 seconds) is so short that a base defender isn't likely to lose track of an attacker they hit with it over that period anyway, making it not worth it for them to ever take their focus off of just trying to kill the attacker. I haven't yet figured out how to increase the effect duration for the spectral arrows that I provide to players in chests, though. I would appreciate any help that anyone here might be able to offer.
Shot spectral arrow entities do have a "duration" tag (measured in ticks), and I've successfully shot one into a block above me, quit the game, used NBTExplorer to increase that value
, and gotten the increased duration effect when I logged back into the game and caused the arrow to hit me by breaking that block
. It doesn't work when I add a "duration" tag to the spectral arrows I provide to players in chests, though. The "glowing" effect that they produce when they hit players still only lasts for 10 seconds. Here's where I'm adding the tag. Please let me know if I'm adding it in the wrong place:
I've also tried adding the "glowing" effect to to custom tipped arrows. Just, adding a "Potion: minecraft:glowing" tag
doesn't work. (The stack of arrows that I tried added that tag to disappeared from my inventory when I tried to fire it.) Adding the effect through a "CustomPotionEffect" tag
does work, but has a couple associated problems:
1. Even though I set the duration to 1 minute (and it actually lasts for 1 minute when you hit a player with it), for some reason the hover-over tool-tip says that it only has a duration of 7 seconds. I can sort-of solve this problem by adding lore that says "§cActually, Glowing (1:00)" underneath that
, but that's awkward, confusing, and certainly not professional-looking.
2. The texture of the arrow is still that of a tipped arrow, which makes it less immediately identifiable to players as a spectral arrow. I am creating a custom resource pack for my map, so I thought that I might be able to solve that issue by giving the tipped arrows with the "glowing" effect a damage value of 1, and having the model file for tipped arrows instruct the game to display the spectral arrow texture for any tipped arrows with a damage value greater than 0
, but that didn't work. It just resulted in those arrows displaying with a featureless magenta texture. As a test, I was able to make a chain helmet with a damage value greater than 0 display with a spectral arrow texture, so my guess is that the game can't properly display custom damage-value-dependent textures for items (like arrows) that don't normally have >0 damage values.
I suppose that one solution might be to have a command block system running in the spawn chunks that constantly scans the course for shot spectral arrows, and changes any it detects with the standard "duration" value to have a longer "duration" value, but I prefer to avoid using command block systems whenever possible.
Extremely late, but if you're still interested, in 1.13 you can change the arrow's nbt by doing:
/execute as @e[type=minecraft:spectral_arrow] run data merge entity @s {Duration:100}
You can change the "{Duration:100}" to any number, such as "{Duration:215}"
You may be extremely late, but this is also helpful for anyone who may been looking for something similar in a much more recent version than what OP was in at the time.
I'm making a survival-mode PvP map which involves players sneaking into the opposing teams' bases to destroy objective blocks. This seems like a great opportunity for spectral arrows to actually be useful and impact gameplay in a interesting way. However, the default duration of spectral arrows' glowing effect (10 seconds) is so short that a base defender isn't likely to lose track of an attacker they hit with it over that period anyway, making it not worth it for them to ever take their focus off of just trying to kill the attacker. I haven't yet figured out how to increase the effect duration for the spectral arrows that I provide to players in chests, though. I would appreciate any help that anyone here might be able to offer.
Shot spectral arrow entities do have a "duration" tag (measured in ticks), and I've successfully shot one into a block above me, quit the game, used NBTExplorer to increase that value
, and gotten the increased duration effect when I logged back into the game and caused the arrow to hit me by breaking that block
. It doesn't work when I add a "duration" tag to the spectral arrows I provide to players in chests, though. The "glowing" effect that they produce when they hit players still only lasts for 10 seconds. Here's where I'm adding the tag. Please let me know if I'm adding it in the wrong place:
-----------------------------------------------------------------------------------------------
I've also tried adding the "glowing" effect to to custom tipped arrows. Just, adding a "Potion: minecraft:glowing" tag
doesn't work. (The stack of arrows that I tried added that tag to disappeared from my inventory when I tried to fire it.) Adding the effect through a "CustomPotionEffect" tag
does work, but has a couple associated problems:
1. Even though I set the duration to 1 minute (and it actually lasts for 1 minute when you hit a player with it), for some reason the hover-over tool-tip says that it only has a duration of 7 seconds. I can sort-of solve this problem by adding lore that says "§cActually, Glowing (1:00)" underneath that
, but that's awkward, confusing, and certainly not professional-looking.
2. The texture of the arrow is still that of a tipped arrow, which makes it less immediately identifiable to players as a spectral arrow. I am creating a custom resource pack for my map, so I thought that I might be able to solve that issue by giving the tipped arrows with the "glowing" effect a damage value of 1, and having the model file for tipped arrows instruct the game to display the spectral arrow texture for any tipped arrows with a damage value greater than 0
, but that didn't work. It just resulted in those arrows displaying with a featureless magenta texture. As a test, I was able to make a chain helmet with a damage value greater than 0 display with a spectral arrow texture, so my guess is that the game can't properly display custom damage-value-dependent textures for items (like arrows) that don't normally have >0 damage values.
I suppose that one solution might be to have a command block system running in the spawn chunks that constantly scans the course for shot spectral arrows, and changes any it detects with the standard "duration" value to have a longer "duration" value, but I prefer to avoid using command block systems whenever possible.
Extremely late, but if you're still interested, in 1.13 you can change the arrow's nbt by doing:
/execute as @e[type=minecraft:spectral_arrow] run data merge entity @s {Duration:100}
You can change the "{Duration:100}" to any number, such as "{Duration:215}"
You may be extremely late, but this is also helpful for anyone who may been looking for something similar in a much more recent version than what OP was in at the time.
Stay fluffy~