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

創建徽章
您可以在每個擁有的遊戲中,每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:CheckUserBadgesAsync() 方法批量驗證徽章擁有權。
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,請調用 BadgeService:GetBadgeInfoAsync() 方法,並傳入 徽章 ID。例如:
local BadgeService = game:GetService("BadgeService")local BADGE_ID = 00000000 -- 將此更改為您的徽章 ID-- 獲取徽章信息local success, result = pcall(BadgeService.GetBadgeInfoAsync, BadgeService, BADGE_ID)-- 輸出信息if success thenprint("徽章:", result.Name)print("啟用:", result.IsEnabled)print("描述:", result.Description)print("圖標:", "rbxassetid://" .. result.IconImageId)elsewarn("獲取徽章信息時出錯:", result)end