Геймпасс в Roblox: как создать и настроить его правильно
Продаём несуществующие объекты за реальные деньги.


Иллюстрация: Оля Ежак для Skillbox Media
Геймпасс — один из самых распространённых и эффективных способов монетизации игр, созданных в Roblox. Игрокам он даёт возможность получить уникальные внутриигровые бонусы и способности, а разработчикам — заработать на своей игре.
В этом материале вы узнаете, как создать геймпасс в Roblox, как правильно его оформить, активировать и настроить.
Содержание
- Что такое геймпасс в Roblox
- Подготовка
- Создаём геймпасс на ПК
- Создаём геймпасс на мобильных устройствах
- Как настроить привилегии геймпасса в Roblox
- Примеры скриптов для настройки привилегий геймпасса в Roblox
Что такое геймпасс в Roblox
Roblox — это онлайн-платформа, где пользователи создают и запускают собственные игры. Она объединяет миллионы игроков и разработчиков со всего мира и известна простыми инструментами для геймдизайна. Игры внутри Roblox называются плейсами: это отдельные миры, созданные пользователями в редакторе Roblox Studio.
Большая часть контента на платформе бесплатна. За внутриигровую валюту — робуксы — можно купить аксессуары, одежду и другие цифровые объекты. Пользователи настраивают своих аватаров, общаются, выполняют квесты и создают собственные проекты, которые приносят им реальные деньги.
Игры в Roblox можно монетизировать несколькими способами: продавать украшения для аватаров, открывать платный доступ к плейсам или использовать геймпассы.
Геймпасс — это платный пропуск, который игрок покупает за внутриигровую валюту — Robux. Он даёт дополнительные возможности внутри игры: доступ к закрытой локации, особые предметы, усиления персонажа или другие бонусы. Разработчик сам решает, какие преимущества получит покупатель.
Продажа геймпассов — основной способ заработка на платформе. Разработчик получает 70% от стоимости пропуска, оставшиеся 30% удерживает Roblox.
Подготовка
Перед созданием геймпасса нужно подготовить игру и убедиться, что всё готово к продаже. У вас должен быть аккаунт в Roblox и опубликованный плейс — без этого ничего не получится.
Работа с геймпассами проходит на панели разработчика — Creator Dashboard — или в разделе Create на сайте Roblox. С помощью этих инструментов создают, настраивают и публикуют все элементы игры, включая платные пропуска.
Перед загрузкой стоит подготовить изображение для геймпасса, которое станет его значком в магазине. Оно должно соответствовать требованиям платформы: иметь квадратный формат, размер не больше 512 × 512 пикселей и не нарушать чужие авторские права.
Полезно заранее продумать, какие преимущества получит игрок после покупки. Например, доступ к отдельной зоне, особый предмет или улучшенные характеристики. Ниже мы приведём список некоторых возможных преимуществ.
Создаём геймпасс на ПК
1. Зайдите на сайт Roblox, войдите в свой аккаунт и в верхнем меню выберите Create.

2. Вас перекинет в Creator Hub. В левом меню выберите пункт Creations, а затем проект, в который вы хотите добавить геймпасс. Обратите внимание, что проект должен быть публичным.

3. Нажмите на проект. В открывшемся меню найдите раздел Monetization и выберите пункт Passes, затем нажмите на кнопку Create A Pass.

4. В открывшемся разделе оформите геймпасс: задайте ему имя, описание и загрузите иконку. После этого нажмите на кнопку Create Pass.

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

6. Перейдите во вкладку Sales. Активируйте тумблер Item for Sale, затем введите желаемую цену геймпасса и укажите, будут применяться региональные цены или стоимость останется одинаковой для всех. Для региональных цен нужно поставить галочку на пункте Enable regional pricing. Если её выбрать, цена будет автоматически меняться для пользователей из разных стран с учётом состояния местной экономики.
Помните, что вы получите 70% от суммы продажи геймпасса; 30% — комиссия Roblox.

7. Геймпасс появится на вашей странице в Roblox.

Создаём геймпасс на мобильных устройствах
1. Откройте приложение Roblox (скачайте его на Android или iOS) и авторизуйтесь в нём. Нажмите три точки в правом нижнем углу, в открывшемся меню найдите кнопку Create и нажмите на неё.

2. Найдите проект, в который вы хотите добавить геймпасс. Убедитесь, что у него публичный статус. Нажмите на проект, а затем на три полосы в левом верхнем углу. В открывшемся меню найдите раздел Monetization и выберите пункт Passes.

3. Нажмите на кнопку Create A Pass.

4. В открывшемся меню оформите геймпасс: задайте ему имя, описание и загрузите иконку. После этого нажмите на кнопку Create Pass.

5. В списке Passes нажмите на нужный геймпасс, после этого нажмите на три полоски в правом верхнем углу и выберите пункт Sales.

6. Укажите цену и выберите или уберите опцию с региональными ценами так же, как в ПК-версии. Нажмите Save Changes.

Как настроить привилегии геймпасса в Roblox
Без настройки привилегий геймпасс в Roblox ничего не даёт. Разработчику нужно настроить в скриптах, какие именно бонусы получает игрок.
Для начала узнайте Pass ID — уникальный идентификационный номер, который позволяет привязать привилегии к покупке геймпасса и настроить их. Для этого зайдите в меню геймпасса, нажмите на три точки у его названия и кликните на Copy Asset ID.

После этого запустите Roblox Studio и откройте свою игру. В меню Explorer найдите папку ServerScriptService. Кликните по ней правой кнопкой мыши, выберите Insert, Insert Object, а затем Script. После этого откроется пространство для кодинга, где мы пропишем привилегии.


Скриншот: Roblox / Skillbox Media
Примеры скриптов для настройки привилегий геймпасса в Roblox
Бонусные объекты (оружие, питомцы, монеты) должны находиться в ServerStorage. Чтобы положить туда предмет, нужно:
- В Roblox Studio открыть Explorer.
- Найти папку ServerStorage.
- Перетащить предмет из Workspace или Toolbox в ServerStorage.
Теперь предмет будет выдаваться только игрокам с геймпассом.

Читайте также:
Проверяем, купил ли игрок геймпасс, и выдаём уникальный предмет
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local PASS_ID = 12345678 -- замените на ваш Pass ID
local function giveSword(player)
local sword = game:GetService("ServerStorage"):FindFirstChild("Sword")
if sword then
local clone = sword:Clone()
clone.Parent = player:WaitForChild("Backpack")
end
end
Players.PlayerAdded:Connect(function(player)
local success, ownsPass = pcall(function()
return MarketplaceService:UserOwnsGamePassAsync(player.UserId, PASS_ID)
end)
if success and ownsPass then
giveSword(player)
end
end)
Что здесь происходит
Этот скрипт автоматически даёт игроку меч, если у него есть определённый геймпасс.
Сначала мы подключаем сервисы Roblox, которые понадобятся для работы:
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
- MarketplaceService нужен, чтобы проверить, купил ли игрок геймпасс.
- Players нужен для работы с игроками, которые заходят в игру.
Дальше мы указываем ID геймпасса:
local PASS_ID = 12345678 -- замените на ваш Pass ID
Этот идентификатор показывает, какой именно геймпасс проверять у игрока.
Функция giveSword:
local function giveSword(player)
local sword = game:GetService("ServerStorage"):FindFirstChild("Sword")
if sword then
local clone = sword:Clone()
clone.Parent = player:WaitForChild("Backpack")
end
end
- Ищет в ServerStorage объект Sword.
- Если такой объект найден, делает его копию (Clone()).
- Кладёт копию в рюкзак игрока (Backpack), чтобы он мог её использовать.
Теперь реагируем на вход игрока в игру:
Players.PlayerAdded:Connect(function(player)
local success, ownsPass = pcall(function()
return MarketplaceService:UserOwnsGamePassAsync(player.UserId, PASS_ID)
end)
if success and ownsPass then
giveSword(player)
end
end)
- PlayerAdded срабатывает, когда новый игрок заходит в игру.
- pcall защищает от ошибок, которые могут возникнуть при проверке геймпасса.
- UserOwnsGamePassAsync (player.UserId, PASS_ID) проверяет, купил ли игрок указанный геймпасс.
- Если проверка прошла успешно и геймпасс есть, вызывается функция giveSword (player) — игрок получает меч.
Скрипт на увеличение скорости передвижения персонажа
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local PASS_ID = 12345678 -- Замените на ваш Pass ID
local VIP_SPEED = 25 -- Задайте скорость передвижения для владельцев геймпасса
Players.PlayerAdded:Connect(function(player)
local success, ownsPass = pcall(function()
return MarketplaceService:UserOwnsGamePassAsync(player.UserId, PASS_ID)
end)
if success and ownsPass then
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
humanoid.WalkSpeed = VIP_SPEED
end
end)
Что здесь происходит
После вызова серверов задаём ID геймпасса и скорость для владельцев:
local PASS_ID = 12345678 -- Замените на ваш Pass ID
local VIP_SPEED = 25 -- Задайте скорость передвижения для владельцев геймпасса
Обрабатываем вход игрока в игру:
Players.PlayerAdded:Connect(function(player)
local success, ownsPass = pcall(function()
return MarketplaceService:UserOwnsGamePassAsync(player.UserId, PASS_ID)
end)
if success and ownsPass then
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
humanoid.WalkSpeed = VIP_SPEED
end
end)
- PlayerAdded срабатывает, когда новый игрок входит в игру.
- pcall защищает от ошибок при проверке геймпасса.
- UserOwnsGamePassAsync (player.UserId, PASS_ID) проверяет, купил ли игрок указанный геймпасс.
- Если проверка успешна и геймпасс есть, скрипт получает объект персонажа игрока (Character).
- WaitForChild («Humanoid») ждёт, пока у персонажа появится часть Humanoid — это объект, который управляет движением и анимацией.
- humanoid.WalkSpeed = VIP_SPEED задаёт новую скорость передвижения игрока, делая его более быстрым, чем обычные игроки.
Выдача дополнительных денег при входе в игру
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local PASS_ID = 12345678 -- Замените на ваш Pass ID
Players.PlayerAdded:Connect(function(player)
local success, ownsPass = pcall(function()
return MarketplaceService:UserOwnsGamePassAsync(player.UserId, PASS_ID)
end)
if success and ownsPass then
local leaderstats = player:FindFirstChild("leaderstats")
if leaderstats then
local coins = leaderstats:FindFirstChild("Coins")
if coins and coins:IsA("IntValue") then
coins.Value = coins.Value + 100 -- Пропишите, сколько монет хотите давать за вход в игру
end
end
end
end)
Что здесь происходит
- UserOwnsGamePassAsync (player.UserId, PASS_ID) проверяет, купил ли игрок геймпасс.
- Если проверка успешна и геймпасс есть, скрипт ищет у игрока объект leaderstats.
- В leaderstats находятся игровые показатели: счёт, уровень, монеты и прочее.
- Скрипт ищет внутри leaderstats объект Coins.
- Если объект найден и действительно является числовым значением (IntValue), его значение увеличивается на 100.
Доступ к секретным зонам
Этот код открывает для игрока секретную дверь, если у него есть геймпасс.
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local PASS_ID = 123456789 -- Замените на ваш Pass ID
Players.PlayerAdded:Connect(function(player)
local success, hasPass = pcall(function()
return MarketplaceService:UserOwnsGamePassAsync(player.UserId, PASS_ID)
end)
if success and hasPass then
local secretDoor = game.Workspace:FindFirstChild("SecretDoor")
if secretDoor then
secretDoor.CanCollide = false -- Открываем дверь
secretDoor.Transparency = 0.5 -- Делаем дверь полупрозрачной
end
end
end)
Что здесь происходит
- Если проверка на поиск геймпасса успешна, скрипт ищет объект SecretDoor в Workspace.
- CanCollide = false делает так, чтобы игрок мог пройти сквозь дверь.
- Transparency = 0.5 делает дверь полупрозрачной, чтобы игрок видел, что она открыта.
Скрипт на VIP-флаг
Флаг нужен для удобного хранения информации о VIP-статусе игрока внутри игры. Когда игрок заходит, скрипт проверяет, купил ли он геймпасс, и создаёт у его персонажа флаг HasVIP.
С помощью флага другие скрипты в игре могут быстро узнать, является ли игрок VIP, без повторных обращений к MarketplaceService. Это удобно, когда нужно давать бонусы, открывать специальные возможности или включать особые механики для VIP-игроков — с помощью флага этим можно управлять централизованно.
Если флаг есть, любой скрипт может мгновенно проверить его значение, при этом сохраняется состояние всех скриптов, нет необходимости дублировать проверки геймпасса в разных местах.
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local PASS_ID = 12345678 -- Замените на ваш Game Pass ID
local VIP_FLAG_NAME = "HasVIP" -- Надпись на флаге
Players.PlayerAdded:Connect(function(player)
local success, ownsPass = pcall(function()
return MarketplaceService:UserOwnsGamePassAsync(player.UserId, PASS_ID)
end)
if success and ownsPass then
local flag = player:FindFirstChild(VIP_FLAG_NAME)
if not flag then
flag = Instance.new("BoolValue")
flag.Name = VIP_FLAG_NAME
flag.Parent = player
end
flag.Value = true
end
end)
Что здесь происходит
- UserOwnsGamePassAsync (player.UserId, PASS_ID) проверяет, купил ли игрок указанный геймпасс.
- Если проверка успешна и геймпасс есть, скрипт ищет у игрока объект с именем VIP_FLAG_NAME.
- Если такого объекта нет, создаётся новый объект типа BoolValue, которому задаётся имя VIP_FLAG_NAME. Этот объект привязывается к игроку.
- flag.Value = true активирует флаг, указывая, что игрок является владельцем VIP-геймпасса.
Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!