Transfer Robux memungkinkan pelanggan Roblox Plus mengirim Robux langsung ke pengguna lain.
Untuk mendukung transfer di game Anda, panggil PromptRobuxTransferAsync untuk membuka prompt transfer dan gunakan BindReceiptHandler untuk memproses bukti transfer. Ketika seorang pelanggan menyelesaikan transfer, game Anda mendapatkan 10% dari Robux yang dikirim dan penerima menerima sisa 90%. Misalnya, transfer 100 Robux memberikan 90 Robux kepada penerima dan 10 Robux kepada game Anda.
Robux yang diperoleh game Anda dari transfer memenuhi syarat untuk program DevEx. Roblox tidak mengambil biaya dari transfer ini.

Sebagai seorang kreator, Anda tidak memiliki akses ke rincian transfer atau kontrol atas eksekusinya. Semua transfer Robux diproses dan dikelola oleh platform Roblox, dan semua tindakan pengirim dan penerima melewati pemeriksaan keamanan dan kelayakan yang sama. Di dalam game Anda, transfer diselesaikan melalui UI yang dikendalikan oleh Roblox untuk memastikan bahwa transfer tersebut aman dan sesuai kebijakan.
Prompt transfer Robux
Untuk memulai transfer Robux dalam game Anda:
- Panggil PromptRobuxTransferAsync dari skrip sisi server.
- Lewati parameter yang diperlukan:
- sender: Pemain yang memulai transfer.
- receiverUserId: ID pengguna penerima.
- amount: Jumlah Robux yang akan ditransfer.
- Simpan transferRequestId yang dikembalikan yang mengidentifikasi permintaan transfer dan dapat digunakan untuk mencatat atau mengaitkan transfer dengan bukti di kemudian hari.
Contoh berikut ini memulai transfer Robux antara dua pengguna:
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
-- Mentransfer Robux ketika seorang pengguna memicu RemoteEvent
local transferEvent = game.ReplicatedStorage:WaitForChild("RequestTransfer")
transferEvent.OnServerEvent:Connect(function(sender, receiverUserId, amount)
-- Memvalidasi input
if not sender or not sender:IsA("Player") then
return
end
if typeof(receiverUserId) ~= "number" or receiverUserId <= 0 then
warn("Invalid receiverUserId")
return
end
if typeof(amount) ~= "number" or amount <= 0 then
warn("Invalid amount")
return
end
local success, result = pcall(function()
return MarketplaceService:PromptRobuxTransferAsync(sender, receiverUserId, amount)
end)
if success then
print(`Transfer initiated with TransferRequestId: {result}`)
else
warn(`Transfer failed: {result}`)
end
end)
Mengelola bukti transfer
Setelah transfer berhasil, Roblox menghasilkan bukti untuk pengirim dan penerima. Anda dapat memproses bukti ini menggunakan BindReceiptHandler untuk mengonfirmasi bahwa transfer selesai dengan sukses.
Untuk mendorong pelanggan Plus agar mentransfer Robux dalam game Anda, Anda dapat menawarkan item atau keuntungan lain untuk setiap transfer yang berhasil. Jika Anda melakukannya, proses buktinya sebelum memberikan hadiah untuk memastikan hadiah hanya diberikan untuk transfer yang telah selesai.
Untuk memproses bukti transfer Robux:
- Gunakan BindReceiptHandler untuk mendaftarkan handler untuk RobuxTransferSender, yang menangani bukti untuk pengguna yang memulai transfer.
- Daftarkan handler kedua untuk RobuxTransferReceiver, yang menangani bukti untuk pengguna yang menerima Robux.
- Di setiap handler, periksa informasi bukti, termasuk PlayerId dan TransferRequestId. Kedua jenis bukti mencakup TransferRequestId yang cocok dengan transferRequestId yang dikembalikan oleh PromptRobuxTransferAsync.
- Kembalikan nilai Enum.ReceiptDecision dari handler Anda:
- Kembalikan Processed setelah Anda selesai menangani bukti. Ini menandai bukti sebagai lengkap dan mengonfirmasi bahwa transfer Robux berhasil.
- Kembalikan NotProcessedYet jika bukti belum dapat diproses (misalnya, jika pengguna sudah tidak ada di server). Ini mempertahankan bukti tetap tidak terpecahkan sehingga dapat disampaikan nanti (misalnya, ketika pengguna bergabung kembali ke server).
Contoh berikut mendaftarkan handler untuk bukti pengirim dan penerima:
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
-- Menangani bukti pengirim (pengguna yang mengirim Robux)
local senderConnection = MarketplaceService:BindReceiptHandler(
Enum.ReceiptType.RobuxTransferSender,
function(receiptInfo)
local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
if not player then
-- Pengguna meninggalkan server - pemrosesan bukti ditunda hingga pengguna bergabung kembali ke server
return Enum.ReceiptDecision.NotProcessedYet
end
print(`{player.Name} sent Robux (TransferRequestId: {receiptInfo.TransferRequestId})`)
-- Anda dapat memberikan pengakuan sisi pengirim atau memperbarui UI di sini
return Enum.ReceiptDecision.Processed
end
)
-- Menangani bukti penerima (pengguna yang menerima Robux)
local receiverConnection = MarketplaceService:BindReceiptHandler(
Enum.ReceiptType.RobuxTransferReceiver,
function(receiptInfo)
local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
if not player then
return Enum.ReceiptDecision.NotProcessedYet
end
print(`{player.Name} received Robux (TransferRequestId: {receiptInfo.TransferRequestId})`)
-- Anda dapat memberikan keuntungan sisi penerima atau memperbarui UI di sini
return Enum.ReceiptDecision.Processed
end
)