← ALL PLUGINS

Product Uploader

Bulk-create Developer Products and Game Passes without leaving Studio. Type a list, press create, get a ready-to-require module of IDs back. Or skip the panel entirely: connect your AI over MCP and do it by chat.

01Installation

One click from the Creator Store - Studio picks it up and the toolbar button appears. No files to move, no setup.

OPENS THE CREATOR STORE · STUDIO TAKES IT FROM THERE.

02Sign in

First run asks you to sign in, two ways. Login with Roblox opens your browser for OAuth and the plugin polls until you finish. Or paste an Open Cloud API Key and skip the browser entirely. Either way the plugin remembers you across Studio sessions.

03Connect your AI

Product Uploader now works with AI assistants through MCP. Connect your AI once and it can manage your Roblox monetization for you: list, create, and edit Developer Products and Game Passes straight from a normal conversation. Supported clients: Claude Code, Claude Desktop, Cursor, and Gemini. ChatGPT support is planned.

WHAT YOU CAN DO
  • List your existing dev products and game passes, with their current prices and IDs.
  • Bulk create new dev products and game passes.
  • Update existing items - mainly prices - with a preview step, so nothing changes until you confirm.
  • Just say "change these prices" without naming a game. The plugin tells the AI which experience you have open in Studio, so it works on the right one by default - or point it at any specific game on demand.
HOW TO CONNECT
  1. Open the plugin and go to the new Connect your AI page.
  2. Pick your client: Claude Code, Claude Desktop, Cursor, or Gemini.
  3. Press Generate Connection and paste the command or config into your AI. Done.
SAFETY

Every edit is previewed before it applies. Your Roblox API key stays on the server and is never shared with the AI - the AI only ever sees a private token you can revoke or regenerate at any time. And it only ever touches your own experiences.

04Create in bulk

Pick Dev Products or Game Passes, then type one item per line: name, price, and an optional description. Regional pricing has its own toggle. Create fires the whole batch; the panel can also list what already exists in the universe.

PRODUCTS · NAME, PRICE, DESCRIPTION
Speed Boost, 50, Run faster
Double Coins, 100, 2x coins
Pet Dog, 200

05Generated module

Export Module writes a ModuleScript named DevProducts (or GamePasses) into ReplicatedStorage. Entries merge with whatever the module already holds, sorted by name - re-exporting updates it in place instead of clobbering it.

REPLICATEDSTORAGE.DEVPRODUCTS
-- Auto-generated by Product Creator
local DevProducts = {
	["Double Coins"] = {
		Id = 1234567890,
		Price = 100,
		Name = "Double Coins",
	},
	["Speed Boost"] = {
		Id = 1234567891,
		Price = 50,
		Name = "Speed Boost",
	},
}

return DevProducts
USING IT
local MarketplaceService = game:GetService("MarketplaceService")
local DevProducts = require(game.ReplicatedStorage.DevProducts)

MarketplaceService:PromptProductPurchase(player, DevProducts["Speed Boost"].Id)

06Server API

The plugin talks to a small server at chopskie.com/api/product-creator, which handles the OAuth handshake and calls Roblox Open Cloud. Authenticated endpoints take an x-session-id header.

ENDPOINTAUTHNOTES
GET /healthnoneHealth check.
POST /auth/startnoneStarts the OAuth flow; returns the URL the plugin opens in your browser.
GET /auth/callbacknoneOAuth redirect handler. You never call this yourself.
GET /auth/status?session_id=…noneThe plugin polls this while you finish signing in.
POST /dev-products/createsessionBulk-create Developer Products. Max 50 per request.
GET /dev-products/list?universe_id=…sessionList existing Developer Products.
POST /game-passes/createsessionBulk-create Game Passes. Max 50 per request.
GET /game-passes/list?universe_id=…sessionList existing Game Passes.

07Field notes

NOTE

Sessions last 30 days of inactivity and access tokens refresh themselves (Roblox tokens only live 15 minutes). Sessions are held in memory, so a server restart signs everyone out - just log in again.

WARNING

50 items max per request. Creates are paced into a steady drip to stay under Roblox's rate limit; if Roblox pushes back with a 429 the pacer slows down and retries with backoff, honouring Retry-After.