A 배지는 사용자가 게임 내에서 어려운 목표를 완료하거나 특정 시간 동안 플레이하는 것과 같은 목표를 달성할 때 플레이어에게 수여할 수 있는 특별한 상입니다. 플레이어가 배지를 받으면, 그 배지는 배지 카테고리의 인벤토리 내에 표시됩니다.

배지 만들기
소유한 각 게임에 대해 24시간(그리니치 표준시) 동안 무료로 최대 5개의 배지를 만들 수 있습니다. 24시간 이내에 더 많은 배지를 만들고 싶다면, 각 추가 배지마다 100 Robux가 소요됩니다.
배지를 만들려면:
크리에이터 대시보드로 이동합니다.
게임의 썸네일 위에 마우스를 올려 ⋯ 버튼을 클릭하고 배지 만들기를 선택합니다.

생성 페이지에서 이미지 업로드 버튼을 클릭한 다음 배지의 아이콘으로 사용할 이미지를 선택/확인합니다. 배지에 사용할 이미지를 만들 때는 다음 사항을 고려하세요:
512×512 픽셀의 템플릿을 사용하세요.
업로드 과정에서 배지 이미지는 원형 아이콘으로 잘리므로, 중요한 세부 사항이 원형 경계 밖에 위치하지 않도록 하세요.


다음 필드를 작성합니다:
- 이름 — 배지의 제목.
- 설명 — 플레이어가 배지를 얻기 위해 할 수 있는 일에 대한 설명.
- 배지 사용 가능 — 배지가 생성될 때 활성화될 것인지 여부. 비활성화된 배지는 게임의 메인 페이지의 배지 섹션에 표시되지 않으며 플레이어가 획득할 수 없습니다.
배지 만들기 버튼을 클릭합니다. 새 배지는 크리에이터 대시보드의 참여 ⟩ 배지 섹션에 표시됩니다. 새 배지가 활성화된 경우, 게임의 메인 페이지의 배지 섹션에도 표시됩니다.

게임의 메인 페이지의 배지
배지 재정렬
배지가 처음 생성되면, 배지 목록의 가장 끝에 배치됩니다. 드래그 앤 드롭 인터페이스를 사용하여 동시에 최대 50개의 배지를 재정렬할 수 있습니다.
배지를 재정렬하려면:
관련 게임으로 이동합니다.
사이드 패널의 참여 헤더 아래에서 배지 페이지로 이동합니다.
재정렬을 선택하여 재정렬 페이지로 이동합니다.

재정렬 페이지에서 배지를 원하는 순서로 드래그 앤 드롭합니다.

저장을 선택하여 이 순서를 저장합니다. 지정한 순서가 이제 게임 세부정보 페이지에 표시되어야 합니다.
스크립트 배지
일반적인 배지 스크립팅 워크플로우에는 배지 수여, 플레이어가 이전에 획득했는지 확인하기, 그리고 배지 정보 가져오기가 포함됩니다.
배지 ID 찾기
배지의 ID는 고유 식별자입니다. 플레이어에게 배지를 수여할 때 이 ID가 필요합니다.
크리에이터 대시보드에서 관련 게임의 배지 섹션으로 이동합니다.
배지의 썸네일 위에 마우스를 올려 ⋯ 버튼을 클릭하고 컨텍스트 메뉴에서 자산 ID 복사를 선택합니다.

배지 수여
BadgeService:AwardBadgeAsync() 메서드를 서버 측 Script에서 호출하여 게임 전체에서 플레이어에게 배지를 수여할 수 있습니다. 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를 가져오려면, 배지 ID와 함께 BadgeService:GetBadgeInfoAsync() 메서드를 호출합니다. 예를 들어:
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