Selain metode promosi umum untuk meningkatkan basis pemain Anda, Anda dapat menerapkan prompts undangan langsung di dalam game Anda, mendorong pemain untuk mengundang teman-teman mereka dan meningkatkan pengalaman bermain bersama.
Sistem prompts undangan memiliki fitur-fitur berikut:
- Pengundang Dinamis — Meminta pemain untuk mengundang beberapa teman dari daftar pilihan, atau mengundang satu teman tertentu.
- Data Peluncuran — Sertakan data peluncuran opsional yang dapat dibaca melalui Player:GetJoinData() ketika teman yang diundang bergabung. Contoh penggunaan termasuk mengarahkan teman yang diundang ke lokasi koordinat atau mempersonalisasi game yang bergabung bagi yang diundang.
- Teks Kustom — Sesuaikan pesan prompts undangan dan pesan notifikasi. Misalnya, prompt undangan untuk pemain dapat berbunyi "Ajak teman-temanmu untuk bergabung dalam petualangan!" dan pesan notifikasi untuk teman-teman yang diundang dapat berbunyi "{displayName} ingin kamu bergabung dalam petualangan mereka di {experienceName}!".
Anda juga dapat melacak dan memberi penghargaan kepada yang mengundang dan yang diundang menggunakan Sistem Penghargaan Undangan Teman.

Atur opsi undangan
Secara default, prompt undangan untuk pemain menunjukkan menu teman-teman mereka dengan tombol Undang. Untuk menyesuaikan pesan prompt, menargetkan teman tertentu, atau menyertakan data peluncuran dalam undangan, Anda perlu mengatur objek ExperienceInviteOptions dengan properti yang diinginkan.
| Properti | Tipe | Deskripsi |
|---|---|---|
| PromptMessage | string | Teks kustom yang ditampilkan pada prompt undangan untuk pemain pengirim, misalnya "Ajak teman-temanmu untuk bergabung dalam petualangan!" untuk prompt undangan multi-teman, atau "Undang teman ini untuk bergabung dalam petualangan!" untuk prompt undangan teman tertentu. Perhatikan bahwa jika pesan prompt undangan kustom Anda cukup panjang untuk melampaui batas UI, maka tidak akan ditampilkan. |
| InviteUser | number | ID pengguna Roblox UserId dari teman tertentu yang ingin diundang; jika tidak disediakan, pemain akan diminta untuk memilih dari daftar teman. |
| InviteMessageId | string | ID aset yang dipetakan ke jenis aset Notifikasi. Aset ini digunakan untuk menyimpan/melokalisasi string kustom untuk notifikasi undangan yang diterima teman. Lihat Mengatur Opsi Notifikasi untuk detail lebih lanjut. |
| LaunchData | string | Digunakan untuk menetapkan parameter dalam Player:GetJoinData() ketika seorang teman bergabung dari notifikasi undangan. Maksimal 200 karakter. Lihat Sertakan data peluncuran untuk contoh penggunaan. |
local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Construct invite options with a custom prompt message
local inviteOptions = Instance.new("ExperienceInviteOptions")
inviteOptions.PromptMessage = "Ajak teman-temanmu untuk bergabung dalam petualangan!"Atur opsi notifikasi
Secara default, notifikasi undangan yang diterima teman berisi DisplayName, nama pengguna pengirim, dan nama game. Untuk menyesuaikan pesan, Anda dapat membuat aset Notifikasi di Dasbor Creator dan menyertakan ID asetnya sebagai parameter ExperienceInviteOptions.
Navigasikan ke Dasbor Creator.
Mirip dengan lencana, string notifikasi terkait dengan game tertentu. Temukan thumbnail game tersebut dan klik padanya.
Di kolom kiri, di bawah Keterlibatan, klik Notifikasi.
Di daerah tengah, klik tombol Buat String Notifikasi.
Isi nama pengenal (hanya terlihat oleh Anda) dan teks notifikasi kustom. Perhatikan bahwa Anda harus menyertakan {experienceName} sebagai placeholder untuk mengidentifikasi nama game untuk teman yang diundang, dan Anda dapat memilih untuk menyertakan DisplayName pengirim melalui placeholder {displayName}.
Contoh string notifikasi:
- {displayName} ingin kamu bergabung dalam petualangan mereka di {experienceName}!
- {displayName} baru saja menyelesaikan tahap keenam dari {experienceName}. Bisakah kamu?
Setelah siap, klik tombol Buat String Notifikasi.
Di halaman notifikasi, di tabel notifikasi, klik tombol ⋯ di kolom Tindakan dan pilih Salin ID Aset.
Di objek ExperienceInviteOptions untuk prompt undangan, tempel ID aset sebagai nilai dari properti InviteMessageId.
LocalScript - Undang Beberapa Temanlocal SocialService = game:GetService("SocialService")local Players = game:GetService("Players")local player = Players.LocalPlayer-- Construct invite options with friend's user IDlocal inviteOptions = Instance.new("ExperienceInviteOptions")inviteOptions.InviteMessageId = "ef0e0790-e2e8-4441-9a32-93f3a5783bf1"
Tampilkan undangan
Untuk menampilkan undangan, Anda harus terlebih dahulu menentukan apakah pemain dapat mengirim undangan, karena kemampuan ini mungkin berbeda tergantung pada platform atau pemain. Setelah dikonfirmasi, Anda dapat menampilkan prompt undangan kepada pemain.
- Panggil SocialService:CanSendGameInviteAsync(), dibungkus dalam pcall() karena ini adalah panggilan jaringan asinkron yang terkadang dapat gagal.
- Jika kemampuan undangan dikonfirmasi, panggil SocialService:PromptGameInvite() dengan objek opsi undangan yang opsional sebagai argumen kedua.
Setelah diprompt, pemain akan melihat sebuah prompt di layar untuk mengundang beberapa teman, atau teman tertentu yang ditentukan dalam objek opsi undangan. Ketika pemain kemudian mengklik tombol Undang untuk satu atau lebih teman, teman-teman tersebut akan menerima notifikasi yang berisi DisplayName, nama pengguna pengirim, dan nama pengalaman. Notifikasi dapat lebih disesuaikan seperti yang diuraikan dalam Atur opsi notifikasi.
local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Fungsi untuk memeriksa apakah pemain dapat mengirim undangan
local function canSendGameInvite(sendingPlayer)
local success, canSend = pcall(function()
return SocialService:CanSendGameInviteAsync(sendingPlayer)
end)
return success and canSend
end
local canInvite = canSendGameInvite(player)
if canInvite then
SocialService:PromptGameInvite(player)
endSertakan data peluncuran
Untuk lebih meningkatkan kerja sama dalam pengalaman atau untuk mendorong undangan pemain, Anda dapat menyertakan data peluncuran dalam prompt undangan, berguna untuk skenario seperti mengarahkan teman yang diundang ke lokasi koordinat atau mempersonalisasi game yang bergabung bagi yang diundang.
Saat menampilkan undangan, sertakan objek ExperienceInviteOptions dengan data relevan yang akan digunakan saat teman bergabung ke dalam game, seperti Player.UserId pengirim, ID lencana yang akan diberikan kepada teman saat bergabung, atau lokasi koordinat untuk memunculkan teman di. Jika Anda perlu mengumpulkan beberapa data, encode data menggunakan JSONEncode().
LocalScript - Undang Beberapa Temanlocal HttpService = game:GetService("HttpService")local SocialService = game:GetService("SocialService")local Players = game:GetService("Players")local player = Players.LocalPlayerlocal data = {senderUserID = player.UserId,spawnLocation = {12, 48, 205.5}}local launchData = HttpService:JSONEncode(data)-- Construct invite options with launch datalocal inviteOptions = Instance.new("ExperienceInviteOptions")inviteOptions.LaunchData = launchData-- Fungsi untuk memeriksa apakah pemain dapat mengirim undanganlocal function canSendGameInvite(sendingPlayer)local success, canSend = pcall(function()return SocialService:CanSendGameInviteAsync(sendingPlayer)end)return success and canSendendlocal canInvite = canSendGameInvite(player)if canInvite thenSocialService:PromptGameInvite(player, inviteOptions)endUntuk teman yang bergabung melalui notifikasi, periksa data peluncuran di sisi server melalui Player:GetJoinData(). Jika Anda mengenkode beberapa data ke dalam format JSON untuk prompt undangan, ingat untuk mendekodenya dengan JSONDecode().
Script - Menggunakan Data Peluncuran Undanganlocal HttpService = game:GetService("HttpService")local Players = game:GetService("Players")local ATTEMPT_LIMIT = 10local RETRY_DELAY = 1local function onPlayerAdded(player)local launchDatafor _ = 1, ATTEMPT_LIMIT dotask.wait(RETRY_DELAY)local joinData = player:GetJoinData()if joinData.LaunchData ~= "" thenlaunchData = joinData.LaunchDatabreakendendif launchData thenlocal data = HttpService:JSONDecode(launchData)print(data.senderUserID)print(data.spawnLocation)elsewarn("Tidak ada data peluncuran yang diterima!")endendPlayers.PlayerAdded:Connect(onPlayerAdded)Jika data peluncuran ada, Anda dapat menggunakannya untuk berbagai skenario desain, termasuk:
- Memunculkan teman yang masuk di awal kursus rintangan yang menantang yang baru saja diselesaikan oleh pengirim, berdasarkan lokasi koordinat yang dikirim melalui data peluncuran.
- Memeriksa apakah pengirim berada di tempat tersebut, berdasarkan Player.UserId mereka dalam data peluncuran, dan teleport karakter teman tersebut dekat karakter mereka.