Alat dalam permainan

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Alat Tools dalam permainan adalah alat interaktif yang dapat dipakai oleh pemain dalam sesi, seperti senjata, tongkat sihir, senter, kunci, dan lainnya. Anda dapat merancang alat dan menyertakannya dalam inventaris pemain atau menempatkannya di seluruh dunia sebagai barang yang dapat diambil.

Buat alat dalam permainan

Objek Tool adalah dasar dari setiap alat di Roblox, jadi Anda perlu membuatnya. Lebih mudah untuk melihat bagaimana alat tersebut terlihat dengan merancangnya di Workspace, dan kemudian Anda dapat menjadikannya sebagai item inventaris atau item yang diperoleh/dibeli.

  1. Di hierarki Explorer, arahkan mouse ke Workspace, klik tombol , dan masukkan Tool.

    Objek alat yang dibuat di ruang kerja
  2. Dengan Tool baru yang dipilih, akses jendela Properties dan sesuaikan bagaimana alat akan muncul di inventaris pemain:

    • TextureId — Menentukan ID aset gambar untuk alat di inventaris pemain.
    • ToolTip — Nama tooltip saat mengarahkan kursor untuk alat di inventaris pemain.
  3. Tentukan apakah alat tersebut akan menjadi alat fisik dalam lingkungan 3D (paling umum) atau alat non-fisik yang sederhana menempati inventaris pemain dan merespons input mereka.

Alat fisik

Setelah membuat instance Tool untuk alat fisik, Anda perlu menambahkan bagian/mesh untuk membentuk tampilannya di dunia 3D. Anda juga perlu menyertakan pegangan yang dipegang oleh karakter pemain grip.

Tambahkan bagian/mesh

Alat dalam permainan bisa terdiri dari satu atau lebih Parts dan/atau MeshParts. Jika Anda membangun alat dari beberapa bagian, ingatlah untuk menghubungkannya semua menggunakan WeldConstraints atau kendala mekanis sehingga alat tetap utuh sebagai satu kesatuan saat pemain membawanya.

Pemilih kendala yang ditunjukkan dalam toolbar Studio

Atur pegangan

Untuk memungkinkan pemain membawa alat, salah satu bagian dari alat perlu dinamai Handle. Di sinilah alat akan terhubung ke bagian RightHand model karakter (R15) atau Right Arm bagian (R6).

Jika alat terdiri dari hanya satu MeshPart, cukup beri nama bagian itu Handle. Jika tidak, Anda dapat menyertakan bagian terpisah yang disebut Handle sebagai anak langsung dari induk Tool dan kemudian mengaitkannya ke bagian lain dengan menggunakan WeldConstraint atau kendala mekanis.

Contoh berikut menunjukkan alat dengan tiga instance: mesh Handle, RopeConstraint, dan mesh lentera yang tergantung dari tali.

Sesuaikan posisi/orientasi pegangan

Properti Grip pada alat adalah CFrame yang menentukan bagaimana posisi dan orientasi alat relatif terhadap karakter yang memegangnya.

Karena posisi/orientasi pegangan yang ideal berbeda untuk setiap alat, Anda perlu bereksperimen dengan nilai-nilai sampai pegangan alat Anda terlihat benar. Contoh berikut menunjukkan pengaturan Grip yang mungkin salah dan benar untuk lentera yang menggantung:

Lentera menyeret di tanah dengan Grip.Position sebesar (0, -2, 0) dan Grip.Orientation sebesar (-90, 0, 0)
Lentera di depan karakter dengan Grip.Position sebesar (0, -1.5, 0) dan Grip.Orientation sebesar (25, 0, 0)

Alat non-fisik

Sebuah Tool non-fisik hanya menempati inventaris pemain dan merespons input mereka. Misalnya, sebuah permainan peran mungkin menampilkan serangkaian mantra sihir yang dapat "dilemparkan" pemain melalui inventaris mereka.

Alat non-fisik tidak memerlukan komposisi 3D dan tidak menggunakan bagian Handle, jadi Anda harus menonaktifkan properti RequiresHandle pada alat tersebut:

Tambahkan alat ke dalam permainan

Setelah Anda membuat alat dalam permainan Anda, Anda perlu menempatkannya di area yang benar dalam hierarki Explorer. Di mana Anda menempatkan alat dalam hierarki tergantung pada penggunaan yang dimaksudkan.

Inventaris pemain

Jika Anda ingin semua pemain memulai dengan alat di inventaris mereka, tempatkan alat di dalam wadah StarterPack. Saat seorang pemain muncul, sistem menyalin alat ke Backpack mereka. Dari sana, pemain dapat mengenakan alat dengan mengklik ikon inventarisnya atau dengan menekan tombol pintasan yang terkait seperti 1 atau 2.

Perhatikan bahwa alat disalin ke inventaris pemain (Backpack) dalam urutan mereka ditambahkan ke StarterPack. Untuk pengaturan urutan yang lebih terkendali, Anda dapat menambahkan LocalScript ke StarterPack yang sementara memindahkan alat ke ReplicatedStorage lalu memindahkan ulang ke Backpack dalam urutan yang ditentukan dalam tabel order.

Reorder Inventory

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local order = {"WaterSpell", "FireSpell", "AirSpell", "EarthSpell"}
local backpack = script.Parent
for _, item in backpack:GetChildren() do
if item:IsA("Tool") then
item.Parent = ReplicatedStorage
end
end
-- Pindahkan ulang alat ke backpack dalam urutan yang ditentukan
for i = 1, #order do
local tool = ReplicatedStorage:FindFirstChild(order[i])
if tool then
tool.Parent = backpack
end
end

Alat koleksi

Jika Anda ingin mengizinkan pemain mengumpulkan alat fisik saat mereka menjelajahi dunia 3D, tempatkan alat di Workspace seperti objek 3D biasa. Alat yang dikumpulkan akan secara otomatis dipakai dan ditambahkan ke dalam inventaris pemain (Anda tidak perlu menambahkan deteksi tabrakan ekstra agar karakter dapat mengambil alat).

Seperti yang disebutkan di bagian tambahkan bagian/mesh, bagian-bagian alat biasanya tidak boleh Anchored, karena karakter pemain akan terjebak di tempat saat mereka mengambil atau mengenakan alat yang terikat. Namun, jika Anda ingin mengaitkan alat koleksi ke tempat tertentu di dunia 3D, seperti mengapung sedikit di atas tanah, Anda dapat menambahkan Script berikut ke alat untuk membebaskan bagiannya saat dikumpulkan.

Unanchor Tool on Equip/Collect

local tool = script.Parent
tool.Equipped:Connect(function()
for _, part in tool:GetDescendants() do
if part:IsA("BasePart") and part.Anchored then
part.Anchored = false
end
end
end)

Alat yang diperoleh/dibeli

Jika Anda ingin menetapkan alat sebagai penghargaan ketika pemain menyelesaikan tugas, atau menawarkan alat untuk dijual di toko dalam permainan, tempatkan alat tersebut di dalam ReplicatedStorage. Dari sana, Anda dapat Clone() sebuah alat ke Backpack pemain pada waktu yang tepat.

Clone Tool to Player's Inventory

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local player = Players.LocalPlayer
local backpack = player:WaitForChild("Backpack")
-- Buat klon dari alat
local tool = ReplicatedStorage:FindFirstChild("WaterSpell")
if tool then
local clone = tool:Clone()
clone.Parent = backpack -- Menambahkan klon ke backpack pemain
end

Implementasikan efek alat

Setelah menambahkan alat ke permainan Anda, Anda dapat mengimplementasikan skrip untuk memungkinkan pemain menggunakan alat mereka dan melakukan aksi yang diinginkan. Peristiwa spesifik alat berikut menunjukkan status alat dan input pemain terhadapnya.

  • Equipped() — Ditembakkan saat pemain memilih alat dari backpack mereka.
  • Unequipped() — Ditembakkan saat pemain beralih alat atau menjatuhkan alat.
  • Activated() — Ditembakkan saat pemain mulai mengaktifkan alat (mengklik, mengetuk, atau menekan pemicu belakang kanan pada pengontrol game).
  • Deactivated() — Ditembakkan saat pemain menghentikan input aktivasi (melepas tombol atau sentuhan).
Tool Events Template

local tool = script.Parent
local function onEquip()
print(tool.Name, "alat dilengkapi")
end
local function onUnequip()
print(tool.Name, "alat tidak dilengkapi")
end
local function onActivate()
print(tool.Name, "alat diaktifkan")
end
local function onDeactivate()
print(tool.Name, "alat dinonaktifkan")
end
tool.Equipped:Connect(onEquip)
tool.Unequipped:Connect(onUnequip)
tool.Activated:Connect(onActivate)
tool.Deactivated:Connect(onDeactivate)

Peristiwa alat hanya terjadi di LocalScripts sisi klien karena hanya perangkat pemain yang tahu kapan input terjadi. Oleh karena itu, sebagian besar alat memerlukan baik LocalScript maupun Script sisi server di mana masing-masing menangani beberapa aspek perilaku alat dan RemoteEvent meneruskan informasi dari klien ke server (lihat peristiwa remote dan callbacks untuk informasi lebih lanjut).

Berikut adalah contoh alat dan perilakunya yang dikelola oleh baik LocalScript atau Script:

AlatLocalScriptScript
Tongkat PembuatMendeteksi di mana pemain mengaktifkan alat (Activated()).Menciptakan bagian baru di lokasi dalam dunia 3D di mana pemain menyentuh atau mengklik.
Jubah KetidakjelasanMendeteksi kapan pemain mengenakan alat (Equipped()) atau melepas alat (Unequipped()).Menjadikan pemain tak terlihat bagi semua pemain lain selama jubah dikenakan dan mengembalikan pemain ke tampilan penuh saat jubah dilepas.
Busur MegaMendeteksi berapa lama pemain mengaktifkan alat (waktu antara Activated() dan Deactivated()).Menembakkan panah sihir dengan kekuatan lebih besar atau lebih kecil, tergantung pada waktu aktivasi yang terdeteksi.
©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.