Membuat Sistem Economy (Uang, Toko, Jual-Beli) di Minecraft Bedrock
Membuat sistem economy di Minecraft Bedrock tanpa add-on menggunakan scoreboard, NPC toko, transfer uang antar pemain, gaji per menit, dan menjual item, serta alternatif dengan Script API.
Oleh KawaiiVerse Studio · Diperbarui
Server survival atau dunia RPG jadi lebih seru dengan uang: pemain bisa menjual hasil tambang, membeli perlengkapan, dan bertransaksi dengan pemain lain. Di Bedrock, sistem ini bisa dibuat tanpa add-on, cukup dengan scoreboard, tag, dan NPC. Pastikan kamu sudah memahami scoreboard sebelum membaca panduan ini.
1. Menyiapkan mata uang
/scoreboard objectives add uang dummy "§6Koin"
/scoreboard objectives setdisplay sidebar uangAgar setiap pemain baru langsung punya saldo 0, jalankan baris ini setiap tick lewat repeating command block atau function di tick.json:
scoreboard players add @a uang 0Untuk memberi modal awal 100 koin kepada pemain baru, gunakan tag sebagai penanda:
scoreboard players add @a[tag=!sudah_modal] uang 100
tag @a[tag=!sudah_modal] add sudah_modal2. Pola transaksi yang aman
Semua transaksi memakai pola yang sama:
- Tandai pemain yang memenuhi syarat dengan tag.
- Jalankan semua aksi hanya untuk pemain bertag.
- Hapus tag.
Pola ini mencegah bug klasik seperti pemain mendapat barang padahal uangnya kurang, atau uang terpotong padahal barang gagal diberikan.
3. Toko beli (NPC)
Buat NPC (lihat cara membuat NPC) dan tambahkan tombol Beli Pedang Besi — 150 koin:
/tag @initiator[scores={uang=150..}] add beli
/give @a[tag=beli] iron_sword 1
/scoreboard players remove @a[tag=beli] uang 150
/playsound random.levelup @a[tag=beli]
/tellraw @initiator[tag=!beli] {"rawtext":[{"text":"§cKoinmu belum cukup (butuh 150)."}]}
/tag @a remove beli4. Toko jual
Menjual item lebih rumit karena kita harus memastikan pemain benar-benar punya barangnya. Gunakan argumen hasitem pada selector:
/tag @initiator[hasitem={item=diamond,quantity=1..}] add jual
/clear @a[tag=jual] diamond 0 1
/scoreboard players add @a[tag=jual] uang 80
/tellraw @a[tag=jual] {"rawtext":[{"text":"§aTerjual 1 diamond (+80 koin)"}]}
/tellraw @initiator[tag=!jual] {"rawtext":[{"text":"§cKamu tidak punya diamond."}]}
/tag @a remove jualPada /clear, angka 0 adalah data value item dan 1 adalah jumlah yang dihapus. Untuk tombol Jual Semua, ubah logikanya menjadi pengulangan: jalankan blok di atas beberapa kali, atau gunakan Script API (lihat bagian 7).
5. Transfer uang antar pemain
Tanpa script, transfer antar pemain paling mudah dibuat dengan sistem "titip" di NPC bank. Contoh sederhana untuk mengirim 10 koin ke pemain yang berdiri di pelat tekanan tertentu:
/tag @initiator[scores={uang=10..}] add kirim
/scoreboard players remove @a[tag=kirim] uang 10
/execute if entity @a[tag=kirim] run scoreboard players add @p[x=100,y=64,z=100,r=1,tag=!kirim] uang 10
/tag @a remove kirimUntuk transfer dengan nama pemain yang diketik bebas, gunakan Script API dengan form, karena command tidak bisa membaca input teks.
6. Gaji per menit
Berikan 5 koin setiap menit bermain untuk mendorong pemain tetap aktif:
# function sistem/gaji, dipanggil setiap tick
scoreboard players add @a gaji_tick 1
scoreboard players add @a[scores={gaji_tick=1200..}] uang 5
scoreboard players set @a[scores={gaji_tick=1200..}] gaji_tick 07. Alternatif: Script API
Untuk toko dengan menu (form), jual semua item, atau transfer dengan nama pemain, Script API jauh lebih fleksibel. Contoh membaca dan menambah skor dengan @minecraft/server:
import { world } from "@minecraft/server";
function tambahUang(player, jumlah) {
const uang = world.scoreboard.getObjective("uang");
uang.addScore(player, jumlah);
}
world.afterEvents.entityDie.subscribe(({ deadEntity, damageSource }) => {
const pembunuh = damageSource.damagingEntity;
if (pembunuh?.typeId === "minecraft:player" && deadEntity.typeId === "minecraft:zombie") {
tambahUang(pembunuh, 2);
}
});Menu toko berbentuk tombol bisa dibuat dengan modul @minecraft/server-ui (ActionFormData). Ingat untuk menambahkan dependency modul tersebut di manifest.json.
8. Menjaga keseimbangan ekonomi
- Batasi sumber uang. Jika menjual item terlalu menguntungkan (misalnya hasil farm otomatis), harga akan cepat tidak berarti. Turunkan harga jual barang yang mudah didapat.
- Buat pengeluaran. Biaya teleport, sewa lahan, atau item kosmetik membantu menyerap uang dari ekonomi.
- Catat harga di satu tempat. Simpan harga di fake player (misalnya
#harga_pedang) agar mudah diubah tanpa mengedit setiap tombol NPC. - Jangan beri pemain biasa akses command. Satu operator yang ceroboh bisa merusak ekonomi dengan
/scoreboard players add.
Dengan sistem ini, servermu sudah punya ekonomi dasar. Untuk server Java, lihat panduan economy di server Java.