Como vender um sistema de Roblox que eu já fiz?
O que faz um sistema vendável não é o código, é a configuração. Tire todo id, preço e nome que o seu jogo escreveu no meio do script e ponha num módulo só, faça o sistema ler apenas de lá, exporte a pasta como .rbxm e escreva cinco linhas de instalação que um estranho consegue seguir. Depois anuncie com licença.
Em resumo
- Um módulo Config. O comprador muda valores, nunca o seu código.
- Exporte a pasta inteira como .rbxm, não um punhado de scripts.
- Cinco passos de instalação, uma licença, e o que ele NÃO faz.
Um sistema que funciona no seu jogo e em nenhum outro não é um produto. Em nove de dez casos a única coisa entre os dois é um punhado de valores digitados no meio de um script: o id do seu gamepass, o nome da sua moeda, o seu ponto de spawn. Tire isso de lá e você tem algo que outra pessoa consegue instalar.
Passo a passo
1. Junte todo valor fixo num módulo
Passe o sistema inteiro e mova tudo que é sobre o seu jogo para um módulo Config. Se o comprador precisa abrir um script para trocar um número, o número está no lugar errado.
-- MeuSistema/Config (ModuleScript)
return {
-- Economia: nomes e ids que o comprador certamente vai trocar.
currencyName = "Coins",
leaderstatsFolder = "leaderstats",
gamepassId = 0, -- 0 = o recurso de gamepass fica desligado
-- Equilíbrio: números que o comprador vai querer ajustar.
rewardAmount = 50,
cooldownSeconds = 24 * 60 * 60,
-- Apresentação.
soundId = "rbxassetid://0",
useOwnGui = true, -- false = o comprador liga a interface dele
}
2. Faça o sistema ler só do Config
Um require no topo e nenhum valor digitado em outro lugar. Isso também deixa o seu próprio jogo mais fácil de reequilibrar.
local config = require(script.Parent.Config)
local function premiar(player: Player)
local stats = player:FindFirstChild(config.leaderstatsFolder)
local moeda = stats and stats:FindFirstChild(config.currencyName)
if not moeda then
-- Diga o que está errado com a correção na própria frase. Um comprador
-- que vê "attempt to index nil" culpa o pack.
warn(`[MeuSistema] não achei {config.currencyName} dentro de {config.leaderstatsFolder}. Ajuste no Config.`)
return
end
moeda.Value += config.rewardAmount
end
3. Proteja as partes opcionais
Tudo que depende de um id que o comprador ainda não pôs tem de se desligar em vez de dar erro. Pack que estoura na instalação é pack reembolsado.
local MarketplaceService = game:GetService("MarketplaceService")
local config = require(script.Parent.Config)
local function temPremioDobrado(player: Player): boolean
if config.gamepassId == 0 then
return false -- o recurso fica desligado até o comprador pôr um id
end
local ok, tem = pcall(function()
return MarketplaceService:UserOwnsGamePassAsync(player.UserId, config.gamepassId)
end)
return ok and tem
end
4. Exporte uma pasta e escreva as cinco linhas
Clique com o direito na pasta no Studio e use Save to File — um .rbxm que o comprador arrasta para dentro. Depois escreva a instalação, numerada, sem nenhum passo que diga "configure conforme necessário".
--[[
MeuSistema v1.0
1. Arraste MeuSistema para o ServerScriptService.
2. Abra MeuSistema/Config.
3. Ponha currencyName com o nome da sua moeda (padrão "Coins").
4. Opcional: ponha gamepassId para o prêmio dobrado. 0 deixa desligado.
5. Jogue. O prêmio sai na entrada; mude cooldownSeconds para testar rápido.
Precisa: uma pasta leaderstats com a sua moeda dentro.
NÃO inclui: a interface, salvamento de dados, nem loja.
]]
O que escrever no anúncio
| Campo | O que o comprador está decidindo | O que dá errado sem ele |
|---|---|---|
| O que faz, em uma linha | se continua lendo | ele abre, adivinha e pede reembolso |
| O que NÃO faz | se serve no jogo dele | "eu achei que vinha com a interface" |
| Passos de instalação, numerados | se consegue instalar hoje | um tópico de suporte por comprador |
| Licença | se pode usar comercialmente | ele pergunta, e você responde uma vez por venda |
| Um vídeo rodando | se funciona de verdade | print não prova que nada se move |
Perguntas
Preciso tirar os assets do meu próprio jogo?
Todos os que você não tem direito de revender. Os seus modelos e scripts são seus; uma mesh ou um som que você pegou em algum lugar não é, e revender isso é a coisa que tira um anúncio do ar. Se precisar de um substituto, entregue um cubo cinza e diga que é.
Vender como modelo ou como arquivo?
Como arquivo .rbxm. Um modelo do Roblox é público, sem controle e fácil de reupar; um arquivo é entregue por comprador, e na Risor cada download leva a marca da entrega de onde saiu, então uma cópia vazada aponta de volta para ela.
Que licença dar?
Uma licença não exclusiva para usar e alterar nas experiências do próprio comprador, inclusive comerciais, sem direito de revender nem redistribuir o fonte. É a licença que todo pack da Risor carrega e é a que o comprador espera.
Quanto vale um sistema?
O que o comprador economiza por não construir. Um módulo de recompensa diária é o trabalho de uma noite e tem preço de uma noite; um sistema de inventário completo com save, interface e migração é uma semana, e vende como uma semana. Cobrar abaixo do seu próprio tempo de construção ensina o comprador que a próxima versão também vai ser barata.
Atualizado: Testado no Studio: Roblox Studio, outubro de 2026Autor: GustavoLicença: O código deste guia pode ser usado em qualquer experiência do Roblox, inclusive paga