Arahkan mouse ke ServerScriptService, klik + dan tambahkan Script. Beri nama Stats.
Hapus baris yang sudah ada di dalamnya lalu tempel kode ini.
Tekan Play. Daftar pemain menampilkan Power 0 dan Coins 0.
ServerScriptService > Stats
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
local stats = Instance.new("Folder")
stats.Name = "leaderstats"
stats.Parent = player
for _, name in ipairs({"Power", "Coins"}) do
local value = Instance.new("IntValue")
value.Name = name
value.Parent = stats
end
local multiplier = Instance.new("IntValue")
multiplier.Name = "Multiplier"
multiplier.Value = 1
multiplier.Parent = player
end)
Fungsi tiap bagian
Perulangan membuat dua nilai dengan satu potongan kode: Power dan Coins.
Multiplier adalah jumlah power yang didapat dari satu klik. Nilai awalnya 1.
Multiplier ada di pemain dan bukan di leaderstats, jadi ia tersembunyi dari daftar pemain.
Detail lengkap
Saat kamu mengklik +, ketik kata Script untuk menemukannya dengan cepat.
Script terbuka di tab baru. Klik di dalam kode, tekan Ctrl+A lalu Ctrl+V untuk mengganti semuanya.
Ganti nama script di Explorer dengan F2. Nama itu hanya untukmu. Nama itu membantumu menemukan script nanti.
Daftar pemain ada di pojok kanan atas game.
Langkah ini tidak berhasil di tempatku
Periksa tiga hal ini dulu
Nama setiap part dan script sama persis dengan di panduan, termasuk huruf besarnya.
Script ada di dalam objek yang benar. Lihat label di atas kotak kode.
Buka jendela Output dari menu Window. Teks merah menunjukkan script dan baris yang bermasalah.
Tambahkan Part. Atur Size ke 6, 8, 6, nyalakan Anchored, dan beri nama Crystal. Pilih warna yang cerah dan atur Material ke Neon.
Arahkan mouse ke Crystal, klik + dan tambahkan ClickDetector.
Tambahkan Script ke Crystal lalu tempel kode ini.
Tekan Play lalu klik Crystal. Power naik 1 setiap klik.
Crystal > Script
local crystal = script.Parent
local clickDetector = crystal.ClickDetector
clickDetector.MouseClick:Connect(function(player)
local power = player.leaderstats.Power
power.Value += player.Multiplier.Value
end)
Fungsi tiap bagian
ClickDetector membuat Part bisa diklik. Ia juga berfungsi dengan ketukan di ponsel.
MouseClick memberi tahu script pemain mana yang mengklik.
Script menambahkan Multiplier pemain ke Power, jadi upgrade membuat setiap klik lebih kuat.
Detail lengkap
Ketik ukurannya di kolom Size di Properties lalu tekan Enter. Setelah itu angkat kristal dengan alat Move sampai berdiri di atas lantai.
Saat kamu mengklik +, ketik ClickDetector untuk menemukannya. Di Explorer, ia harus berada satu tingkat ke kanan, di bawah Crystal.
Di dalam game, penunjuk mouse berubah menjadi tangan saat berada di atas kristal.
Kamu harus berdiri cukup dekat. ClickDetector bekerja dari jarak 32 studs atau kurang.
Kesalahan umum. Tidak terjadi apa-apa saat diklik: ClickDetector harus berada langsung di dalam Crystal, bersebelahan dengan script.
Langkah ini tidak berhasil di tempatku
Periksa tiga hal ini dulu
Nama setiap part dan script sama persis dengan di panduan, termasuk huruf besarnya.
Script ada di dalam objek yang benar. Lihat label di atas kotak kode.
Buka jendela Output dari menu Window. Teks merah menunjukkan script dan baris yang bermasalah.
Tambahkan Part di lantai. Atur Size ke 8, 1, 8, nyalakan Anchored, buat berwarna kuning, dan beri nama Sell.
Tambahkan Script ke Sell lalu tempel kode ini.
Tekan Play, klik Crystal beberapa kali lalu berjalanlah ke atas pad. Power berubah menjadi Coins.
Sell > Script
local Players = game:GetService("Players")
local pad = script.Parent
pad.Touched:Connect(function(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
if not player then return end
local stats = player.leaderstats
if stats.Power.Value > 0 then
stats.Coins.Value += stats.Power.Value
stats.Power.Value = 0
end
end)
Fungsi tiap bagian
GetPlayerFromCharacter mencari pemain yang menginjak pad.
Pad menambahkan seluruh Power pemain ke Coins lalu mengatur Power kembali ke 0.
Detail lengkap
Pad adalah part datar tempat pemain berjalan ke atasnya.
Taruh pad rata di lantai. Kalau terlalu tinggi, pemain tidak bisa menaikinya.
Berjalan ke atas pad dengan 0 power tidak menghasilkan apa-apa. Itu benar.
Untuk mencoba: klik kristal 10 kali, berjalan ke atas pad, dan daftar pemain menunjukkan Power 0 dan Coins 10.
Langkah ini tidak berhasil di tempatku
Periksa tiga hal ini dulu
Nama setiap part dan script sama persis dengan di panduan, termasuk huruf besarnya.
Script ada di dalam objek yang benar. Lihat label di atas kotak kode.
Buka jendela Output dari menu Window. Teks merah menunjukkan script dan baris yang bermasalah.
Tambahkan Part lain di lantai. Atur Size ke 8, 1, 8, nyalakan Anchored, buat berwarna biru, dan beri nama Upgrade.
Tambahkan Script ke Upgrade lalu tempel kode ini.
Tekan Play, kumpulkan 25 coins lalu injak pad itu. Sekarang setiap klik memberi 2 power.
Upgrade > Script
local Players = game:GetService("Players")
local pad = script.Parent
local waiting = {}
pad.Touched:Connect(function(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
if not player or waiting[player] then return end
local price = player.Multiplier.Value * 25
local coins = player.leaderstats.Coins
if coins.Value < price then return end
waiting[player] = true
coins.Value -= price
player.Multiplier.Value += 1
task.wait(1)
waiting[player] = nil
end)
Fungsi tiap bagian
Harganya adalah Multiplier pemain dikali 25, jadi setiap upgrade lebih mahal daripada sebelumnya.
Tabel waiting mencegah satu injakan yang lama di pad membeli banyak upgrade sekaligus.
Setelah pembelian, Multiplier naik 1.
Detail lengkap
Taruh pad beberapa langkah dari pad penjualan, supaya pemain tidak membeli tanpa sengaja.
Upgrade pertama harganya 25 coins. Setelah itu, Coins berkurang 25 dan satu klik memberi 2 power.
Kalau coins-mu kurang dari harganya, pad tidak melakukan apa-apa. Turun dari pad, cari lebih banyak, lalu kembali.
Jeda 1 detik itulah sebabnya berdiri diam di atas pad hanya membeli satu upgrade pada satu waktu.
Langkah ini tidak berhasil di tempatku
Periksa tiga hal ini dulu
Nama setiap part dan script sama persis dengan di panduan, termasuk huruf besarnya.
Script ada di dalam objek yang benar. Lihat label di atas kotak kode.
Buka jendela Output dari menu Window. Teks merah menunjukkan script dan baris yang bermasalah.
Arahkan mouse ke Sell, klik + dan tambahkan BillboardGui. Atur Size-nya ke {0, 200}, {0, 50} dan StudsOffset-nya ke 0, 4, 0.
Tambahkan TextLabel ke dalam BillboardGui. Atur Size-nya ke {1, 0}, {1, 0}, nyalakan TextScaled, dan ketik teks ini: SELL
Lakukan hal yang sama untuk Upgrade dengan teks: UPGRADE
Lakukan hal yang sama untuk Crystal dengan teks: CLICK ME. Di sana pakai StudsOffset 0, 7, 0, supaya label melayang di atas Crystal.
Detail lengkap
Untuk Size dan StudsOffset, klik kolomnya di Properties, ketik angkanya persis seperti yang ditunjukkan, lengkap dengan tanda kurung dan koma, lalu tekan Enter.
Text adalah properti dari TextLabel. Klik kolom Text, ketik katanya, dan tekan Enter.
Cara yang lebih cepat: klik BillboardGui yang sudah jadi di Explorer, tekan Ctrl+C, klik part berikutnya, lalu tekan Ctrl+Shift+V. Setelah itu ubah teksnya saja.
Label membantu pemain baru memahami game tanpa penjelasan apa pun.
Tips. BillboardGui selalu menghadap kamera, jadi pemain bisa membacanya dari sisi mana pun.
Langkah ini tidak berhasil di tempatku
Periksa tiga hal ini dulu
Nama setiap part dan script sama persis dengan di panduan, termasuk huruf besarnya.
Script ada di dalam objek yang benar. Lihat label di atas kotak kode.
Buka jendela Output dari menu Window. Teks merah menunjukkan script dan baris yang bermasalah.