Магазин в Roblox Studio — это не просто витрина, а сердце монетизации: именно через него вы сможете продавать валюту, бонусы и эксклюзивные предметы. Хорошая новость — собрать магазин не сложнее, чем построить базу в любимом тайкун-режиме, если знать несколько ключевых приемов. Давайте разберемся, как все это работает и как сделать так, чтобы покупки приносили удовольствие игрокам и вам.
Определиться с моделями продаж: что именно продавать
В Roblox есть три главных инструмента для продаж, и у каждого своя роль:
- Game Pass — разовая покупка, которая дает постоянное преимущество. Например, VIP-доступ или двойной опыт. Купил один раз — и навсегда.
- Developer Product — многоразовый товар: внутриигровая валюта, патроны, бустеры. Игрок может брать их хоть каждый день.
- Подписка — относительно новый формат. Игрок платит раз в определенный срок и получает регулярные бонусы: ежедневные сундуки, доступ к клубу или эксклюзивный контент.
Источник: CQ.ru / Шаблон магазина
Выбирайте модель под задачу: постоянные плюшки — в Game Pass, расходники — в Developer Product, а для долгосрочной вовлеченности — подписки.
Как сделать магазин в Роблокс Студио
Чтобы магазин заработал, сначала нужно подготовить товары, а потом сделать для них удобную витрину в самой игре.
Создаем ассеты в Creator Hub
Зайдите на create.roblox.com, откройте свой проект и выберите нужный раздел: Passes, Developer Products или Subscriptions. У каждого товара должна быть картинка (иконка), название и цена. После сохранения у продукта появится уникальный ID — без него код не сработает, поэтому запишите его сразу. Это как штрихкод на реальном товаре: если потеряете, касса не пробьет.
Источник: CQ.ru / Сток с иконками товаров
Делаем витрину в Roblox Studio
В обозревателе добавьте ScreenGui, внутри создайте Frame — это будет «окно» магазина. Дальше можно расставить TextButton или ImageButton для каждого товара, подписав их понятным текстом и прикрепив иконки. Важно, чтобы кнопки были крупные и не сливались друг с другом — игроки должны тратить Robux, а не глаза. Если хочется большего погружения, добавьте ProximityPrompt к объектам в мире (например, торговцу или стенду), чтобы покупка запускалась при взаимодействии.
Источник: CQ.ru / Создание элементов магазина (в блоке справа)
Совет по UX. Не перегружайте интерфейс: 2–4 товара на экран — оптимум. Лучше сделайте прокрутку или вкладки, чем пытаться впихнуть весь ассортимент в одну панель. И не забудьте выделить «топовый» товар — контрастная кнопка или яркая рамка тут работают безотказно.
В итоге у вас получится базовый шаблон магазина: товары созданы и имеют ID, интерфейс готов, остается только связать кнопки с кодом, чтобы покупки действительно проходили.
Вызов платежного окна
Теперь пора оживить кнопки и связать их с реальной покупкой. Для этого в Roblox есть сервис MarketplaceService, который умеет вызывать платежное окно прямо в игре.
- Откройте Roblox Studio и загрузите свой проект.
- В дереве объектов найдите GUI-кнопку, которая должна открывать магазин (например, TextButton).
- Кликните по кнопке правой кнопкой → Insert Object → выберите LocalScript.
- Вставьте в LocalScript код из примера ниже.
- Замените productId или gamePassId на ID вашего товара, который вы получили в Creator Hub.
- Сохраните и запустите игру в режиме Play — при нажатии на кнопку появится стандартное окно Roblox с предложением покупки.
Источник: CQ.ru / Добавление скрипта к магазину
Код для 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)
Источник: CQ.ru / Прописывание скрипта для кнопок
Подтверждение и выдача покупки на сервере
После того как игрок нажал кнопку и подтвердил платеж, дело не заканчивается — именно сервер решает, получил ли он награду. Для этого у MarketplaceService есть специальный колбэк ProcessReceipt, который срабатывает каждый раз при успешной оплате Developer Product. Внутри вы сами пишете логику: что выдавать и как сохранять.
Шаги настройки
- В ServerScriptService создайте обычный Script (серверный);
- Вставьте туда обработчик ProcessReceipt;
- Внутри обработчика проверяйте ProductId из чека и решайте, что выдать: валюту, предмет или бонус;
- Обязательно фиксируйте покупку в DataStore, чтобы при повторной обработке (а Roblox иногда отправляет дубли) игрок не получил предмет дважды;
- Сохраняйте инвентарь или прогресс в DataStoreService, чтобы после перезахода у игрока остались все покупки.
Источник: CQ.ru / Добавление скрипта-обработчика
Пример серверного скрипта:
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
Источник: CQ.ru / Прописывание условий выдачи
Собрать магазин в Roblox Studio не так сложно: вы создаете товары в Creator Hub, настраиваете кнопки в игре и добавляете серверный скрипт для честной выдачи наград. Главное — проверяйте покупки через ProcessReceipt и сохраняйте прогресс, тогда игроки будут доверять вашему проекту и возвращаться снова. А дальше все зависит от вашей фантазии — какой ассортимент и оформление сделают магазин «тем самым» местом, где хочется оставить пару Robux.
Заглавное фото: CQ.ru с помощью Midjourney
Читайте также:
0 комментариев