Voltar para o Blog
Quest Log

Como Fazer um Jogo Tipo Steal a Brainrot no Roblox

Base em um jogo estilo Steal a Brainrot no Roblox Studio com unidades sobre pedestais gerando dinheiro enquanto um jogador tenta roubar

Como fazer um jogo tipo Steal a Brainrot no Roblox: monte a esteira de renda, a mecânica de roubar unidades de outras bases e a trava da base em Luau.

Ferramenta:Roblox Studio

Entre nos jogos mais jogados do Roblox hoje, os de roubar unidades que geram dinheiro viraram febre. O Steal a Brainrot é o exemplo mais conhecido: cada jogador tem uma base com monstrinhos em cima de pedestais, cada monstrinho produz dinheiro sozinho, e a graça está em invadir a base dos outros e levar embora a unidade mais valiosa antes que o dono tranque tudo. Aprender como fazer um jogo tipo Steal a Brainrot no Roblox é um projeto ótimo para o segundo ou terceiro jogo de quem já mexeu no Studio, porque ele junta três ideias que todo jogo multiplayer usa: renda ao longo do tempo, troca de dono de um objeto e proteção. Neste guia você vai montar o esqueleto completo, com placar de dinheiro, pedestais que geram renda, roubo com apertar de botão e uma trava temporária, tudo em Luau curto.

O que faz esse tipo de jogo viciar

O loop é simples de descrever e difícil de largar. Você começa com uma base quase vazia e uma unidade fraca que pinga dinheiro devagar. Com o dinheiro, compra unidades melhores. Mas tem um atalho perigoso: em vez de esperar sua renda crescer, você corre até a base de outro jogador, rouba a melhor unidade dele e a coloca na sua. A tensão vem daí. Enquanto você ataca, alguém pode estar esvaziando a sua base pelas costas.

Para quem cria, esse gênero ensina um conceito que o obby e boa parte dos jogos single player não exigem: a ideia de dono. Uma mesma unidade pode pertencer a você agora e a outra pessoa daqui a dez segundos, e o jogo inteiro precisa respeitar isso, a renda tem que seguir o novo dono, e a trava tem que proteger só quem pagou por ela. Resolver isso com clareza é o pulo do gato, e é exatamente o que vamos treinar aqui.

Se esta é sua primeira vez abrindo o editor e palavras como Explorer, Part e Script ainda não dizem muita coisa, pare um minuto neste guia de como criar jogo no Roblox Studio, que cobre a instalação e a interface, e volte depois.

Desenhe o loop antes de abrir o Studio

Antes de arrastar bloco nenhum, risque o circuito no papel. Um jogo de roubar renda mínimo tem três peças de lógica:

  1. Renda: cada unidade gera um valor de dinheiro por segundo para o dono dela.
  2. Roubo: um jogador chega perto de uma unidade de outra base, aperta um botão e vira o novo dono.
  3. Trava: o dono paga um preço para blindar as unidades dele por um tempo, impedindo o roubo.

O dinheiro fecha o ciclo: renda vira dinheiro, dinheiro compra trava e unidades novas, e a trava protege a renda. Se você entende esse triângulo, o resto é tradução para Parts e scripts.

Defina também o tema agora. No lugar de brainrots, pode ser bichinhos de estimação, robôs, frutas gigantes, o que você quiser. O loop é o mesmo, muda a fantasia. Escolher o tema cedo evita o jogo genérico de cubos cinza que ninguém abre duas vezes.

Montando as bases no Roblox Studio

Abra o Roblox Studio, clique em New e escolha o template Baseplate, que é um chão plano e vazio. Para um teste você só precisa de uma base, mas pense desde já em duas lado a lado, porque roubar exige pelo menos dois donos.

Monte a estrutura física de cada base:

  • Pedestal: crie uma Part baixa e larga, o lugar onde a unidade fica. Renomeie para Pedestal no Explorer.
  • Unidade: crie uma Part colorida em cima do pedestal. Renomeie para Unidade. Essa é a peça que gera renda e que será roubada.
  • Botão de trava: no chão da base, crie uma Part achatada e bem visível. Renomeie para BotaoTrava.

Agora a regra de ouro do Studio: ancore tudo. Selecione cada Part e marque Anchored no painel Properties, senão sua base despenca no primeiro Play. Use Material e Color para separar as bases de longe, cada jogador precisa reconhecer qual canto é o dele.

Falta marcar quem gera renda e quanto. Selecione a Unidade, vá em Properties, role até Attributes (ou use o botão de adicionar atributo) e crie dois atributos: um número chamado Renda com valor 5, e um texto chamado Dono deixado em branco por enquanto. Atributo é um jeito de guardar informação dentro de uma Part sem precisar de objetos extras, e é a base de todo o resto.

Como fazer um jogo tipo Steal a Brainrot no Roblox: os scripts em Luau

Chegou a parte que dá vida ao jogo. São quatro scripts curtos. Todos os três primeiros vão em ServerScriptService (clique com o botão direito, Insert Object, Script), porque mexem com dinheiro e dono, e isso tem que viver no servidor.

1. O placar de dinheiro (leaderstats)

O Roblox tem um placar pronto chamado leaderstats. Se você criar uma pasta com esse nome exato dentro do jogador, tudo dentro dela aparece na tabela no canto da tela:

local Players = game:GetService("Players")

Players.PlayerAdded:Connect(function(player)
    local leaderstats = Instance.new("Folder")
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = player

    local cash = Instance.new("IntValue")
    cash.Name = "Cash"
    cash.Value = 0
    cash.Parent = leaderstats
end)

Sempre que um jogador entra (PlayerAdded), o script cria a pasta leaderstats e, dentro dela, um número inteiro chamado Cash começando em zero.

2. A renda que cada unidade gera

Este é o coração do gênero. Um laço varre todas as unidades do mundo a cada segundo e paga o dono de cada uma. Insira outro Script em ServerScriptService:

local Players = game:GetService("Players")

while true do
    task.wait(1)
    for _, unidade in workspace:GetDescendants() do
        if unidade:GetAttribute("Renda") then
            local donoNome = unidade:GetAttribute("Dono")
            local dono = donoNome and Players:FindFirstChild(donoNome)
            if dono then
                dono.leaderstats.Cash.Value += unidade:GetAttribute("Renda")
            end
        end
    end
end

Traduzindo: a cada segundo, para cada objeto que tenha o atributo Renda, o script olha quem é o Dono, procura esse jogador e soma a renda no Cash dele. Se a unidade não tem dono, ninguém recebe. Repare que a renda segue o atributo Dono, e não a posição da unidade. É isso que faz o roubo valer a pena.

Black Friday: leve 3, pague 2
Travou no código ou na arte? Na Black Friday, leve os dois.

Curso de Godot + curso de Arte 2D + um curso bônus que você só descobre lá dentro. De R$ 2.691 por R$ 997, acesso vitalício, em até 18x no cartão.

Quero os 3 cursos com Godot
Suporte no WhatsAppAcesso vitalício7 dias de garantia

3. O roubo com ProximityPrompt

Aqui está a mecânica que dá nome ao gênero. O ProximityPrompt é um recurso pronto do Roblox que mostra um "segure E" quando o jogador chega perto de um objeto. Vamos colocar um em cada unidade e, quando alguém segurar, trocar o dono. Insira outro Script em ServerScriptService:

local Players = game:GetService("Players")

local function prepararUnidade(unidade)
    local prompt = Instance.new("ProximityPrompt")
    prompt.ActionText = "Roubar"
    prompt.HoldDuration = 1
    prompt.MaxActivationDistance = 8
    prompt.Parent = unidade

    prompt.Triggered:Connect(function(jogador)
        if unidade:GetAttribute("Dono") == jogador.Name then
            return
        end
        if unidade:GetAttribute("Protegido") then
            return
        end
        unidade:SetAttribute("Dono", jogador.Name)
    end)
end

for _, unidade in workspace:GetDescendants() do
    if unidade:GetAttribute("Renda") then
        prepararUnidade(unidade)
    end
end

O HoldDuration = 1 obriga o ladrão a segurar a tecla por um segundo, o que dá chance do dono reagir. Dentro do Triggered, o script faz duas checagens antes de roubar: se quem apertou já é o dono, não faz nada, e se a unidade está Protegido, também não faz nada. Fora isso, troca o atributo Dono para o nome do ladrão, e pronto, a renda passa a cair para ele no próximo segundo.

4. O botão de trava que protege a base

Falta dar ao dono uma defesa. O BotaoTrava cobra um preço e marca todas as unidades daquele jogador como protegidas por 15 segundos. Insira um Script dentro do BotaoTrava:

local botao = script.Parent
local Players = game:GetService("Players")
local preco = 30
local ocupado = false

botao.Touched:Connect(function(parte)
    local jogador = Players:GetPlayerFromCharacter(parte.Parent)
    if not jogador or ocupado then
        return
    end
    ocupado = true
    local cash = jogador.leaderstats.Cash
    if cash.Value >= preco then
        cash.Value -= preco
        for _, unidade in workspace:GetDescendants() do
            if unidade:GetAttribute("Dono") == jogador.Name then
                unidade:SetAttribute("Protegido", true)
                task.delay(15, function()
                    unidade:SetAttribute("Protegido", false)
                end)
            end
        end
    end
    task.wait(1)
    ocupado = false
end)

Dois detalhes importantes. O GetPlayerFromCharacter descobre quem pisou no botão a partir do corpo que encostou. E a variável ocupado é um debounce: sem ela, o Touched dispararia várias vezes por segundo enquanto o pé está no botão, e cobraria o preço repetido. O debounce trava o botão por um segundo após cada toque. Guarde essa palavra, você vai usar debounce em quase todo jogo de Roblox.

Para testar o roubo sozinho, abra o menu Test, escolha dois jogadores no modo Local Server e rode. Com dois avatares em cena, você pega um, corre até a unidade do outro, segura E e vê o dinheiro mudar de lado.

Equilíbrio: por que roubar não pode ser de graça

Um jogo desse tipo quebra quando roubar é fácil demais ou impossível demais. Se não houver trava, o jogador mais rápido limpa todo mundo e ninguém mais abre o jogo. Se a trava for barata e eterna, ninguém nunca rouba e o jogo vira um simulador de esperar. O ajuste fino está em três números que você já tem no código: a renda da unidade, o preço da trava e a duração da proteção.

Comece com a trava custando poucos segundos de renda e durando pouco, e teste com amigos. A sensação que você busca é a de que vale a pena atacar, mas também vale a pena parar de atacar para blindar o que já é seu. Esse vai e volta é o que mantém a sessão viva. A mesma lógica de produção, coleta e defesa aparece de outro jeito no jogo tycoon no Roblox, que é um bom próximo passo se você curtiu a parte de gerar renda e quer um loop sem o estresse do PvP.

Publique e evolua

Teste apertando Play a cada mudança, não só no final. Os erros aparecem na janela Output (menu View), e ler essas mensagens é metade do aprendizado. Quando o loop de renda, roubo e trava estiver girando, publique em File, depois Publish to Roblox As, com nome e descrição caprichados. O jogo começa privado e você decide quando abrir ao público. Publicar é gratuito.

Daqui dá para crescer em várias direções. Mais tipos de unidade com rendas diferentes, uma vitrine para comprar unidades novas, efeitos quando o roubo acontece, um limite de pedestais por base. E se o jogo pegar, o Roblox permite vender passes e itens, com os criadores que atingem os requisitos do programa DevEx convertendo Robux em dinheiro real, caminho que a gente explica em como ganhar Robux criando jogos no Roblox. Só não inverta a ordem: primeiro faça um jogo divertido, o dinheiro é consequência.

Se depois desse projeto você quiser algo com clima mais pesado, de tensão e perseguição em vez de economia, veja como fazer um jogo de horror tipo Forsaken no Roblox, que usa os mesmos fundamentos de evento e dono, só que a serviço do medo. Agora abra o Studio e coloque a primeira unidade pingando dinheiro no seu pedestal.

Perguntas frequentes

Posso usar o nome Steal a Brainrot no meu jogo?

Não. O nome, a arte e os personagens do Steal a Brainrot são de quem criou o jogo original. O que você pode copiar livremente é a mecânica, porque regra de jogo não tem copyright. Faça o seu loop de gerar renda, roubar e defender, mas com nome, tema e visual próprios. Um jogo de roubar monstrinhos que fazem dinheiro é seguro; usar o nome e os bonecos exatos não é.

Preciso saber programar para fazer um jogo tipo Steal a Brainrot?

Precisa do básico de Luau, a linguagem do Roblox. A construção das bases é só arrastar Parts no Studio, e o código entra em quatro pontos curtos: o placar de dinheiro, a renda que cada unidade gera, o roubo com ProximityPrompt e a trava que protege sua base. Cada script tem poucas linhas e dá para entender uma por uma.

Como funciona a renda passiva desse tipo de jogo?

Cada unidade na sua base tem um valor de renda. Um laço no servidor roda a cada segundo, varre as unidades e soma a renda de cada uma no dinheiro do dono atual. Quando alguém rouba a unidade, só muda quem é o dono, e a renda passa a cair para o ladrão. É por isso que roubar vale a pena: você não leva dinheiro parado, você leva a fonte de dinheiro.