一個 徽章 是您可以在玩家達成遊戲目標時贈送給他們的特殊獎勵,例如完成一個困難的任務或遊玩一定的時間。當玩家獲得徽章時,它會顯示在他們的庫存中的 徽章 類別下。

創建徽章
您可以在每個擁有的遊戲中,每 24 小時(GMT)免費創建最多 5 個徽章。如果您想在 24 小時內創建更多徽章,每個額外的徽章將收費 100 Robux。
要創建徽章:
前往 創作者儀表板。
將滑鼠懸停在遊戲的縮圖上,點擊 ⋯ 按鈕,然後選擇 創建徽章。

在創建頁面上,點擊 上傳圖片 按鈕,然後選擇/確認您想用作徽章圖標的圖片。創建徽章圖片時,請考慮以下事項:
使用 512×512 像素 的模板。
上傳過程會將徽章圖片裁剪為圓形圖標,因此請避免將重要細節放在圓形邊界之外。


完成以下字段:
- 名稱 — 徽章的標題。
- 描述 — 玩家可以做什麼來獲得該徽章的描述。
- 徽章已啟用 — 徽章在創建時是否會啟用。禁用的徽章不會顯示在遊戲主頁的 徽章 部分,玩家無法獲得。
點擊 創建徽章 按鈕。新徽章將顯示在 創作者儀表板 的 參與度 ⟩ 徽章 部分。如果新徽章已啟用,它也會顯示在遊戲主頁的 徽章 部分。

遊戲主頁上的徽章
重新排序徽章
當徽章首次創建時,它會被放置在徽章列表的末尾。您可以使用拖放界面一次重新排序最多 50 個徽章。
要重新排序徽章:
前往相關遊戲。
在側邊面板的 參與度 標題下,導航到 徽章 頁面。
選擇 重新排序 以導航到重新排序頁面。

在重新排序頁面上,拖放徽章以設置其首選順序。

選擇 保存 以保存此順序。指定的順序現在應顯示在遊戲詳細信息頁面上。
腳本徽章
常見的徽章腳本工作流程包括 頒發徽章、檢查玩家是否之前 獲得 遊戲中的徽章,以及 獲取徽章信息。
查找徽章 ID
徽章的 ID 是其唯一標識符。您在實現工作流程時需要此 ID,例如 頒發徽章 給玩家。
在 創作者儀表板 上,導航到相關遊戲的 徽章 部分,位於 參與度 下。
將滑鼠懸停在徽章的縮圖上,點擊 ⋯ 按鈕,然後從上下文菜單中選擇 複製資產 ID。

頒發徽章
您可以通過在伺服器端的 Script 中調用 BadgeService:AwardBadgeAsync() 方法,向玩家頒發徽章。BadgeService:GetBadgeInfoAsync() 返回徽章的屬性,包括 IsEnabled,該屬性確認徽章是否可以頒發給玩家。您可以在 創作者儀表板 的 配置徽章 表單中啟用或禁用徽章。
以下是一個安全的函數範例,用於向玩家頒發徽章。
local BadgeService = game:GetService("BadgeService")
local function awardBadge(player, badgeId)
-- 獲取徽章信息
local success, badgeInfo = pcall(function()
return BadgeService:GetBadgeInfoAsync(badgeId)
end)
if success then
-- 確認徽章可以頒發
if badgeInfo.IsEnabled then
-- 頒發徽章
local awarded, errorMessage = pcall(BadgeService.AwardBadgeAsync, BadgeService, player.UserId, badgeId)
if not awarded then
warn("頒發徽章時出錯:", errorMessage)
end
end
else
warn("獲取徽章信息時出錯: " .. badgeInfo)
end
end檢查獲得的徽章
以下腳本檢查任何玩家進入遊戲時,然後使用 BadgeService:UserHasBadgeAsync() 方法來驗證該玩家是否擁有與變量 BADGE_ID 中設置的 匹配 ID 的徽章。您還可以使用 BadgeService:GetUserBadgesAsync() 方法批量驗證徽章擁有權。
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local BADGE_ID = 00000000 -- 將此更改為您的徽章 ID
local function onPlayerAdded(player)
-- 檢查玩家是否擁有徽章
local success, hasBadge = pcall(BadgeService.UserHasBadgeAsync, BadgeService, player.UserId, BADGE_ID)
-- 如果出現錯誤,發出警告並退出函數
if not success then
warn("檢查玩家是否擁有徽章時出錯")
return
end
if hasBadge then
-- 根據需要處理玩家的徽章擁有權
end
end
-- 將 "PlayerAdded" 事件連接到 "onPlayerAdded()" 函數
Players.PlayerAdded:Connect(onPlayerAdded)獲取徽章信息
要獲取徽章的信息,例如其描述或圖標資產 ID,請使用 徽章 ID 調用 BadgeService:GetBadgeInfoAsync() 方法。例如:
local BadgeService = game:GetService("BadgeService")
local BADGE_ID = 00000000 -- 將此更改為您的徽章 ID
-- 獲取徽章信息
local success, result = pcall(BadgeService.GetBadgeInfoAsync, BadgeService, BADGE_ID)
-- 輸出信息
if success then
print("徽章:", result.Name)
print("已啟用:", result.IsEnabled)
print("描述:", result.Description)
print("圖標:", "rbxassetid://" .. result.IconImageId)
else
warn("獲取徽章信息時出錯:", result)
end