/attribute: valor base versus modificadores, e por que o seu continua resetando
Definir um valor base é permanente e definir um modificador não é — a menos que você escolha a operação errada. As três operações, a ordem de empilhamento e a armadilha do slot.
/attribute parece um único comando com três subcomandos. Na verdade, são dois sistemas diferentes que por acaso compartilham o mesmo nome, e confundi-los é o motivo pelo qual os valores continuam voltando ao que eram.
base versus modificador
/attribute @s minecraft:max_health base set 40
/attribute @s minecraft:max_health modifier add my_buff 20 add_value
base setreescreve o valor da própria entidade. Ele persiste entre recarregamentos e não é removido por nada, exceto por outrobase set.modifier addadiciona um ajuste nomeado por cima. Ele é salvo junto com a entidade, assim como o valor base, tem um id e pode ser removido por esse id.
Se a sua alteração não sai do lugar, ou você usou base set e precisa de base reset, ou adicionou um modificador que precisa de modifier remove <id>.
As três operações, e a ordem em que se aplicam
| Operação | O que faz | Aplicada |
|---|---|---|
add_value | valor + n | primeiro |
add_multiplied_base | valor + (base × n) | em segundo |
add_multiplied_total | total acumulado × (1 + n) | por último |
A ordem é fixa e importa. Partindo do valor base 20, depois add_value 10 e add_multiplied_total 0.5:
20 → 30 → 45 not 20 → 30 → 30 + 10 = 40
add_multiplied_base multiplica o valor base depois que os modificadores add_value são somados — não o total acumulado — e é por isso que dois deles se somam de forma aditiva em vez de se acumularem de forma composta.
Os ids de modificador agora têm namespace
Versões mais antigas usavam um UUID. As versões modernas usam um id com namespace:
/attribute @s minecraft:attack_damage modifier add my_pack:rage 5 add_value
Adicionar um segundo modificador com o mesmo id falha com "Modifier … is already present" em vez de empilhar ou substituir. Para renovar um buff, use modifier remove nele primeiro.
Modificadores de equipamento ficam no item, não na entidade
O bônus de dano de uma espada é um componente de item attribute_modifiers, e só se aplica enquanto o item estiver no slot correto:
/give @s diamond_sword[attribute_modifiers=[{type:"attack_damage",amount:5,
operation:"add_value",slot:"mainhand",id:"my:bonus"}]]
Omitir slot é o erro mais comum. Ele assume any por padrão, então o modificador se aplica em todos os slots de equipamento — uma espada te dá buff pela mão secundária, ou por um slot de armadura, não apenas pela mão principal.
Slots válidos: mainhand, offhand, hand, head, chest, legs, feet, armor, body, saddle, any.
Lendo um valor de volta
/attribute @s minecraft:max_health get
retorna o total efetivo, incluindo os modificadores. /attribute @s minecraft:max_health base get retorna apenas o valor base.
Monte qualquer um deles — incluindo a forma de componente de item com o slot definido — no Entity & Combat Command Builder.