Emote adalah komponen inti dari setiap permainan sosial. Modul EmoteBar pengembang bertujuan untuk memberikan pemain cara yang dapat diakses dan dapat disesuaikan untuk memfasilitasi interaksi sosial yang bermakna.
Penggunaan modul
Instalasi
Untuk menggunakan modul EmoteBar dalam sebuah permainan:
Dari menu Window Studio atau toolbar tab Home, buka Toolbox dan pilih tab Creator Store.

Pastikan pengurutan Models dipilih, lalu klik tombol See All untuk Categories.

Temukan dan klik ubin Packages.
Temukan modul Emote Bar dan klik, atau seret dan jatuhkan ke dalam tampilan 3D.

Di jendela Explorer, pindahkan seluruh model EmoteBar ke dalam ReplicatedStorage. Setelah menjalankan permainan, modul akan mulai berjalan.
Konfigurasi
Modul ini sudah dikonfigurasi dengan 7 emote dan dapat dengan mudah disesuaikan dengan emote dan opsi tampilan Anda sendiri. Selain itu, jika pemain memiliki emote dari acara Roblox sebelumnya seperti Lil Nas X, Royal Blood, atau Twenty One Pilots, emote tersebut akan secara otomatis ditambahkan ke daftar emote yang tersedia.
Di ServerScriptService, buat Script baru dan ganti namanya menjadi ConfigureEmotes.

Tempelkan kode berikut ke dalam skrip ConfigureEmotes yang baru. Pengaturan useDefaultEmotes yang diatur ke false akan menimpa emote default dan memungkinkan Anda mendefinisikan emote kustom melalui fungsi setEmotes.
Script - ConfigureEmoteslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local EmoteBar = require(ReplicatedStorage.EmoteBar)EmoteBar.configureServer({useDefaultEmotes = false,})EmoteBar.setEmotes({{name = "Hello",animation = "rbxassetid://3344650532",image = "rbxassetid://7719817462",defaultTempo = 1,},{name = "Applaud",animation = "rbxassetid://5915693819",image = "rbxassetid://7720292217",defaultTempo = 2,},})
Mega emote
Mega emote terbentuk ketika beberapa pemain di area yang sama melakukan emote yang sama pada saat yang sama. Ketika semakin banyak pemain bergabung, mega emote menjadi lebih besar. Ketika pemain berhenti melakukan emote, mega emote menjadi lebih kecil hingga akhirnya menghilang.

Tempo
Tempo emote adalah kecepatan di mana emote dimainkan ketika tombolnya ditekan sekali. Kecepatan default dari emote ditentukan oleh defaultTempo-nya. Kecepatan emote dapat ditingkatkan atau dikurangi dengan menekan tombolnya lebih cepat atau lebih lambat.
Referensi API
Tipe
Emote
Setiap emote diwakili oleh sebuah kamus dengan pasangan kunci-nilai berikut:
| Kunci | Tipe | Deskripsi |
|---|---|---|
| name | string | Nama emote, misalnya "Shrug". |
| animation | string | ID Aset untuk animasi emote. |
| image | string | ID Aset untuk gambar emote di GUI. |
| defaultTempo | number | Faktor kecepatan default untuk memainkan animasi emote. Misalnya, tempo 2 akan memainkan animasi dengan kecepatan dua kali lipat dari kecepatan normalnya. Harus lebih besar dari 0. |
| isLocked | bool | Apakah emote "terkunci" dari diaktifkan. |
Enums
EmoteBar.GuiType
| Nama | Ringkasan |
|---|---|
| EmoteBar | Bentuk default di mana emote ditampilkan dalam bar di bagian bawah layar, dipisahkan menjadi "halaman" individu. |
| EmoteWheel | Varian di mana emote ditampilkan dalam lingkaran ketika pemain mengklik atau mengetuk karakter pemain mereka. |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.configureClient({
guiType = EmoteBar.GuiType.EmoteWheel,
})Fungsi
configureServer
configureServer(config: table)
Menimpa opsi konfigurasi sisi server default melalui kunci/nilai berikut dalam tabel config. Fungsi ini hanya dapat dipanggil dari Script dan perubahan akan secara otomatis direplikasi ke semua klien.
| Kunci | Deskripsi | Default |
|---|---|---|
| useDefaultEmotes | Apakah emote default yang disediakan disertakan atau tidak. | true |
| useMegaEmotes | Mengaktifkan atau menonaktifkan fitur mega emotes. | true |
| emoteMinPlayers | Jumlah minimum pemain yang melakukan emote yang sama untuk berkontribusi pada mega emote. | 3 |
| emoteMaxPlayers | Jumlah maksimum pemain yang melakukan emote yang sama untuk berkontribusi pada mega emote. | 50 |
| playParticles | Mengaktifkan atau menonaktifkan emote yang dimainkan pemain sebagai partikel mengapung di atas kepala mereka. | true |
| sendContributingEmotes | Mengaktifkan atau menonaktifkan pengiriman ikon emote kecil untuk berkontribusi pada mega emote. | true |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.configureServer({
emoteMinPlayers = 2,
playParticles = false,
})configureClient
configureClient(config: table)
Menimpa opsi konfigurasi sisi klien default melalui kunci/nilai berikut dalam tabel config. Fungsi ini hanya dapat dipanggil dari LocalScript. Bergantung pada nilai guiType, opsi di tab yang dicatat juga berlaku.
| Kunci | Deskripsi | Default |
|---|---|---|
| guiType | Mengontrol bentuk GUI yang akan diambil untuk menampilkan emote (EmoteBar.GuiType). | EmoteBar |
| useTempo | Mengaktifkan atau menonaktifkan fitur tempo di mana pengguna dapat mengontrol seberapa cepat atau lambat emote mereka dimainkan dengan mengaktifkan emote yang sama secara berulang dengan ritmis. | true |
| tempoActivationWindow | Jumlah waktu, dalam detik, yang dimiliki pengguna antara aktivasi berurutan dari emote agar dihitung sebagai bagian dari tempo. | 3 |
| lockedImage | Gambar untuk ditampilkan di atas emote yang terkunci. | "rbxassetid://6905802778" |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.configureClient({
guiType = EmoteBar.GuiType.EmoteBar,
maxEmotesPerPage = 6,
nextPageKey = Enum.KeyCode.Z,
prevPageKey = Enum.KeyCode.C,
})local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.configureClient({
guiType = EmoteBar.GuiType.EmoteWheel,
})setEmotes
setEmotes(emotes: table)
Mengatur emote kustom untuk digunakan. Ini akan ditambahkan ke default jika useDefaultEmotes adalah true, atau menggantikan default jika useDefaultEmotes adalah false. Fungsi ini hanya dapat dipanggil dari Script dan perubahan akan secara otomatis direplikasi ke semua klien.
Lihat Emote untuk struktur setiap emote yang diteruskan ke fungsi ini.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.configureServer({
useDefaultEmotes = false,
})
EmoteBar.setEmotes({
{
name = "Hello",
animation = "rbxassetid://3344650532",
image = "rbxassetid://7719817462",
defaultTempo = 1,
},
{
name = "Applaud",
animation = "rbxassetid://5915693819",
image = "rbxassetid://7720292217",
defaultTempo = 2,
},
})setGuiVisibility
setGuiVisibility(visible: boolean)
Menampilkan atau menyembunyikan GUI emote. Fungsi ini hanya dapat dipanggil dari LocalScript pada klien tertentu.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.setGuiVisibility(false)getEmote
Mendapatkan Emote berdasarkan nama. Mengembalikan nil jika emote tidak dapat ditemukan. Fungsi ini hanya dapat dipanggil dari LocalScript pada klien tertentu.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
local shrug = EmoteBar.getEmote("Shrug")playEmote
playEmote(emote: Emote)
Memainkan Emote yang diberikan dan memicu acara emotePlayed di server, jika terhubung. Fungsi ini hanya dapat dipanggil dari LocalScript pada klien tertentu.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
local shrug = EmoteBar.getEmote("Shrug")
EmoteBar.playEmote(shrug)lockEmote
lockEmote(emoteName: string)
Mengunci Emote dengan nama yang diberikan. Fungsi ini hanya dapat dipanggil dari LocalScript pada klien.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.lockEmote("Applaud")unlockEmote
unlockEmote(emoteName: string)
Membuka kunci Emote dengan nama yang diberikan. Fungsi ini hanya dapat dipanggil dari LocalScript pada klien.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.unlockEmote("Applaud")Acara
emotePlayed
Dipicu ketika klien mana pun memainkan emote. Acara ini hanya dapat dihubungkan dalam LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.emotePlayed:Connect(function(player, emote)
print(player.Name, "memainkan", emote.name)
end)lockedEmoteActivated
Dipicu ketika klien mengklik emote yang terkunci. Acara ini hanya dapat dihubungkan dalam LocalScript.
| Parameter | |
|---|---|
| emote: Emote | Emote terkunci yang diaktifkan. |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local EmoteBar = require(ReplicatedStorage.EmoteBar)
EmoteBar.lockedEmoteActivated:Connect(function(emote)
print(Players.LocalPlayer, "mengklik", emote.name)
end)