一个 徽章 是你可以赠送给玩家的特殊奖励,当他们在你的体验中达成目标时,例如完成一个困难的目标或游玩一定时间。一旦玩家收到徽章,它将显示在其库存的 徽章 类别中。

创建徽章
您可以在 24 小时期间(GMT)为每个拥有的体验创建最多 5 枚免费徽章。如果您想在 24 小时期间创建更多内容,每个额外的徽章费用 100 Robux。
要创建一个徽章:
导航到 创建者仪表板。
将鼠标悬停在体验缩略图上,单击 ⋯ 按钮,然后选择 创建徽章 。
在创建页面上,单击 上传图像 按钮,然后选择/确认要用作徽章图标的图像。当创建一个图像用于徽章时,请考虑以关注中/正在关注因素:
使用 512×512 像素 的模板。
上传过程会将徽章图像修剪和裁剪为圆形标志,因此避免将重要细节放在圆形边界之外。
>>
完成以下字段:
- 名称 — 徽章的标题。
- 描述 — 玩家可以做什么来获得徽章的描述。
- 徽章已启用 — 是否在创建时启用徽章。禁用的徽章不会显示在体验主页的 徽章 部分,也无法由玩家获得。
点击 创建徽章 按钮。新徽章显示在 参与 > 徽章 部分上的 创建者面板 .如果新徽章启用,它也会显示在体验主页的 徽章 部分。
经体验主页上的徽章
重新排序徽章
当徽章首次创建时,它被放置在徽章列表的最后。你可以使用拖放界面重新排列最多 50 个徽章。
要重新排序徽章:
导航到相关体验。
在 参与 标题下的侧面板中,导航到 徽章 页面。
选择 重新排序 以导航到重新排序页面。
在重排页面上,拖放徽章到他们喜欢的顺序。
选择 保存 以保存此顺序。指定的顺序现在应该出现在体验详情页面上。
脚本徽章
常见的徽章脚本工作流程包括授予徽章、检查玩家是否以前在你的体验中赢得了徽章,以及获取徽章信息。
找到徽章 ID
徽章的ID是其唯一标识。当你在实现工作流程时,如授予玩家徽章奖励徽章,你需要这个ID。
在创建者仪表板上,导航到相关体验的 徽章 部分下的 参与 。
将鼠标悬停在徽章的缩略图上,单击 ⋯ 按钮,然后从上下文菜单中选择 复制资产ID 。
奖励徽章
您可以在服务器端 BadgeService:AwardBadge() 中调用 Script 方法来授予玩家在整个体验过程中的徽章。返回徽章的属性,包括确认徽章是否可以授予玩家。你可以在 配置徽章 形式中启用或禁用徽章,从而在 创建者仪表板 上显示徽章。
以下是授予玩家徽章的安全函数的示例。
local BadgeService = game:GetService("BadgeService")
local function awardBadge(player, badgeId)
-- 获取徽章信息
local success, badgeInfo = pcall(BadgeService.GetBadgeInfoAsync, BadgeService, badgeId)
if success then
-- 确认徽章可以授予
if badgeInfo.IsEnabled then
-- 获奖徽章
local awarded, errorMessage = pcall(BadgeService.AwardBadge, BadgeService, player.UserId, badgeId)
if not awarded then
warn("Error while awarding badge:", errorMessage)
end
end
else
warn("Error while fetching badge info!")
end
end
检查获得的徽章
以下脚本检查任何玩家何时进入体验,然后使用 方法验证该玩家是否拥有变量中设置的徽章 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("Error while checking if player has badge")
return
end
if hasBadge then
-- 根据需要处理玩家的徽章所有权
end
end
-- 将“玩家添加”事件连接到“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("Badge:", result.Name)print("Enabled:", result.IsEnabled)print("Description:", result.Description)print("Icon:", "rbxassetid://" .. result.IconImageId)elsewarn("Error while fetching badge info:", result)end