🛒 Tutorial Roblox Studio

Como Criar uma Loja no Roblox Studio (SHOP)

Aprenda como criar uma loja dentro do Roblox Studio para vender itens, skins, armas, poderes ou personalizações. Neste tutorial, você vai entender como funciona uma SHOP com moeda do jogo, RemoteEvent, interface e compra por Robux quando o jogador não tem moedas suficientes.

🎮 Roblox Studio 💰 Moedas no jogo ⚡ RemoteEvent 🧩 Interface SHOP
SHOP Escolha um item para comprar
💰 100 coins
⚔️
Espada Preço: 50 coins
Comprar
🚀
Boost Preço: 100 coins
Comprar
👕
Skin Preço: 200 coins
Comprar
Neste tutorial, a loja usa moedas do jogo e também pode abrir a compra por Robux quando o jogador não tiver saldo suficiente.
🎬 Aula em vídeo

Veja o passo a passo de como criar uma loja no Roblox Studio

No vídeo, você acompanha a criação da loja dentro do Roblox Studio, desde a interface visual até a programação dos botões, moedas, itens e compra por Robux quando o jogador não tem saldo suficiente.

🧩 Interface da SHOP Você vai ver como organizar a tela da loja, os botões de compra, o painel de moedas e a abertura da interface.
💰 Sistema de moedas O tutorial usa uma tabela de dados do jogador para guardar os coins e atualizar o valor na tela com RemoteEvent.
🛒 Compra de itens O jogador compra itens com moedas do jogo. Se não tiver saldo suficiente, o sistema pode abrir compra por Robux.
💡
Importante antes de copiar os scripts

Assista ao vídeo junto com os scripts abaixo. Assim fica mais fácil entender onde colocar cada código, como nomear os botões e como configurar o preço dos produtos usando atributos.

🧠 Entenda antes de programar

Como criar uma loja no Roblox Studio: o que esse sistema faz?

Antes de copiar os scripts, vale entender a lógica da loja. Neste tutorial, a SHOP permite que o jogador abra uma interface, veja seus coins, compre itens com moeda do jogo e, se não tiver saldo suficiente, receba a opção de comprar mais moedas com Robux.

🛒

Abre e fecha a loja

A interface da SHOP fica escondida no início. Quando o jogador clica no botão da loja, o FrameProducts aparece na tela.

💰

Mostra os coins do jogador

O servidor cria os dados do jogador em uma tabela chamada playerdata, começando com coins = 100.

🎁

Entrega o item comprado

Se o jogador tiver coins suficientes, o script desconta o valor e clona o item do ServerStorage para a Backpack.

💎

Abre compra por Robux

Se o jogador não tiver dinheiro no jogo, o script chama o PromptProductPurchase para oferecer a compra de mais coins.

A lógica da loja funciona como uma conversa entre a tela e o servidor

O botão da interface não entrega o item sozinho. Ele envia um pedido para o servidor usando RemoteEvent. O servidor verifica os dados, desconta coins e só então libera o item para o jogador.

1
Jogador clica O aluno clica no botão do item dentro da interface da loja.
2
LocalScript envia O botão envia nome do item e preço pelo RemoteEvent.
3
Servidor verifica O Server Script confere se o jogador tem coins suficientes.
4
Item é entregue Se tiver saldo, o item é clonado do ServerStorage para a Backpack.
5
Sem coins? O Roblox pode abrir a compra por Robux para adicionar mais moedas.
🧩 Organização do projeto

Estrutura necessária para criar a loja no Roblox Studio

Para os scripts funcionarem corretamente, os objetos precisam estar nos lugares certos e com os nomes certos. Neste tutorial, vamos seguir a mesma estrutura usada no vídeo, com RemoteEvent, ServerStorage, ScreenGui, botões, frames e atributos de preço.

Mapa dos objetos no Explorer

Use essa estrutura como referência para montar a loja. Os nomes precisam bater com os nomes usados nos scripts.

ReplicatedStorage ├── RemoteEvent   ServerStorage ├── Item1 ou nome do produto ├── Item2 ou nome do produto   ServerScriptService ├── Script Server   StarterGui └── ScreenGui     ├── FrameProducts     │   ├── Frame do Produto     │   │   ├── ImageButton com atributo price     │   │   └── TextLabel do preço     ├── FrameMoedas     │   └── TextLabel     ├── CloseBtn     ├── FrameBtn     │   └── TextButton     └── LocalScript

O que cada parte faz na loja

Cada objeto tem uma função específica. Se algum nome estiver diferente, o script pode não encontrar o item certo.

RemoteEvent Faz a comunicação entre a interface do jogador e o servidor. O LocalScript envia o pedido de compra por ele.
🎒
ServerStorage Guarda os itens que serão vendidos. O nome do item precisa ser igual ao nome enviado pelo botão.
🛒
FrameProducts É o painel da loja. Dentro dele ficam os frames dos produtos, os botões de compra e os preços.
💰
FrameMoedas Mostra na tela quantos coins o jogador tem. O valor é atualizado quando o servidor envia os dados.
🏷️
Atributo price Cada ImageButton precisa ter um atributo chamado price com o valor do produto em coins.
⚠️
Atenção aos nomes usados no script

O script procura exatamente por RemoteEvent, FrameProducts, FrameMoedas, CloseBtn e FrameBtn. Se você trocar algum nome no Roblox Studio, precisa trocar também no código.

🖥️ Montando a interface

Como organizar a interface da loja no Roblox Studio

A interface é a parte que o jogador enxerga: o botão para abrir a loja, o painel dos produtos, o botão de fechar, o texto das moedas e os botões de compra. Para o script funcionar, essa organização precisa seguir os nomes usados na aula.

SHOP FrameProducts
X
FrameMoedas → TextLabel: 100 coins
⚔️
ImageButton: Espada Atributo price: 50
Comprar
🚀
ImageButton: Boost Atributo price: 100
Comprar
🎩
ImageButton: Skin Atributo price: 200
Comprar

O que você precisa configurar na GUI

No tutorial, o LocalScript procura partes específicas dentro do ScreenGui. Então, antes de colar o código, organize a interface com atenção.

1
Crie o ScreenGui Dentro de StarterGui, crie um ScreenGui. O LocalScript ficará dentro dele.
2
Crie o FrameProducts Esse é o painel onde ficam os produtos da loja. Ele será aberto e fechado pelo script.
3
Configure cada produto Dentro de cada frame de produto, coloque um ImageButton e um TextLabel. O TextLabel vai mostrar o preço.
4
Adicione o atributo price Em cada ImageButton, crie um atributo chamado price. Esse valor será enviado para o servidor na hora da compra.
🏷️
O nome do botão precisa bater com o nome do item

No script real da aula, o botão envia button.Name para o servidor. Então, se o botão se chama Espada, precisa existir um item chamado Espada dentro do ServerStorage. Se os nomes forem diferentes, o item não será encontrado.

⚙️ Script do servidor

Script Server da loja no Roblox Studio

Este é o script principal da loja. Ele cria os dados do jogador, controla os coins, verifica se o jogador tem dinheiro suficiente, entrega o item comprado e abre a compra por Robux quando faltar saldo.

Onde colocar este script?

Crie um Script dentro do ServerScriptService. Esse código precisa ficar no servidor, porque é ele que valida a compra e entrega o item para o jogador.

1
Crie o RemoteEvent No ReplicatedStorage, crie um objeto chamado exatamente RemoteEvent.
2
Coloque os itens no ServerStorage Os itens vendidos precisam estar dentro do ServerStorage com o mesmo nome dos botões.
3
Configure o productId Troque o valor de productId pelo ID do seu Developer Product, caso use compra por Robux.
4
Teste no Play Ao entrar no jogo, o jogador começa com coins = 100 e a GUI recebe esse valor.
Script Server Coloque em ServerScriptService
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RemoteEvent = ReplicatedStorage.RemoteEvent
local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local MarketPlaceService = game:GetService("MarketplaceService")

local productId = 2676251236

local playerdata = {

}

local function createPlayerData(player)
    local data = {
        playerName = player.Name,
        coins = 100,
        itens = {}
    }

    return data
end

Players.PlayerAdded:Connect(function(player)
    playerdata[player.UserId] = createPlayerData(player)
    print(playerdata)

    RemoteEvent:FireClient(player, playerdata[player.UserId]["coins"])
end)

local function buyItem(player, data)
    print(playerdata[player.UserId])
    print(data)

    local dataPlayer = playerdata[player.UserId]

    if data[2] <= dataPlayer["coins"] then
        print("tem dinheiro")

        dataPlayer["coins"] = dataPlayer["coins"] - data[2]
        RemoteEvent:FireClient(player, playerdata[player.UserId]["coins"])

        local produtoComprado = ServerStorage:FindFirstChild(data[1]):Clone()
        print(produtoComprado)

        produtoComprado.Parent = player:FindFirstChild("Backpack")
    else
        print("não tem dinheiro")
        MarketPlaceService:PromptProductPurchase(player, productId)
    end
end

RemoteEvent.OnServerEvent:Connect(function(player, data)
    buyItem(player, data)
end)

MarketPlaceService.ProcessReceipt = function(receiptInfo)
    print("Comprou")
    print(receiptInfo)

    local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)

    if player then
        playerdata[player.UserId]["coins"] = playerdata[player.UserId]["coins"] + 200
        RemoteEvent:FireClient(player, playerdata[player.UserId]["coins"])

        return Enum.ProductPurchaseDecision.PurchaseGranted
    end

    return Enum.ProductPurchaseDecision.NotProcessedYet
end
🔐
Por que esse script fica no servidor?

Porque a compra precisa ser validada com segurança. O jogador clica na interface, mas quem decide se ele tem coins suficientes é o Script Server. Assim, a loja fica mais organizada e evita que o item seja entregue sem passar pela verificação.

🖱️ Script da interface

LocalScript da loja no Roblox Studio

Este script fica dentro do ScreenGui e controla a parte visual da loja: mostra o preço dos produtos, envia o pedido de compra para o servidor, atualiza as moedas na tela e abre ou fecha a interface SHOP.

Onde colocar este LocalScript?

Crie um LocalScript dentro do ScreenGui da loja. Ele precisa ficar na interface, porque vai ler botões, textos, frames e cliques do jogador.

1
Pega os produtos da loja O script usa ScreenGui.FrameProducts:GetChildren() para encontrar os frames dos produtos.
2
Lê o preço do botão Cada botão precisa ter um atributo chamado price. Esse valor aparece no TextLabel do produto.
3
Envia a compra para o servidor Quando o jogador clica no botão, o LocalScript envia button.Name e price pelo RemoteEvent.
4
Abre e fecha a loja O botão CloseBtn fecha o painel. O botão dentro de FrameBtn abre a loja novamente.
Script LocalScript Coloque dentro do ScreenGui
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RemoteEvent = ReplicatedStorage.RemoteEvent
local ScreenGui = script.Parent
local FrameProducts = ScreenGui.FrameProducts:GetChildren()
local FrameMoedas = ScreenGui.FrameMoedas
local MoedasTxt = FrameMoedas.TextLabel
local CloseBtn = ScreenGui.CloseBtn
local BtnShop = ScreenGui.FrameBtn.TextButton
local FrameProductsGui = ScreenGui.FrameProducts

for i, frame in pairs(FrameProducts) do
    if frame:IsA("Frame") then
        local FrameButton = frame:GetChildren()

        local button: ImageButton = FrameButton[1]
        local text: TextLabel = FrameButton[2]

        text.Text = button:GetAttribute("price")

        button.MouseButton1Click:Connect(function()
            print(button.Name, button:GetAttribute("price"))
            RemoteEvent:FireServer({button.Name, button:GetAttribute("price")})
        end)
    end
end

RemoteEvent.OnClientEvent:Connect(function(data)
    print("recebi as moedas")
    print(data)

    MoedasTxt.Text = data
end)

CloseBtn.MouseButton1Click:Connect(function()
    FrameProductsGui.Visible = false
    CloseBtn.Visible = false
end)

BtnShop.MouseButton1Click:Connect(function()
    FrameProductsGui.Visible = true
    CloseBtn.Visible = true
end)
⚠️
Cuidado com a ordem dos objetos dentro do frame

Nesse código, o botão é lido como FrameButton[1] e o texto como FrameButton[2]. Então, se algo não funcionar, confira se dentro de cada frame de produto existe um ImageButton e um TextLabel.

🏷️ Configuração dos produtos

Como configurar botões, preços e itens da loja no Roblox Studio

Depois de criar a interface e colar os scripts, você precisa configurar os produtos da loja. Essa etapa é muito importante, porque o LocalScript envia o nome do botão e o preço para o servidor. O servidor usa essas informações para descontar coins e entregar o item certo.

Configurando os botões da interface

Cada produto da loja precisa ter um ImageButton. Esse botão representa o item que o jogador vai comprar.

1
Nomeie o ImageButton O nome do botão deve ser igual ao nome do item. Exemplo: botão chamado Espada.
2
Crie o atributo price No botão, adicione um atributo chamado price com o valor do produto em coins.
3
Adicione um TextLabel O TextLabel dentro do frame do produto vai mostrar o preço que vem do atributo price.
4
Teste o clique Ao clicar, o console deve mostrar o nome do botão e o preço enviado para o servidor.

Configurando os itens no ServerStorage

O servidor procura o item usando ServerStorage:FindFirstChild(data[1]). Isso significa que o nome enviado pelo botão precisa encontrar um item com o mesmo nome no ServerStorage.

1
Abra o ServerStorage No Explorer, encontre ou crie a pasta ServerStorage.
2
Coloque o item dentro dele Arraste a Tool, arma, skin ou objeto que será vendido para dentro do ServerStorage.
3
Use o mesmo nome do botão Se o botão chama Espada, o item no ServerStorage também precisa chamar Espada.
4
Confira se o item pode ir para Backpack Se for uma ferramenta, use uma Tool. Assim ela poderá ser entregue na Backpack do jogador.

Exemplo prático de configuração dos produtos

Produto na loja Nome do ImageButton Atributo price Nome no ServerStorage
Espada Espada 50 Espada
Boost Boost 100 Boost
Skin Skin 200 Skin
⚠️
O erro mais comum é o nome diferente

Se o botão se chama Espada, mas o item no ServerStorage se chama Sword, o script não vai encontrar o produto. Para esse tutorial funcionar, o nome do botão e o nome do item precisam ser iguais.

🛠️ Correção de erros

Erros comuns ao criar uma loja no Roblox Studio

Se a loja não abrir, se o item não aparecer ou se as moedas não atualizarem, não se desespere. Na maioria das vezes, o problema está em nomes diferentes no Explorer, objetos no lugar errado ou atributos de preço configurados de forma incorreta.

RemoteEvent não encontrado

O script usa ReplicatedStorage.RemoteEvent. Se o RemoteEvent não existir ou tiver outro nome, o código vai parar logo no começo.

Como corrigir: crie um RemoteEvent dentro do ReplicatedStorage com o nome exato RemoteEvent.
🎒
Item não aparece na mochila

O servidor procura o produto no ServerStorage usando o nome enviado pelo botão. Se o nome estiver diferente, o item não será clonado.

Como corrigir: deixe o nome do ImageButton igual ao nome do item no ServerStorage.
🏷️
Preço não aparece no TextLabel

O LocalScript usa button:GetAttribute("price"). Se o atributo não existir, o preço pode aparecer vazio ou incorreto.

Como corrigir: adicione o atributo price no ImageButton de cada produto.
💰
Moedas não atualizam na tela

O valor das moedas aparece em FrameMoedas.TextLabel. Se esse caminho estiver diferente, o texto não será atualizado.

Como corrigir: confira se existe FrameMoedas com um TextLabel dentro.
🛒
A loja não abre ou não fecha

O script usa CloseBtn para fechar e FrameBtn.TextButton para abrir a interface.

Como corrigir: confira se esses objetos existem com exatamente esses nomes dentro do ScreenGui.
💎
Compra por Robux não aparece

Quando faltam coins, o script chama PromptProductPurchase usando o valor de productId.

Como corrigir: troque o productId pelo ID real do seu Developer Product.

Checklist rápido antes de testar a loja

1. Conferir nomes Veja se RemoteEvent, FrameProducts, FrameMoedas, CloseBtn e FrameBtn estão escritos corretamente.
2. Conferir itens Os produtos vendidos precisam estar dentro do ServerStorage e com o mesmo nome dos botões.
3. Conferir preços Cada ImageButton precisa ter um atributo chamado price, com valor numérico.
💡
Dica para encontrar o erro mais rápido

Abra a janela Output do Roblox Studio enquanto testa o jogo. As mensagens com print, warn e erros ajudam a descobrir se o problema está no botão, no RemoteEvent, no ServerStorage ou no productId.

🚀 Próximo passo

Gostou de criar uma loja? Agora imagine criar seu próprio jogo completo

Nos cursos da Programação For Kids, crianças e adolescentes aprendem Roblox Studio de forma prática, criando jogos, sistemas, desafios, scripts e projetos passo a passo, mesmo começando do zero.

🎮 Roblox Studio 🧠 Lógica de programação 📚 Apostilas e atividades 🏆 Certificado
👩‍💻
Aulas passo a passo O aluno aprende acompanhando projetos práticos, com explicações simples e linguagem adequada para crianças e adolescentes.
🎮
Aprendizado criando jogos Em vez de apenas jogar, a criança começa a entender como os jogos funcionam por trás da tela.
💡
Do interesse ao conhecimento Roblox vira uma porta de entrada para raciocínio lógico, criatividade, resolução de problemas e programação.

Este tutorial é só uma amostra do que o aluno pode aprender quando transforma a curiosidade por jogos em habilidade real de criação e programação.

🎥 Mais aulas gratuitas

Conheça o canal da Programação For Kids no YouTube

Se você gostou deste tutorial de loja no Roblox Studio, acompanhe também nosso canal no YouTube. Lá publicamos aulas práticas de Roblox, scripts, jogos, interfaces e programação para crianças e adolescentes.

🎮 Roblox Studio 🧩 Scripts passo a passo 🛒 Sistemas para jogos 🚀 Novas aulas
Programação For Kids - PROGRAMAÇÃO | ROBLOX

Tutoriais para crianças, adolescentes e iniciantes aprenderem programação criando jogos no Roblox Studio.

Roblox Aulas práticas
Scripts Passo a passo
Jogos Projetos criativos
🧠 Continue aprendendo

Aprenda mais com outras aulas de Roblox Studio

Se você curtiu essa aula de como criar uma loja no Roblox Studio, com certeza vai gostar desses outros tutoriais para deixar seus jogos mais completos, criativos e divertidos.

❓ Perguntas frequentes

FAQ sobre como criar uma loja no Roblox Studio

Reunimos as principais dúvidas sobre a criação de uma SHOP no Roblox Studio, incluindo moedas, RemoteEvent, itens, preços, Robux e erros comuns durante o teste.

Para criar uma loja no Roblox Studio, você precisa montar uma interface no StarterGui, criar um RemoteEvent no ReplicatedStorage, guardar os itens no ServerStorage e usar scripts para controlar a compra, descontar moedas e entregar o item ao jogador.

Não. Você pode criar uma loja usando apenas uma moeda do próprio jogo, como coins. Neste tutorial, o Robux aparece como uma opção extra quando o jogador não tem moedas suficientes e o sistema chama a compra de um Developer Product.

Para colocar preço nos itens da loja, adicione um atributo chamado price no ImageButton de cada produto. O LocalScript lê esse atributo com GetAttribute("price") e envia o valor para o servidor na hora da compra.

O item pode não aparecer na mochila se ele não estiver no ServerStorage, se o nome do item for diferente do nome do botão ou se o objeto não puder ser entregue para a Backpack. Confira se o item vendido tem exatamente o mesmo nome enviado pelo ImageButton.

O RemoteEvent da loja deve ficar dentro do ReplicatedStorage. Neste tutorial, ele precisa se chamar exatamente RemoteEvent, porque tanto o Script Server quanto o LocalScript procuram esse objeto pelo mesmo nome.

Sim. Você pode vender skins, armas, poderes, ferramentas, boosts ou outros itens do seu jogo. Para isso, cada produto precisa ter um botão na interface, um preço configurado e um item correspondente no ServerStorage para ser entregue ao jogador.

Para fazer a loja abrir e fechar, use um LocalScript para alterar a propriedade Visible do painel da loja. Neste tutorial, o botão dentro de FrameBtn abre o FrameProducts, e o CloseBtn fecha a loja.

💡
Antes de testar, revise os nomes no Explorer

A maioria dos erros nesse tipo de loja acontece porque um objeto foi escrito com nome diferente. Confira RemoteEvent, FrameProducts, FrameMoedas, CloseBtn, FrameBtn, price e os itens dentro do ServerStorage.

🚀 Programação para crianças e adolescentes

Seu filho pode ir além de jogar: ele pode criar jogos no Roblox

Criar uma loja no Roblox Studio é só um exemplo do que acontece quando a criança começa a entender a lógica por trás dos jogos. Na Programação For Kids, o aprendizado acontece com projetos práticos, desafios criativos e aulas pensadas para quem está começando.

🎮
Projetos com Roblox Aulas práticas para aprender criando jogos.
🧠
Lógica de programação Desenvolvimento de raciocínio e resolução de problemas.
📚
Apostilas e atividades Conteúdo organizado para acompanhar o aprendizado.
🏆
Certificado Reconhecimento ao concluir as etapas do curso.

Transforme o interesse por Roblox em uma experiência de aprendizado real: criatividade, tecnologia, lógica e programação desde cedo.

BLOG PROGRAMAÇÃO FOR KIDS

Programação para Crianças: Como Aprender Criando Jogos de Forma Divertida

Descubra como a programação para crianças pode desenvolver raciocínio lógico, criatividade e autonomia através de jogos, desafios e projetos práticos no Roblox e em outras plataformas.

Para pais, crianças e adolescentes Aprendizado criativo Roblox • Lógica • Tecnologia
Programação para crianças aprendendo com jogos
0
    0
    Seu Carrinho
    Seu Carrinho está VazioVoltar Para a Loja