商品ブース

MerchBoothの開発者モジュールにより、アバターアセットパス開発者製品を、バーチャル空間内で直接販売することができます。 プレイヤーは、自作のバーチャル空間から離れることなく、アイテムを閲覧したり、自分のアバター上のアセットをプレビューしたり、アイテムを購入したり、即座に使用また装備したりできます。 これにより、自作のバーチャル空間を収益化し、他のクリエーターのアイテム販売に関連する 40%のアフィリエイト手数料で収益を得られます。

モジュールの使用法

インストール

バーチャル空間内でMerchBoothモジュールを使用する方法

  1. 表示タブから、ツールボックスを開き、マーケットプレイスタブを選択します。

    Studioのツールボックストグルボタン
  2. モデルのソートが選択されていることを確認し、カテゴリすべてのボタンを表示をクリックします。

  3. DEV モジュールタイルを見つけてクリックします。

  4. Merch Boothモジュールを見つけてクリックするか、3D ビューにドラッグアンドドロップします。

  5. エクスプローラウィンドウで、MerchBoothモデル全体をServerScriptServiceに移動します。 バーチャル空間を実行すると、モジュールはそれ自体をさまざまなサービスに配布し、実行を開始します。

設定

モジュールは、ほとんどのユースケースで動作するように事前設定されていますが、設定機能を使用して簡単カスタマイズできます。 例えば、より軽いテーマを作成し、カタログビューの左上エリアでデフォルトのフィルターボタンを無効にするには:

  1. StarterPlayerScriptsで、新しいLocalScriptを作成してConfigureMerchBoothに名前を変更します。

  2. 以下のコードを新しいスクリプトに貼り付けます。

    LocalScript - ConfigureMerchBooth

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    MerchBooth.configure({
    backgroundColor = Color3.fromRGB(220, 210, 200),
    textSize = 17,
    textFont = Enum.Font.Fondamento,
    textColor = Color3.fromRGB(20, 20, 20),
    useFilters = false
    })

アイテムの追加

Merch のない Merch Booth とは何でしょう? 以下のセクションでは、アバターアセットパス、および開発者製品を自分の Merch Booth に追加する方法の概要を説明します。

アバターアセット

衣装とアクセサリ などのアイテムは、 アバターショップのアイテム詳細ページにある アセット IDを使用して追加する必要があります。

  1. ServerScriptService内にScriptを作成して、以下のコードに貼り付けます。

    Script - Add Avatar Assets

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    }
    for _, assetId in ipairs(items) do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    print(errorMessage)
    end
    end
  2. アバターショップウェブサイトの URL からアイテムのアセット ID をコピーします。 例えば、Roblox ベースボールキャップの ID は、607702162です。

  3. コピーされた ID それぞれを、itemsテーブル内のカンマ区切りリストに貼り付けそしてEnum.InfoType.ProductaddItemAsyncの第 2 パラメータとしてを含めて、アイテムが開発製品であることを示します。 デフォルトでは、アイテムはカタログビューにアルファベット順に表示されますが、setCatalogSortを使用してソートをカスタマイズできます。

    Script - Add Avatar Assets

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    607702162, -- Roblox Baseball Cap
    4819740796, -- Robox
    1374269, -- Kitty Ears
    11884330, -- Nerd Glasses
    10476359, -- Paper Hat
    }
    for _, assetId in ipairs(items) do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    print(errorMessage)
    end
    end

パス

パス の追加には、クリエーターダッシュボードに配置できるパス ID が必要です。

  1. ServerScriptService内にScriptを作成して、以下のコードに貼り付けます。

    Script - Add Passes

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    }
    for _, assetId in ipairs(items) do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    print(errorMessage)
    end
    end
  2. クリエーターダッシュボードに移動し、バーチャル空間を選択します。

  3. 左側の列で、関連アイテムをクリックし、パスを選択します。

  4. パスを右クリックし、アセット ID をコピーを選択します。

  5. コピーされた ID それぞれを、itemsテーブル内のカンマ区切りリストに貼り付けそしてEnum.InfoType.GamePassaddItemAsyncの第 2 パラメータとしてを含めて、アイテムがパスであることを示します。 デフォルトでは、アイテムはカタログビューにアルファベット順に表示れますが、ソートはsetCatalogSortでカスタマイズできます。

    Script - Add Passes

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    4343758, -- ColdFyre Armor
    28521575, -- Slime Shield
    }
    for _, assetId in ipairs(items) do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)
    end)
    if not success then
    print(errorMessage)
    end
    end

開発者製品

開発者製品 の追加には、クリエーターダッシュボードに配置できる製品 ID が必要です。

  1. ServerScriptService内にScriptを作成して、以下のコードに貼り付けます。

    Script - Add Developer Products

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    }
    for _, assetId in ipairs(items) do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    print(errorMessage)
    end
    end
  2. クリエーターダッシュボードに移動し、バーチャル空間を選択します。

  3. 左側の列で、関連アイテムをクリックし、**開発者製品(DEVELOPER PRODUCT)**を選択します。

  4. パスを右クリックし、アセット ID をコピーを選択します。

  5. コピーされた ID それぞれを、テーブル内のカンマ区切りリストに貼り付けそしてaddItemAsyncの第 2 パラメータとしてを含めて、アイテムがパスであることを示します。 デフォルトでは、アイテムはカタログビューにアルファベット順に表示されますが、setCatalogSortを使用してソートをカスタマイズできます。

    Script - Add Developer Products

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    1236602053, -- Mana Refill
    1257880672, -- Healing Potion
    }
    for _, assetId in ipairs(items) do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)
    end)
    if not success then
    print(errorMessage)
    end
    end

カスタムカタログボタン

デフォルトでは、右側のカタログボタンにより、ユーザーはいつでもブースを開くことができます。

場合によっては、このボタン削除して、自分のボタンを接続すると便利です:

  1. ボタンとテキスト入力で概説されているように、新しいボタンを作成します。

  2. ボタンオブジェクトの子としてLocalScriptを作成します。

  3. 以下のコードを新しいスクリプトに貼り付けます。

    LocalScript - Custom Catalog Button

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- Remove the default catalog button
    MerchBooth.toggleCatalogButton(false)
    -- Connect the custom button
    script.Parent.Activated:Connect(function()
    MerchBooth.openMerchBooth()
    end)

ショップ可能な地域

験内での購買を促進するのに役立つのが、ユーザーがエリアに入ったときに、自動的に Merch booth を表示する方法です。

ショップ可能な地域を作成するには:

  1. 検出領域を囲むAnchoredブロックを作成します。

    プレイヤーがショップカウンターの前に近づいたことを検出するためのブロック
  2. 表示タブからアクセスできるタグ編集機能を使用して、そのタグShopRegionをブロックに適用して、CollectionServiceがそれを検出するようにします。

  3. パーツのCanCollideCanQueryプロパティを無効にして、オブジェクトが物理的にそれと衝突しないようにし、また、レイキャストがそれを検出しないようにします。 また、そのTransparencyを最大値に設定して、バーチャル空間のユーザーからそれを非表示にします。

  1. StarterPlayerScriptsの下に新しいLocalScriptを挿入します。

  2. 新しいスクリプトに、以下のコードを貼り付けます、これは、TouchedTouchEndedイベントを使用してユーザーが領域に出入りするのを検出し、openMerchBoothcloseMerchBoothを呼び出して、ブース GUI を開閉を行います。

    LocalScript

    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- Remove the default catalog button
    MerchBooth.toggleCatalogButton(false)
    -- Iterate through all tagged parts
    for _, region in ipairs(CollectionService:GetTagged("ShopRegion")) do
    region.Touched:Connect(function(otherPart)
    local character = Players.LocalPlayer.Character
    if character and character:FindFirstChild("HumanoidRootPart") == otherPart then
    MerchBooth.openMerchBooth()
    end
    end)
    region.TouchEnded:Connect(function(otherPart)
    local character = Players.LocalPlayer.Character
    if character and character:FindFirstChild("HumanoidRootPart") == otherPart then
    MerchBooth.closeMerchBooth()
    end
    end)
    end

Proximity プロンプト

2D カタログビューの代替として、バーチャル空間内のオブジェクトに近接プロンプトを追加できます。 これにより、ユーザーは 3D 環境のアイテムを発見し、自分だけのアバターでそれらをプレビューし、購入し、即座に装備することができます。 詳細については、addProximityButtonを参照してください。

装備効果の変更

デフォルトでは、Merch Booth は、ユーザーがアイテムを装備すると、一般的なスパークルエフェクトを表示ます。 効果を変更するには、particleEmitterTemplate設定コール内のParticleEmitterの自分のインスタンスに設定します。

LocalScript - ConfigureMerchBooth

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("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 の可視性

デフォルトでは商品ブース(Merch Booth)は、Roblox に含まれているチャット、スコアボード、その他の UI が表示されたときに、すべてのCoreGuisScreenGuisを非表示にします。 この動作を無効にしたい場合は、hideOtherUis設定コール内のfalseに設定します。

LocalScript - ConfigureMerchBooth

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.configure({
hideOtherUis = false
})

キャラクターの動き

キャラクターが Merch Booth 内にある間に移動するのを防ぐのに有利です。 これは、disableCharacterMovement設定コール内のtrueに設定することで行えます。

LocalScript - ConfigureMerchBooth

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.configure({
disableCharacterMovement = true
})

API リファレンス

種類

アイテム

Merch Booth のアイテムは、以下のキーと値のペア持つ辞書によって表されます。 アイテムは、getItems関数またはitemAdedイベントを介して収集できます。

キー概要
assetId数字addItemAsyncにパスされたアイテムのカタログIDです。
title文字列カタログに表示されるアイテムタイルです。
price数字Robuxのアイテム価格です。
description文字列カタログに表示されているアイテムの詳細です。
assetType文字列アイテムのアクセサリタイプを表す文字列です。
isOwnedブーリアン型現在のユーザーがアイテムを所有しているかどうかです。
creatorName文字列カタログに表示されているアイテムクリエーターです。
creatorTypeEnum.CreatorTypeアイテムのクリエーターの種類です。

列挙型

MerchBooth.Controls

setControlKeyCodesと一緒に使用して、Merch Booth と対話するためのキーやゲームパッドボタンカスタマイズします。

名前まとめ
ProximityPromptsProximityプロンプトが設定されているときにアイテムビューを開くためのキーおよび/またはgamepadボタンです。
OpenMerchBoothMerch Boothを開くためのキー/またはgamepadボタンです。
CloseMerchBoothMerch Boothを閉じるためのKeyおよび/またはgamepadボタンです。
Filterカタログビューの左上領域にあるデフォルトのフィルタープルダウンを使用するためのキーおよび/またはgamepadボタンです。
ViewItem特定のMerch Boothビューを開くためのキー/またはgamepadボタンです。
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {
keyboard = Enum.KeyCode.Q,
gamepad = Enum.KeyCode.ButtonL1
})

関数

設定

configure(config:table)

デフォルトのクライアント側の設定オプションを、テーconfigブル内にある以下のキー/値を使用して上書きします。 この関数は、LocalScriptからのみ呼び出すことができます。

Data

キー概要デフォルト
backgroundColorウィンドウのメイン背景色です(Color3)。[0, 0, 0]
cornerRadiusメインウィンドウのコーナーの半径です(UDim)。(0, 16)
cornerRadiusSmallウインドウ内の要素の半径です(UDim)。(0, 8)
textFont価格、説明、その他一般情報などの「メインテキスト」のフォントです(Enum.Font)。Gotham
textSizeメインテキストのサイズです。13
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]
particleEmitterTemplateequipに表示してプレイするオプションのカスタムParticleEmitterインスタンスです。

Proximity プロンプト

キー概要デフォルト
proximityButtonActivationDistanceプロンプトが表示されるまでに、プレイヤーのキャラクターがプロンプトの広告主から離れられる最大距離です。10
proximityButtonExclusivity同時に表示できるプロンプトを指定するEnum.ProximityPromptExclusivityです。OnePerButton
proximityButtonOffsetプロンプトのUIに適用されたピクセルオフセットです(Vector2)。(0, 0)
proximityButtonPulseCount停止する前に、Proximityボタン周辺で発生する「パルス」の数です。3

Data

キー概要デフォルト
useFiltersカタログに表示されているフィルターボタンをオン/オフにします。true
disableCharacterMovementtrueの場合、Merch Boothが開いて間にキャラクターが移動するのを防ぎます。false
hideOtherUistrueの場合、Merch Boothは、UIが表示されたとき、すべてのScreenGuisCoreGuisを非表示にします。true
closeWhenFarFromPrompttrueandで、プレイヤーがProximityプロンプトでアイテムビューを開いた場合、プレイヤーがプロンプトオブジェクトからアクティベーション距離よりも遠くに移動すると、Merch Boothは自動的に閉じます。true
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("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)

バーチャル空間で購入できるように、アイテムを Merch Booth に非同期的に追加します。 assetIdはアイテムのアセット ID、productTypeはアイテムのEnum.InfoType列挙、hideFromCatalogはカタログビューのアイテムを非表示にするために使用できます。

アセットゲームパスまたは開発者製品の使用法がわずかに異なるため、詳細については、アイテムの追加を参照してください。

Script - Add Avatar Assets

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
607702162, -- Roblox Baseball Cap
4819740796, -- Robox
1374269, -- Kitty Ears
11884330, -- Nerd Glasses
10476359, -- Paper Hat
}
for _, assetId in ipairs(items) do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
print(errorMessage)
end
end
Script - Add Passes

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
4343758, -- ColdFyre Armor
28521575, -- Slime Shield
}
for _, assetId in ipairs(items) do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)
end)
if not success then
print(errorMessage)
end
end
Script - Add Developer Products

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
1236602053, -- Mana Refill
1257880672, -- Healing Potion
}
for _, assetId in ipairs(items) do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)
end)
if not success then
print(errorMessage)
end
end

getItems

getItems():table

現在登録されているすべてのアイテムを表す辞書を返します。 各キーは、文字列としてのアイテムのアセット ID であり、各キーの値はアイテムです。 この関数は、Scriptからのみ呼び出すことができます。

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("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で以前に追加しアイテムを登録解除し、カタログビューのタイルとそれに割り当てられたProximity プロンプトを削除します。 この関数は、Scriptからのみ呼び出すことができます。

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
-- After some time, remove the item
task.wait(5)
MerchBooth.removeItem(4819740796)
end

addProximityButton

addProximityButton(adornee: BasePart|Model|Attachment, assetId: number)

Proximity プロンプトを指定さたadorneeに追加すると、そのアセット ID が指定された、アイテムの購入ビューの表示がトリガーされます。 これは、2D のカタログビューの代替として、ユーザーに 3D 環境でのアイテム発見を促すときに使用できます。

ProximityButton を割り当てる前に、addItemAsyncを介してアイテムが追加されていなくてはならないことに注意してください。 オブジェクトから Proximity プロンプトを削除するには、removeProximityButtonも参照してください。

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("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によって生成されたProximity プロンプトを削除します。 この関数は、Scriptからのみ呼び出すことができます。

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("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
-- After some time, remove the prompt
task.wait(5)
MerchBooth.removeProximityButton(item)
end

setCatalogSort

setCatalogSort(sortFunction:function):boolean

カタログビューで使用するソート関数sortFunctionを設定します。 提供されるソート関数は、、pricetitleなどのアイテム情報に基づいたロジックを使用できます。 この関数は、LocalScriptからのみ呼び出すことができます。

カタログをソートするための例をいくつか示します:

Price Low-to-High

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("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:WaitForChild("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:WaitForChild("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)

Merch Booth との対話のためのキーとボタン値を設定します。 最初のパラメータは、MerchBooth.Controls列挙型で、2 番目のパラメータは、対応するEnum.KeyCode列挙型のキーkeyboardおよび/またはgamepadを含むテーブルでなければなりません。

Enum (control)デフォルトのkeyCodesキー/値
MerchBooth.Controls.ProximityPromptskeyboard = Enum.KeyCode.E
gamepad = Enum.KeyCode.ButtonY
MerchBooth.Controls.OpenMerchBoothgamepad = Enum.KeyCode.ButtonY
MerchBooth.Controls.CloseMerchBoothgamepad = Enum.KeyCode.ButtonB
MerchBooth.Controls.Filtergamepad = Enum.KeyCode.ButtonX
MerchBooth.Controls.ViewItemgamepad = Enum.KeyCode.ButtonA
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {
keyboard = Enum.KeyCode.Q,
gamepad = Enum.KeyCode.ButtonL1,
})

openMerchBooth

openMerchBooth():

Merch Booth ウィンドウ(閉じている場合)を開き、カタログビューに移動します。 この関数は、LocalScriptからのみ呼び出すことができます。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
print(errorMessage)
end
MerchBooth.openMerchBooth()

openItemView

openItemView(itemId:number)

指定されたitemIdのシングルアイテムビューに移動し、現在閉じて場合、Merch Booth ウィンドウを開きます。 この関数は、LocalScriptからのみ呼び出すことができます。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
MerchBooth.openItemView(4819740796)
end

toggleCatalogButton

toggleCatalogButton(enabled:boolean)

画面の右側あるカタログボタンをオン/オフにします。 これは、カスタムボタンを実装したり、Merch Booth の外観を地域またはProximity プロンプトに制限したりするときに便利です。 LocalScriptからのみ呼び出すことができます。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.toggleCatalogButton(false)

isMerchBoothOpen

isMerchBoothOpen():Tuple

カタログまたはアイテムビューのいずれかが開いている場合、trueを返します。 アイテムビューが開いている場合、アイテムのアセット ID が 2 番目の値として返されます。 この関数は、LocalScriptからのみ呼び出すことができます。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("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():

Merch Booth ウィンドウを閉じます。 この関数は、LocalScriptからのみ呼び出すことができます。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.closeMerchBooth()

isMerchBoothEnabled

isMerchBoothEnabled():boolean

この関数をsetEnabledとタンデムで使用して、Merch Booth が現在有効になっているかどうかを確認できます。 LocalScriptからのみ呼び出すことができます。

setEnabled

setEnabled(enabled:boolean)

Merch Booth 全体を有効/無効のいずれかに設定します。 無効にすると、この関数は、Proximity プロンプトを含む UI 全体を削除し、すべてのイベントを切り離します。 この関数は、LocalScriptからのみ呼び出すことができます。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local isEnabled = MerchBooth.isMerchBoothEnabled()
if isEnabled then
MerchBooth.setEnabled(false)
end

イベント

itemAdded

itemAdded(assetId:number,itemInfo:table):RBXScriptSignal

addItemAsyncでアイテムが追加されるときに発生します。 このイベントには、Script内でのみ接続できます。

パラメータ
assetId:numberアイテムアセットIDです。
itemInfo:tablepriceまたはtitleなどのアイテム情報の辞書です。
Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemAdded:Connect(function(assetId, itemInfo)
print("Item added with asset ID of", assetId)
print(itemInfo)
end)

itemRemoved

itemRemoved(assetId:number):RBXScriptSignal

removeItemでアイテムが削除されるときに発生します。 このイベントには、Script内でのみ接続できます。

パラメータ
assetId:numberアイテムアセットIDです。
Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemRemoved:Connect(function(assetId)
print("Item removed with asset ID of", assetId)
end)

merchBoothOpened

merchBoothOpened():RBXScriptSignal

カタログまたはアイテム詳細ビューのいずれかが開かれているときに発生します。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.merchBoothOpened:Connect(function()
print("Booth view opened")
end)

merchBoothClosed

merchBoothClosed():RBXScriptSignal

カタログまたはアイテム詳細ビューのいずれかが閉じられているときに発生します。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.merchBoothClosed:Connect(function()
print("Booth view closed")
end)

catalogViewOpened

catalogViewOpened():RBXScriptSignal

カタログビューが開かれているときに発生します。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.catalogViewOpened:Connect(function()
print("Catalog view opened")
end)

catalogViewClosed

catalogViewClosed():RBXScriptSignal

カタログビューが閉じられているときに発生します。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.catalogViewClosed:Connect(function()
print("Catalog view closed")
end)

itemViewOpened

itemViewOpened():RBXScriptSignal

詳細ビューが開かれているときに発生します。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemViewOpened:Connect(function()
print("Item view opened")
end)

itemViewClosed

itemViewClosed():RBXScriptSignal

アイテム詳細ビューが閉じられているときに発生します。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemViewClosed:Connect(function()
print("Item view closed")
end)