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

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

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

탐색기 창에서 전체 MerchBooth 모델을 ReplicatedStorage로 이동합니다. 게임을 실행하면 모듈이 실행되기 시작합니다.
구성
모듈은 대부분의 사용 사례에 맞게 미리 구성되어 있지만, configure 함수를 통해 쉽게 사용자 정의할 수 있습니다. 예를 들어, 더 밝은 테마를 만들고 카탈로그 뷰의 왼쪽 상단 영역에 있는 기본 필터 버튼을 비활성화하려면:
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 인스턴스로 설정하세요.
local 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.Sphere
myParticleEmitter.Transparency = NumberSequence.new(0, 1)
myParticleEmitter.RotSpeed = NumberRange.new(200, 200)
MerchBooth.configure({
particleEmitterTemplate = myParticleEmitter
})GUI 가시성
기본적으로 머천트 부스는 UI가 나타날 때 모든 ScreenGuis 및 CoreGuis를 숨깁니다. 여기에는 채팅, 리더보드 및 Roblox에서 포함한 기타 항목이 포함됩니다. 이 동작을 비활성화하려면 configure 호출에서 hideOtherUis를 false로 설정하세요.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.configure({
hideOtherUis = false
})캐릭터 이동
머천트 부스에 있는 동안 캐릭터의 이동을 방지하는 것이 유리할 수 있습니다. 이는 configure 호출에서 disableCharacterMovement를 true로 설정하여 수행할 수 있습니다.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.configure({
disableCharacterMovement = true
})API 참조
유형
아이템
머천트 부스의 아이템은 다음 키-값 쌍을 가진 사전으로 표현됩니다. 아이템은 getItems 함수 또는 itemAdded 이벤트를 통해 수집할 수 있습니다.
| 키 | 유형 | 설명 |
|---|---|---|
| assetId | number | 아이템의 카탈로그 ID, addItemAsync에 전달된 값입니다. |
| title | string | 카탈로그에 표시되는 아이템 제목입니다. |
| price | number | 아이템 가격 (Robux)입니다. |
| description | string | 카탈로그에 표시되는 아이템 설명입니다. |
| assetType | string | 아이템의 액세서리 유형을 나타내는 문자열입니다. |
| isOwned | bool | 현재 플레이어가 아이템을 소유하고 있는지 여부입니다. |
| creatorName | string | 카탈로그에 표시되는 아이템 제작자입니다. |
| creatorType | Enum.CreatorType | 아이템의 제작자 유형입니다. |
열거형
MerchBooth.Controls
머천트 부스와 상호작용하기 위한 키 및 게임패드 버튼을 사용자 정의하기 위해 setControlKeyCodes와 함께 사용됩니다.
| 이름 | 요약 |
|---|---|
| ProximityPrompts | 근접 프롬프트가 구성될 때 아이템 뷰를 열기 위한 키 및/또는 게임패드 버튼입니다. |
| OpenMerchBooth | 머천트 부스를 열기 위한 키 및/또는 게임패드 버튼입니다. |
| CloseMerchBooth | 머천트 부스를 닫기 위한 키 및/또는 게임패드 버튼입니다. |
| Filter | 카탈로그 뷰의 왼쪽 상단 영역에 표시되는 기본 필터 드롭다운을 사용하기 위한 키 및/또는 게임패드 버튼입니다. |
| ViewItem | 특정 머천트 부스 아이템 뷰를 열기 위한 키 및/또는 게임패드 버튼입니다. |
local 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 | 카탈로그 뷰의 가격 버튼이나 Try On 버튼과 같은 더 작은 버튼의 배경색 (Color3). | [34, 34, 34] |
| secondaryButtonTextColor | 카탈로그 뷰의 가격 버튼이나 Try On 버튼과 같은 더 작은 버튼의 텍스트 색상 (Color3). | [255, 255, 255] |
| inactiveButtonColor | 클릭할 수 없는 상태의 모든 버튼의 배경색 (Color3). | [153, 153, 158] |
| inactiveButtonTextColor | 클릭할 수 없는 상태의 모든 버튼의 텍스트 색상 (Color3). | [255, 255, 255] |
| particleEmitterTemplate | 장착 시 나타나고 재생되는 선택적 사용자 정의 ParticleEmitter 인스턴스입니다. |
local 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는 카탈로그 뷰에서 아이템을 숨기는 데 사용할 수 있습니다.
자산과 게임 패스 또는 개발자 제품에 대한 사용법이 약간 다르므로 아이템 추가를 참조하세요.
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
endlocal 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
endlocal 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
endgetItems
getItems(): table
현재 등록된 모든 아이템을 나타내는 사전을 반환합니다. 각 키는 아이템의 자산 ID이며, 각 키의 값은 아이템입니다. 이 함수는 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)
endremoveItem
removeItem(assetId: number)
addItemAsync를 통해 이전에 추가된 아이템을 등록 해제하여 카탈로그 뷰에서의 타일과 해당 아이템에 할당된 모든 근접 프롬프트를 제거합니다. 이 함수는 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)
endaddProximityButton
addProximityButton(adornee: BasePart|Model|Attachment, assetId: number)
주어진 adornee 위에 근접 프롬프트를 추가하여 해당 자산 ID에 대한 아이템 구매 뷰를 표시하도록 트리거합니다. 이는 2D 카탈로그 뷰의 대안으로 사용될 수 있으며, 플레이어가 3D 환경에서 아이템을 발견하도록 유도합니다.
아이템은 addItemAsync를 통해 추가된 후에야 근접 버튼을 할당할 수 있습니다. removeProximityButton을 참조하여 객체에서 근접 프롬프트를 제거할 수 있습니다.
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
endremoveProximityButton
removeProximityButton(adornee: BasePart|Model|Attachment)
addProximityButton를 통해 생성된 근접 프롬프트를 제거합니다. 이 함수는 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)
endsetCatalogSort
setCatalogSort(sortFunction: function): boolean
카탈로그 뷰에서 사용할 정렬 함수 sortFunction을 설정합니다. 제공된 정렬 함수는 price 또는 title과 같은 아이템 정보를 기반으로 논리를 사용할 수 있습니다. 이 함수는 LocalScript에서만 호출할 수 있습니다.
카탈로그 정렬을 위한 몇 가지 예는 다음과 같습니다.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price < b.price
end)local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price > b.price
end)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 열거형이어야 하며, 두 번째 매개변수는 해당하는 Enum.KeyCode 열거형을 가진 keyboard 및/또는 gamepad 키를 포함하는 테이블입니다.
| 열거형 (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 |
local 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에서만 호출할 수 있습니다.
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에서만 호출할 수 있습니다.
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)
endtoggleCatalogButton
toggleCatalogButton(enabled: boolean)
화면 오른쪽의 카탈로그 버튼을 켜거나 끕니다. 이는 사용자 정의 버튼을 구현하거나 머천트 부스의 표시를 지역 또는 근접 프롬프트로 제한할 때 유용합니다. LocalScript에서만 호출할 수 있습니다.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.toggleCatalogButton(false)isMerchBoothOpen
isMerchBoothOpen(): Tuple
카탈로그 또는 아이템 뷰가 열려 있으면 true를 반환합니다. 아이템 뷰가 열려 있으면 두 번째 값으로 아이템의 자산 ID가 반환됩니다. 이 함수는 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)
endcloseMerchBooth
closeMerchBooth()
머천트 부스 창을 닫습니다. 이 함수는 LocalScript에서만 호출할 수 있습니다.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.closeMerchBooth()isMerchBoothEnabled
isMerchBoothEnabled(): boolean
이 함수는 setEnabled와 함께 사용하여 머천트 부스가 현재 활성화되어 있는지 여부를 확인하는 데 사용할 수 있습니다. LocalScript에서만 호출할 수 있습니다.
setEnabled
setEnabled(enabled: boolean)
머천트 부스 전체가 활성화되거나 비활성화되도록 설정합니다. 비활성화되면 이 함수는 모든 UI를 제거하고, 근접 프롬프트를 포함하여 모든 이벤트를 연결 해제합니다. 이 함수는 LocalScript에서만 호출할 수 있습니다.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local isEnabled = MerchBooth.isMerchBoothEnabled()
if isEnabled then
MerchBooth.setEnabled(false)
end이벤트
itemAdded
addItemAsync를 통해 아이템이 추가될 때 발생합니다. 이 이벤트는 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입니다. |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemRemoved:Connect(function(assetId)
print("자산 ID가", assetId인 아이템이 제거되었습니다.")
end)merchBoothOpened
카탈로그 또는 아이템 세부 정보 뷰가 열릴 때 발생합니다.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothOpened:Connect(function()
print("부스 뷰가 열렸습니다.")
end)merchBoothClosed
카탈로그 또는 아이템 세부 정보 뷰가 닫힐 때 발생합니다.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothClosed:Connect(function()
print("부스 뷰가 닫혔습니다.")
end)catalogViewOpened
카탈로그 뷰가 열릴 때 발생합니다.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewOpened:Connect(function()
print("카탈로그 뷰가 열렸습니다.")
end)catalogViewClosed
카탈로그 뷰가 닫힐 때 발생합니다.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewClosed:Connect(function()
print("카탈로그 뷰가 닫혔습니다.")
end)itemViewOpened
아이템 세부 정보 뷰가 열릴 때 발생합니다.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewOpened:Connect(function()
print("아이템 뷰가 열렸습니다.")
end)itemViewClosed
아이템 세부 정보 뷰가 닫힐 때 발생합니다.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewClosed:Connect(function()
print("아이템 뷰가 닫혔습니다.")
end)