In the latest snapshot, I was planning on making a mob that's name is always visible using the CustomNameVisible tag. But when summoning a mob, the name would only appear when looking at it. I tried this tag on other entities, like Armor Stands and dropped Items, and the custom name did appear.
When I did the command: /summon ArmorStand ~ ~ ~ {CustomName:"Bob",CustomNameVisible:true} the armor stand would have the name "Bob" above it. Even when not looking at the armor stand the name shows like I assume it should.
When doing this command: /summon Villager ~ ~ ~ {CustomName:"Bob",CustomNameVisible:true} the Villager will display the name, but only when looking at him.
If doing: /summon Villager ~ ~ ~ {CustomName:"Bob",CustomNameVisible:false} the Villager will have the same results. Will still display the name if looking at the mob.
I've tested this with multiple mobs and non-mob entities.
Just to prove my point, I have a picture of me looking at neither entity, and the Villager's name isn't displaying, but the Armor Stand's name is.
The other picture is of me looking AT the Villager. As you can see my cursor is displaying the Villager's name and since the tag was affecting the Armor Stand, the Armor Stand was also displaying it's name.
Linked issues
duplicates 1
Attachments
Comments 10
How is this "Works as Intended" exactly? I know Searge said that that particular tag doesn't work on mobs/animals because of how the name rendering works for them, but shouldn't that mean that this is still technically a bug? Or should it just be a "requested feature" for it to affect mobs? Because this makes no sense. Mapmakers like myself could really use a tag like this.
I agree completely, BratrilliantGamer7, It seems to me like CustomNameVisible should override any other name rendering and force CustomName to be continuously visible instead of any other nametag behavior. Even in item frames, I think it should ignore the contained item name it has inside and force this behavior instead with CustomName, because I feel like CustomNameVisible should just be more important than the natural behavior of the entities since you have to explicitly set it by hand
this is a duplicate of MC-57516 who says:
[Mojang] Searge (Michael Stoyke) wrote:
The CustomNameVisible tag does not work on animals and mobs, because they have different rules about showing the name. For the other entities it should work.
and mojangs does with the game that mojang wants, mods aren't going to reopen this because they are not going to argue with mojang
the problem isn't that mojang chooses to make it work like this, it's more like it doesn't work as is first expected for someone who wants to use the feature. It's a consequence of the way mojang wrote the code that it does this, and it's considered broken when people are surprised by it. I'm sure if enough people comment and agree that it should be fixed, they could change their minds and fix the apparent problem.
If enough people agree that this is a bug, I think it makes sense for mojang to modify the way that mobs work so that their names work more reliably and congruently to the way the rest of the entities work.
This change breaks most of the adventure maps I've made.
Instead of having a rich environment of many different custom monsters, everything collapses to zombies and skeletons again.
Since it works for armorstands, there is no reason except some arbitrary decision to break it for mobs.
If there is a performance concern- make it a user selectable option
a) no names
b) show only the name of the creature I'm looking at.
c) show all custom names.
The custom name data exists and is being sent to the client so I can't see the performance savings.
This is broken. Please fix!
Here is a work around.
The name is higher and you need twice as many entities... but it works.
/summon ArmorStand ~ ~1 ~ {CustomName:"Brethren Glorius",CustomNameVisible:1,Invisible:1,DisabledSlots:15,Riding:{id:"Skeleton",Equipment:[{},{},{},{id:golden_chestplate,Count:1},{}]}}
I.e. summon a named invisible armor stand riding the creature you are summoning.
So I tried smaller items. a named stone button riding the skeleton. Couldn't make it invisible but it fit inside the skeleton's head.
/summon Item ~ ~1 ~ {CustomName:"Brethren Glorious",CustomNameVisible:1,Item:{id:stone_button,Count:1},PickupDelay:99999,Owner:Notch,Riding:{id:"Skeleton",Equipment:[{},{},{},{id:golden_chestplate,Count:1},{}]}}
The problem with these approaches is that it leaves named items on the ground. Need a way to clean them up.
I had to /minecraft:kill @e[type=ArmorStand] the armorstands.
I think you could use named "bones" for skeletons and named rottenflesh for zombies. Then the players would just pick up those items when the monster died.
I have to agree with stephen here, I imagine the reason mojang wanted to make the mob tags only viewable when the player hovers over them is probably so you can't pseudo-wallhack and see monsters through walls
The problem with this is that for cases where map makers want the mobs to show their names anyway, they have to use workarounds like the one stephen outlined here which adds another entity for every named mob you want. This can get incredibly detrimental to framerate if someone wants a large number of named mobs, for instance in a large battle/warzone.
I think the tag CustomNameVisible should be changed so that it has three options, using "magic numbers" isn't usually a good idea in programming, so I've given alternatives to the numbers as a suggestion:
0 for invisible (this could be the default for if the game doesn't understand what somebody wrote in the tag)
Alternatives could be: no, hidden, never
1 For ALWAYS visible
Alternatives could be: yes, force, always
2 for visible on hover/look
Alternatives could be: hover, look
I imagine the numbers would still have to be programmed in to protect backwards compatibility, but I'm sure people are also used to updating their maps with updates of the game.
I'm noticing the same thing, it seems really unfortunate that CustomNameVisible works like this for both values. I'd greatly prefer if 0 worked like this, and 1 made it visible always as is expected of other entities as well