Магазин в Roblox Studio — это не просто витрина, а сердце монетизации: именно через него вы сможете продавать валюту, бонусы и эксклюзивные предметы. Хорошая новость — собрать магазин не сложнее, чем построить базу в любимом тайкун-режиме, если знать несколько ключевых приемов. Давайте разберемся, как все это работает и как сделать так, чтобы покупки приносили удовольствие игрокам и вам.

Определиться с моделями продаж: что именно продавать

В Roblox есть три главных инструмента для продаж, и у каждого своя роль:

  • Game Pass — разовая покупка, которая дает постоянное преимущество. Например, VIP-доступ или двойной опыт. Купил один раз — и навсегда.
  • Developer Product — многоразовый товар: внутриигровая валюта, патроны, бустеры. Игрок может брать их хоть каждый день.
  • Подписка — относительно новый формат. Игрок платит раз в определенный срок и получает регулярные бонусы: ежедневные сундуки, доступ к клубу или эксклюзивный контент.

Выбирайте модель под задачу: постоянные плюшки — в Game Pass, расходники — в Developer Product, а для долгосрочной вовлеченности — подписки.

Как сделать магазин в Роблокс Студио

Чтобы магазин заработал, сначала нужно подготовить товары, а потом сделать для них удобную витрину в самой игре.

Создаем ассеты в Creator Hub

Зайдите на create.roblox.com, откройте свой проект и выберите нужный раздел: Passes, Developer Products или Subscriptions. У каждого товара должна быть картинка (иконка), название и цена. После сохранения у продукта появится уникальный ID — без него код не сработает, поэтому запишите его сразу. Это как штрихкод на реальном товаре: если потеряете, касса не пробьет.

Делаем витрину в Roblox Studio

В обозревателе добавьте ScreenGui, внутри создайте Frame — это будет «окно» магазина. Дальше можно расставить TextButton или ImageButton для каждого товара, подписав их понятным текстом и прикрепив иконки. Важно, чтобы кнопки были крупные и не сливались друг с другом — игроки должны тратить Robux, а не глаза. Если хочется большего погружения, добавьте ProximityPrompt к объектам в мире (например, торговцу или стенду), чтобы покупка запускалась при взаимодействии.

Совет по UX. Не перегружайте интерфейс: 2–4 товара на экран — оптимум. Лучше сделайте прокрутку или вкладки, чем пытаться впихнуть весь ассортимент в одну панель. И не забудьте выделить «топовый» товар — контрастная кнопка или яркая рамка тут работают безотказно.

В итоге у вас получится базовый шаблон магазина: товары созданы и имеют ID, интерфейс готов, остается только связать кнопки с кодом, чтобы покупки действительно проходили.

Вызов платежного окна

Теперь пора оживить кнопки и связать их с реальной покупкой. Для этого в Roblox есть сервис MarketplaceService, который умеет вызывать платежное окно прямо в игре.

  1. Откройте Roblox Studio и загрузите свой проект.
  2. В дереве объектов найдите GUI-кнопку, которая должна открывать магазин (например, TextButton).
  3. Кликните по кнопке правой кнопкой → Insert Object → выберите LocalScript.
  4. Вставьте в LocalScript код из примера ниже.
  5. Замените productId или gamePassId на ID вашего товара, который вы получили в Creator Hub.
  6. Сохраните и запустите игру в режиме Play — при нажатии на кнопку появится стандартное окно Roblox с предложением покупки.

Код для Developer Product (многоразовые покупки):

local MarketplaceService = game:GetService("MarketplaceService")

local productId = 123456789 -- замените на свой ID

script.Parent.MouseButton1Click:Connect(function()

local player = game.Players.LocalPlayer

MarketplaceService:PromptProductPurchase(player, productId)

end)

Код для Game Pass (разовая покупка):

local MarketplaceService = game:GetService("MarketplaceService")

local gamePassId = 987654321 -- замените на свой ID

script.Parent.MouseButton1Click:Connect(function()

local player = game.Players.LocalPlayer

MarketplaceService:PromptGamePassPurchase(player, gamePassId)

end)

Подтверждение и выдача покупки на сервере

После того как игрок нажал кнопку и подтвердил платеж, дело не заканчивается — именно сервер решает, получил ли он награду. Для этого у MarketplaceService есть специальный колбэк ProcessReceipt, который срабатывает каждый раз при успешной оплате Developer Product. Внутри вы сами пишете логику: что выдавать и как сохранять.

Шаги настройки

  1. В ServerScriptService создайте обычный Script (серверный);
  2. Вставьте туда обработчик ProcessReceipt;
  3. Внутри обработчика проверяйте ProductId из чека и решайте, что выдать: валюту, предмет или бонус;
  4. Обязательно фиксируйте покупку в DataStore, чтобы при повторной обработке (а Roblox иногда отправляет дубли) игрок не получил предмет дважды;
  5. Сохраняйте инвентарь или прогресс в DataStoreService, чтобы после перезахода у игрока остались все покупки.

Пример серверного скрипта:

local MarketplaceService = game:GetService("MarketplaceService")

local DataStoreService = game:GetService("DataStoreService")

local purchases = DataStoreService:GetDataStore("PlayerPurchases")

local productHandlers = {}

-- пример: продукт дает 100 монет

productHandlers[123456789] = function(receipt, player)

player.leaderstats.Coins.Value += 100

return true

end

local function processReceipt(receiptInfo)

local player = game.Players:GetPlayerByUserId(receiptInfo.PlayerId)

if not player then

return Enum.ProductPurchaseDecision.NotProcessedYet

end

local purchaseKey = receiptInfo.PlayerId .. "_" .. receiptInfo.PurchaseId

local alreadyProcessed = purchases:GetAsync(purchaseKey)

if alreadyProcessed then

return Enum.ProductPurchaseDecision.PurchaseGranted

end

local handler = productHandlers[receiptInfo.ProductId]

if handler then

local success = handler(receiptInfo, player)

if success then

purchases:SetAsync(purchaseKey, true)

return Enum.ProductPurchaseDecision.PurchaseGranted

end

end

return Enum.ProductPurchaseDecision.NotProcessedYet

end

MarketplaceService.ProcessReceipt = processReceipt

Собрать магазин в Roblox Studio не так сложно: вы создаете товары в Creator Hub, настраиваете кнопки в игре и добавляете серверный скрипт для честной выдачи наград. Главное — проверяйте покупки через ProcessReceipt и сохраняйте прогресс, тогда игроки будут доверять вашему проекту и возвращаться снова. А дальше все зависит от вашей фантазии — какой ассортимент и оформление сделают магазин «тем самым» местом, где хочется оставить пару Robux.

Заглавное фото: CQ.ru с помощью Midjourney