MC Toolkit

Panduan / Perintah & Data

/attribute: nilai dasar versus modifier, dan kenapa punyamu terus ter-reset

Menetapkan nilai dasar bersifat permanen dan menetapkan modifier tidak — kecuali kamu memilih operation yang salah. Tiga operation, urutan penumpukannya, dan jebakan slot.

/attribute terlihat seperti satu command dengan tiga subcommand. Sebenarnya itu dua sistem berbeda yang kebetulan memiliki nama sama, dan mencampuradukkannya adalah alasan kenapa nilai terus kembali seperti semula.

base versus modifier

/attribute @s minecraft:max_health base set 40
/attribute @s minecraft:max_health modifier add my_buff 20 add_value
  • base set menulis ulang nilai milik entity itu sendiri. Perubahan ini bertahan melewati reload dan tidak dihapus oleh apa pun kecuali base set lain.
  • modifier add menambahkan penyesuaian bernama di atasnya. Modifier disimpan bersama entity sama seperti base, memiliki id, dan bisa dihapus berdasarkan id tersebut.

Kalau perubahanmu tidak mau hilang, kamu entah memakai base set dan butuh base reset, atau menambahkan modifier yang butuh modifier remove <id>.

Tiga operation, dan urutan penerapannya

OperationFungsinyaDiterapkan
add_valuenilai + npertama
add_multiplied_basenilai + (base × n)kedua
add_multiplied_totaltotal berjalan × (1 + n)terakhir

Urutannya tetap dan ini penting. Mulai dari base 20, lalu add_value 10 dan add_multiplied_total 0.5:

20 → 30 → 45          not  20 → 30 → 30 + 10 = 40

add_multiplied_base mengalikan base setelah modifier add_value ditambahkan — bukan total berjalan — itulah sebabnya dua modifier seperti itu menumpuk secara aditif, bukan berbunga majemuk.

Id modifier sekarang ber-namespace

Versi lama memakai UUID. Versi modern memakai namespaced id:

/attribute @s minecraft:attack_damage modifier add my_pack:rage 5 add_value

Menambahkan modifier kedua dengan id yang sama akan gagal dengan pesan "Modifier … is already present", bukan menumpuk atau menggantinya. Untuk menyegarkan buff, modifier remove dulu modifier-nya.

Modifier equipment melekat pada item, bukan pada entity

Bonus damage sebuah sword adalah item component attribute_modifiers, dan hanya berlaku selama item berada di slot yang tepat:

/give @s diamond_sword[attribute_modifiers=[{type:"attack_damage",amount:5,
  operation:"add_value",slot:"mainhand",id:"my:bonus"}]]

Lupa menyertakan slot adalah kesalahan yang paling umum. Nilainya default ke any, jadi modifier berlaku di semua slot equipment — sword memberi buff dari offhand, atau dari slot armour, bukan hanya dari main hand.

Slot yang valid: mainhand, offhand, hand, head, chest, legs, feet, armor, body, saddle, any.

Membaca nilai kembali

/attribute @s minecraft:max_health get

mengembalikan total efektif, termasuk modifier. /attribute @s minecraft:max_health base get hanya mengembalikan base-nya.

Bangun salah satu dari ini — termasuk bentuk item-component dengan slot yang sudah diatur — di Entity & Combat Command Builder.

Perintah entitas dan pertarungan →

Panduan lainnya

Lihat semua →