MerchBooth 개발자 모듈은 경험 내에서 아바타 자산, 패스 및 개발자 제품을 판매할 수 있게 합니다. 플레이어는 아이템을 탐색하고, 자신의 아바타에서 자산을 미리 보고, 아이템을 구매하고, 즉시 사용할 수 있습니다 — 모두 경험을 떠나지 않고 가능합니다. 이는 귀하의 경험을 수익화하고 다른 제작자의 아이템 판매와 관련된 40%의 제휴 수수료를 통해 수익을 얻는 데 도움이 될 수 있습니다.
모듈 사용
설치
경험에서 MerchBooth 모듈을 사용하려면:
Studio의 창 메뉴 또는 홈 탭 도구 모음에서 도구 상자를 열고 크리에이터 상점 탭을 선택합니다.

모델 정렬이 선택되었는지 확인한 후 카테고리의 모두 보기 버튼을 클릭합니다.

패키지 타일을 찾아 클릭합니다.
Merch Booth 모듈을 찾아 클릭하거나 3D 뷰로 드래그 앤 드롭합니다.

탐색기 창에서 전체 MerchBooth 모델을 ReplicatedStorage로 이동합니다. 경험을 실행하면 모듈이 시작됩니다.
구성
모듈은 대부분의 사용 사례에 맞게 미리 구성되어 있지만 configure 함수를 통해 쉽게 사용자 지정할 수 있습니다. 예를 들어, 더 밝은 테마를 만들고 catalog 뷰의 왼쪽 상단 영역에 있는 기본 필터 버튼을 비활성화하려면:
StarterPlayerScripts에서 새 LocalScript를 만들고 이름을 ConfigureMerchBooth로 바꿉니다.

새 스크립트에 다음 코드를 붙여넣습니다.
LocalScript - ConfigureMerchBoothlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)MerchBooth.configure({backgroundColor = Color3.fromRGB(220, 210, 200),textSize = 17,textFont = Enum.Font.Fondamento,textColor = Color3.fromRGB(20, 20, 20),useFilters = false})
아이템 추가
머천트 부스에 머천트를 추가하지 않는다면? 다음 섹션에서는 머천트 부스에 아바타 자산, 패스, 및 개발자 제품을 추가하는 방법을 설명합니다.
아바타 자산
의류 및 액세서리와 같은 아이템은 아바타 상점의 항목 세부 정보 페이지에 있는 자산 ID를 통해 추가해야 합니다.
ServerScriptService 내에 Script를 생성하고 다음 코드를 붙여넣습니다.
Script - Add Avatar Assetslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endend웹사이트 URL에서 아이템 자산 ID를 복사합니다 아바타 상점. 예를 들어, Roblox 야구 모자의 ID는 607702162입니다.

복사한 각 ID를 items 테이블 내의 쉼표로 구분된 목록에 붙여넣습니다. 기본적으로 아이템은 카탈로그 보기에서 알파벳 순으로 나타나지만, setCatalogSort를 사용하여 정렬을 사용자 지정할 수 있습니다.
Script - Add Avatar Assetslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {607702162, -- Roblox 야구 모자4819740796, -- Robox1374269, -- 고양이 귀11884330, -- 너드 안경10476359, -- 종이 모자}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endend
패스
패스를 추가하려면 크리에이터 대시보드에서 패스 ID를 찾아야 합니다.
ServerScriptService 내에 Script를 생성하고 다음 코드를 붙여넣습니다.
Script - Add Passeslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endend크리에이터 대시보드로 이동하고 경험을 선택합니다.
왼쪽 열에서 수익화 아래 패스를 선택합니다.
패스의 썸네일 위로 마우스를 올리면 ⋯ 버튼을 클릭하고 컨텍스트 메뉴에서 자산 ID 복사를 선택합니다.

복사한 각 ID를 items 테이블의 쉼표로 구분된 목록에 붙여넣고 addItemAsync의 두 번째 매개변수로 Enum.InfoType.GamePass를 포함하여 아이템이 패스임을 나타냅니다. 기본적으로 아이템은 카탈로그 보기에서 알파벳 순으로 나타나지만, setCatalogSort를 통해 정렬을 사용자 지정할 수 있습니다.
Script - Add Passeslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {4343758, -- ColdFyre 갑옷28521575, -- 슬라임 방패}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)end)if not success thenwarn(errorMessage)endend
개발자 제품
개발자 제품을 추가하려면 크리에이터 대시보드에서 제품 ID를 찾아야 합니다.
ServerScriptService 내에 Script를 생성하고 다음 코드를 붙여넣습니다.
Script - Add Developer Productslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endend크리에이터 대시보드로 이동하고 경험을 선택합니다.
왼쪽 열에서 수익화 아래 개발자 제품을 선택합니다.
제품의 썸네일 위로 마우스를 올리면 ⋯ 버튼을 클릭하고 컨텍스트 메뉴에서 자산 ID 복사를 선택합니다.

복사한 각 ID를 items 테이블의 쉼표로 구분된 목록에 붙여넣고 addItemAsync의 두 번째 매개변수로 Enum.InfoType.Product를 포함하여 아이템이 개발자 제품임을 나타냅니다. 기본적으로 아이템은 카탈로그 보기에서 알파벳 순으로 나타나지만, setCatalogSort를 통해 정렬을 사용자 지정할 수 있습니다.
Script - Add Developer Productslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {1236602053, -- 마나 재충전1257880672, -- 치유 포션}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)end)if not success thenwarn(errorMessage)endend
사용자 지정 카탈로그 버튼
기본적으로 오른쪽에 있는 카탈로그 버튼을 통해 플레이어는 언제든지 부스를 열 수 있습니다.

경우에 따라 이 버튼을 제거하고 자신의 버튼을 연결하는 것이 유용할 수 있습니다:
버튼에서 설명한 대로 새 버튼을 생성합니다.
버튼 객체의 자식으로 LocalScript를 생성합니다.

새 스크립트에 다음 코드를 붙여넣습니다.
LocalScript - Custom Catalog Buttonlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)-- 기본 카탈로그 버튼 제거MerchBooth.toggleCatalogButton(false)-- 사용자 지정 버튼 연결script.Parent.Activated:Connect(function()MerchBooth.openMerchBooth()end)
쇼핑 가능한 지역
경험에서 구매를 유도하는 유용한 방법은 플레이어가 특정 영역에 들어설 때 자동으로 머천트 부스를 표시하는 것입니다.
쇼핑 가능한 지역을 만들려면:
감지 영역을 포함하는 Anchored 블록을 생성합니다. 블록이 캐릭터 모델의 PrimaryPart와 충돌할 수 있을 만큼의 높이가 있는지 확인합니다(HumanoidRootPart가 기본값임).

상점 카운터의 앞쪽에 플레이어가 접근할 때를 감지하는 블록 블록 속성의 태그 섹션에서 ShopRegion 태그를 블록에 적용하여 CollectionService가 이를 감지하도록 합니다.
블록의 Transparency를 최대값으로 설정하여 경험에서 플레이어에게 숨깁니다. 또한 다른 객체와 물리적으로 충돌하지 않도록 CanCollide 및 CanQuery 속성을 비활성화합니다.


StarterPlayerScripts 아래에 새 LocalScript를 삽입합니다.

새 스크립트에서 다음 코드를 붙여넣어 Touched 및 TouchEnded 이벤트를 사용하여 캐릭터가 영역에 들어오/나갈 때를 감지하고 openMerchBooth 및 closeMerchBooth를 호출하여 부스 GUI를 열고 닫습니다.
LocalScriptlocal Players = game:GetService("Players")local ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local MerchBooth = require(ReplicatedStorage.MerchBooth)-- 기본 카탈로그 버튼 제거MerchBooth.toggleCatalogButton(false)local function setupRegion(region: BasePart)region.Touched:Connect(function(otherPart)local character = Players.LocalPlayer.Characterif character and otherPart == character.PrimaryPart thenMerchBooth.openMerchBooth()endend)region.TouchEnded:Connect(function(otherPart)local character = Players.LocalPlayer.Characterif character and otherPart == character.PrimaryPart thenMerchBooth.closeMerchBooth()endend)end-- 기존 태그가 있는 상점 지역 반복for _, region in CollectionService:GetTagged("ShopRegion") dosetupRegion(region)end-- 스트리밍되지 않은 상점 지역 감지CollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)
접근 가능 프롬프트
2D 카탈로그 뷰 대신, 경험 내 객체 위에 접근 가능 프롬프트를 추가할 수 있습니다. 이를 통해 플레이어는 3D 환경에서 아이템을 발견하고, 자신의 아바타에서 미리 보고, 구매하며, 즉시 장착할 수 있습니다. 자세한 내용은 addProximityButton을 참조하십시오.
장착 효과 변경
기본적으로 머천트 부스는 플레이어가 아이템을 장착할 때 일반적인 반짝임 효과를 보여줍니다. 효과를 변경하려면 configure 호출에서 particleEmitterTemplate을 자신의 ParticleEmitter 인스턴스로 설정합니다.
LocalScript - ConfigureMerchBoothlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local myParticleEmitter = Instance.new("ParticleEmitter")myParticleEmitter.SpreadAngle = Vector2.new(22, 22)myParticleEmitter.Lifetime = NumberRange.new(0.5, 1.5)myParticleEmitter.Shape = Enum.ParticleEmitterShape.SpheremyParticleEmitter.Transparency = NumberSequence.new(0, 1)myParticleEmitter.RotSpeed = NumberRange.new(200, 200)MerchBooth.configure({particleEmitterTemplate = myParticleEmitter})
GUI 가시성
기본적으로 머천트 부스는 UI가 나타날 때 ScreenGuis와 CoreGuis를 모두 숨깁니다. 이는 채팅, 리더보드 등 Roblox에서 포함하는 다른 것들까지 해당됩니다. 이 동작을 비활성화하려면 configure 호출에서 hideOtherUis를 false로 설정하세요.
LocalScript - ConfigureMerchBoothlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)MerchBooth.configure({hideOtherUis = false})
캐릭터 이동
머천트 부스를 열고 있는 동안 캐릭터의 움직임을 방지하는 것이 유리할 수 있습니다. 이것은 configure 호출에서 disableCharacterMovement를 true로 설정하여 수행할 수 있습니다.
LocalScript - ConfigureMerchBoothlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)MerchBooth.configure({disableCharacterMovement = true})
API 참조
타입
아이템
머천트 부스의 아이템은 다음 키-값 쌍을 가진 사전으로 나타납니다. 아이템은 getItems 함수 또는 itemAdded 이벤트를 통해 수집할 수 있습니다.
| 키 | 유형 | 설명 |
|---|---|---|
| assetId | number | 아이템의 카탈로그 ID로, addItemAsync 함수에 전달됩니다. |
| title | string | 카탈로그에 표시되는 아이템 제목입니다. |
| price | number | 아이템 가격(로벅스) |
| description | string | 카탈로그에 표시되는 아이템 설명입니다. |
| assetType | string | 아이템의 액세서리 유형을 나타내는 문자열입니다. |
| isOwned | bool | 현재 플레이어가 아이템을 소유하고 있는지 여부입니다. |
| creatorName | string | 카탈로그에 표시되는 아이템 제작자입니다. |
| creatorType | Enum.CreatorType | 아이템의 제작자 유형입니다. |
열거형
MerchBooth.Controls
setControlKeyCodes와 함께 사용되어 머천트 부스와 상호작용하기 위해 사용하는 키 및 게임패드 버튼을 사용자화합니다.
| 이름 | 요약 |
|---|---|
| ProximityPrompts | 접근 가능 프롬프트가 구성된 경우 아이템 뷰를 열기 위한 키 및/또는 게임패드 버튼입니다. |
| OpenMerchBooth | 머천트 부스를 열기 위한 키 및/또는 게임패드 버튼입니다. |
| CloseMerchBooth | 머천트 부스를 닫기 위한 키 및/또는 게임패드 버튼입니다. |
| Filter | 카탈로그 보기의 왼쪽 상단 영역에 표시되는 기본 필터 드롭다운을 사용할 키 및/또는 게임패드 버튼입니다. |
| ViewItem | 특정 머천트 부스 아이템 뷰를 열기 위한 키 및/또는 게임패드 버튼입니다. |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {keyboard = Enum.KeyCode.Q,gamepad = Enum.KeyCode.ButtonL1})
함수
configure
configure(config: table)
config 테이블 내의 다음 키/값을 통해 기본 클라이언트 측 구성 옵션을 재정의합니다. 이 함수는 LocalScript에서만 호출할 수 있습니다.
| 키 | 설명 | 기본값 |
|---|---|---|
| backgroundColor | 창의 주요 배경색 (Color3). | [0, 0, 0] |
| cornerRadius | 주 창의 모서리 반경 (UDim). | (0, 16) |
| cornerRadiusSmall | 창 내의 요소를 위한 모서리 반경 (UDim). | (0, 8) |
| textFont | 가격, 설명 및 기타 일반 정보를 위한 "주 텍스트"의 글꼴 (Enum.Font). | Gotham |
| textSize | 주 텍스트 크기. | 14 |
| textColor | 주 텍스트의 색상 (Color3). | [255, 255, 255] |
| secondaryTextColor | 주 텍스트의 일부 변형에 사용되는 색상 (Color3). | [153, 153, 158] |
| headerFont | 창 제목에 사용되는 헤더 텍스트의 글꼴 (Enum.Font). | GothamMedium |
| headerTextSize | 창 제목에 사용되는 헤더 텍스트 크기. | 18 |
| titleFont | 아이템 세부 정보 페이지의 아이템 이름에 사용되는 제목 텍스트의 글꼴 (Enum.Font). | GothamBold |
| titleTextSize | 아이템 세부 정보 페이지의 아이템 이름에 사용되는 제목 텍스트 크기. | 28 |
| buttonColor | 아이템 뷰에서의 기본 구매 버튼과 같은 클릭 가능한 상태의 더 큰 버튼의 배경색 (Color3). | [255, 255, 255] |
| buttonTextColor | 아이템 뷰에서의 기본 구매 버튼과 같은 클릭 가능한 상태의 더 큰 버튼의 텍스트 색상 (Color3). | [0, 0, 0] |
| secondaryButtonColor | 카탈로그 보기나 착용하기 버튼의 가격 버튼과 같은 더 작은 버튼의 배경색 (Color3). | [34, 34, 34] |
| secondaryButtonTextColor | 카탈로그 보기나 착용하기 버튼의 가격 버튼과 같은 더 작은 버튼의 텍스트 색상 (Color3). | [255, 255, 255] |
| inactiveButtonColor | 클릭할 수 없는 상태의 모든 버튼의 배경색 (Color3). | [153, 153, 158] |
| inactiveButtonTextColor | 클릭할 수 없는 상태의 모든 버튼의 텍스트 색상 (Color3). | [255, 255, 255] |
| particleEmitterTemplate | 장착 시 나타나고 재생되는 선택적 사용자 지정 ParticleEmitter 인스턴스입니다. |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)MerchBooth.configure({backgroundColor = Color3.fromRGB(255, 255, 255),textSize = 16,textFont = Enum.Font.Roboto,textColor = Color3.fromRGB(20, 20, 20),hideOtherUis = false,})
addItemAsync
addItemAsync(assetId: number, productType: Enum.InfoType, hideFromCatalog: boolean)
아이템을 머천트 부스에 비동기적으로 추가하여 경험에서 구매 가능하도록 합니다. assetId는 아이템의 자산 ID이며, productType은 아이템의 Enum.InfoType 열거형, hideFromCatalog는 카탈로그 보기에서 아이템을 숨기는 데 사용될 수 있습니다.
자세한 내용은 항목 추가를 참조하십시오. 이 기능은 자산과 게임 패스 또는 개발자 제품에서 약간의 사용법 차이가 있습니다.
Script - Add Avatar Assets
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
607702162, -- Roblox 야구 모자
4819740796, -- Robox
1374269, -- 고양이 귀
11884330, -- 너드 안경
10476359, -- 종이 모자
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
end
Script - Add Passes
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
4343758, -- ColdFyre 갑옷
28521575, -- 슬라임 방패
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)
end)
if not success then
warn(errorMessage)
end
end
Script - Add Developer Products
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
1236602053, -- 마나 재충전
1257880672, -- 치유 포션
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)
end)
if not success then
warn(errorMessage)
end
end
getItems
getItems(): table
현재 등록된 모든 아이템을 나타내는 사전을 반환합니다. 각 키는 아이템의 자산 ID 문자열이며, 각 키의 값은 아이템입니다. 이 함수는 Script에서만 호출할 수 있습니다.
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
local items = MerchBooth.getItems()
print(items)
end
removeItem
removeItem(assetId: number)
addItemAsync를 통해 이전에 추가된 아이템을 등록 취소하여 카탈로그 보기에서 타일을 제거하고 해당 아이템에 할당된 모든 접근 가능 프롬프트를 제거합니다. 이 함수는 Script에서만 호출할 수 있습니다.
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
-- 잠시 후 아이템 제거
task.wait(5)
MerchBooth.removeItem(4819740796)
end
addProximityButton
addProximityButton(adornee: BasePart|Model|Attachment, assetId: number)
아이템의 구매 뷰를 표시하도록 트리거하는 접근 가능 프롬프트를 주어진 adornee 위에 추가합니다. 이는 플레이어가 3D 환경에서 아이템을 발견하도록 유도하는 2D 카탈로그 뷰의 대안으로 사용할 수 있습니다.
아이템은 먼저 addItemAsync를 통해 추가되어야 하며, 그러면 접근 가능 버튼을 해당 아이템에 할당할 수 있습니다. 접근 가능 프롬프트를 제거하려면 removeProximityButton를 참조하십시오.
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
local item = Workspace:FindFirstChild("Robox")
if item then
MerchBooth.addProximityButton(item, 4819740796)
end
end
removeProximityButton
removeProximityButton(adornee: BasePart|Model|Attachment)
addProximityButton를 통해 생성된 접근 가능 프롬프트를 제거합니다. 이 함수는 Script에서만 호출할 수 있습니다.
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
local item = Workspace:FindFirstChild("Robox")
if item then
MerchBooth.addProximityButton(item, 4819740796)
end
-- 잠시 후 프롬프트 제거
task.wait(5)
MerchBooth.removeProximityButton(item)
end
setCatalogSort
setCatalogSort(sortFunction: function): boolean
카탈로그 보기에서 사용할 정렬 함수인 sortFunction을 설정합니다. 제공된 정렬 함수는 price 또는 title과 같은 아이템 정보를 기반으로 논리를 사용할 수 있습니다. 이 함수는 LocalScript에서만 호출할 수 있습니다.
카탈로그 정렬을 위한 몇 가지 예시입니다.
Price Low-to-High
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price < b.price
end)
Price High-to-Low
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price > b.price
end)
Price Low-to-High & Alphabetical
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return if a.price == b.price then a.title < b.title else a.price < b.price
end)
setControlKeyCodes
setControlKeyCodes(control: MerchBooth.Controls, keyCodes: table)
머천트 부스와 상호작용하기 위해 사용하는 키 및 버튼 값을 설정합니다. 첫 번째 매개변수는 MerchBooth.Controls 열거형이어야 하며, 두 번째 매개변수는 해당 프로그래폰으로 매핑된 keyboard 및/또는 gamepad 키와 함께 Enum.KeyCode 열거형을 포함하는 테이블입니다.
| 열거형 (control) | 기본 keyCodes 키/값 |
|---|---|
| MerchBooth.Controls.ProximityPrompts | keyboard = Enum.KeyCode.E gamepad = Enum.KeyCode.ButtonY |
| MerchBooth.Controls.OpenMerchBooth | gamepad = Enum.KeyCode.ButtonY |
| MerchBooth.Controls.CloseMerchBooth | gamepad = Enum.KeyCode.ButtonB |
| MerchBooth.Controls.Filter | gamepad = Enum.KeyCode.ButtonX |
| MerchBooth.Controls.ViewItem | gamepad = Enum.KeyCode.ButtonA |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {keyboard = Enum.KeyCode.Q,gamepad = Enum.KeyCode.ButtonL1,})
openMerchBooth
openMerchBooth()
머천트 부스 창을 엽니다 (닫힌 경우) 카탈로그 보기로 이동합니다. 이 함수는 LocalScript에서만 호출할 수 있습니다.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
MerchBooth.openMerchBooth()
openItemView
openItemView(itemId: number)
주어진 itemId의 단일 아이템 뷰로 이동하여 현재 닫혀 있다면 머천트 부스 창을 엽니다. 이 함수는 LocalScript에서만 호출할 수 있습니다.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
MerchBooth.openItemView(4819740796)
end
toggleCatalogButton
toggleCatalogButton(enabled: boolean)
화면 오른쪽의 카탈로그 버튼을 켜고 끕니다. 이것은 사용자 지정 버튼을 구현하거나 머천트 부스의 표시를 지역 또는 접근 가능 프롬프트로 제한할 때 유용합니다. LocalScript에서만 호출할 수 있습니다.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)MerchBooth.toggleCatalogButton(false)
isMerchBoothOpen
isMerchBoothOpen(): Tuple
카탈로그 또는 아이템 뷰가 열려 있으면 true를 반환합니다. 아이템 뷰가 열려 있는 경우 두 번째 값으로 해당 아이템의 자산 ID를 반환합니다. 이 함수는 LocalScript에서만 호출할 수 있습니다.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
MerchBooth.openItemView(4819740796)
local isOpen, itemId = MerchBooth.isMerchBoothOpen()
print(isOpen, itemId)
end
closeMerchBooth
closeMerchBooth()
머천트 부스 창을 닫습니다. 이 함수는 LocalScript에서만 호출할 수 있습니다.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)MerchBooth.closeMerchBooth()
isMerchBoothEnabled
isMerchBoothEnabled(): boolean
이 함수는 setEnabled와 함께 사용되어 머천트 부스가 현재 활성화되어 있는지 여부를 확인할 수 있습니다. LocalScript에서만 호출할 수 있습니다.
setEnabled
setEnabled(enabled: boolean)
머천트 부스를 활성화하거나 비활성화합니다. 비활성화할 경우, 이 함수는 전체 UI를 제거하며, 접근 가능 프롬프트도 제거하고 모든 이벤트를 분리합니다. 이 함수는 LocalScript에서만 호출할 수 있습니다.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local isEnabled = MerchBooth.isMerchBoothEnabled()if isEnabled thenMerchBooth.setEnabled(false)end
이벤트
itemAdded
addItemAsync를 통해 아이템이 추가될 때 발생합니다. 이 이벤트는 Script에서만 연결할 수 있습니다.
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemAdded:Connect(function(assetId, itemInfo)
print("자산 ID가", assetId인 아이템이 추가되었습니다.")
print(itemInfo)
end)
itemRemoved
removeItem을 통해 아이템이 제거될 때 발생합니다. 이 이벤트는 Script에서만 연결할 수 있습니다.
| 매개변수 | |
|---|---|
| assetId: number | 아이템 자산 ID입니다. |
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemRemoved:Connect(function(assetId)
print("자산 ID가", assetId인 아이템이 제거되었습니다.")
end)
merchBoothOpened
카탈로그 또는 아이템 세부 정보 보기가 열릴 때 발생합니다.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothOpened:Connect(function()
print("부스 보기 열림")
end)
merchBoothClosed
카탈로그 또는 아이템 세부 정보 보기가 닫힐 때 발생합니다.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothClosed:Connect(function()
print("부스 보기 닫힘")
end)
catalogViewOpened
카탈로그 보기가 열릴 때 발생합니다.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewOpened:Connect(function()
print("카탈로그 보기 열림")
end)
catalogViewClosed
카탈로그 보기가 닫힐 때 발생합니다.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewClosed:Connect(function()
print("카탈로그 보기 닫힘")
end)
itemViewOpened
아이템 세부 정보 보기가 열릴 때 발생합니다.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewOpened:Connect(function()
print("아이템 보기 열림")
end)
itemViewClosed
아이템 세부 정보 보기가 닫힐 때 발생합니다.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewClosed:Connect(function()
print("아이템 보기 닫힘")
end)