← Todos os guias
Guia 3

Crie o seu primeiro simulator

Clique em um cristal para ganhar força, venda a força por moedas e compre melhorias que deixam cada clique mais forte.

Grátis50 minutos · Iniciante · Roblox Studio
1
Passo 1 / 8

Prepare o lugar

  1. Abra o Roblox Studio, clique em New Experience e escolha o modelo Baseplate.
  2. Você vai construir três coisas no chão: um cristal para clicar, um pad para vender e um pad para comprar melhorias.
  3. Deixe uns 20 studs entre eles, para os jogadores terem que andar.

Mais detalhes

  • O modelo Baseplate está na lista de modelos da tela inicial.
  • O campo Position no Properties mostra onde a peça está. Duas peças cujos primeiros números têm 20 de diferença ficam a 20 studs uma da outra.
  • Deixe as três coisas perto da SpawnLocation, a plataforma onde os jogadores aparecem.
  • No Mac, use a tecla Cmd toda vez que este guia disser Ctrl.
Dica. Desenhe o mapa no papel primeiro. Um simulator é gostoso de jogar quando o caminho entre clicar, vender e melhorar é curto.
Este passo não funciona para mim

Confira primeiro estas três coisas

  • O nome de cada Part e de cada Script está exatamente como no guia, com as mesmas letras maiúsculas.
  • O Script está dentro do objeto certo. Olhe o rótulo que fica acima da caixa de código.
  • Abra a janela Output pelo menu Window. O texto em vermelho mostra qual script e qual linha têm o problema.

Ainda está travado? Escreva para nós →

2
Passo 2 / 8

Crie as estatísticas do jogador

  1. Passe o mouse sobre ServerScriptService, clique em + e adicione um Script. Dê o nome Stats.
  2. Apague a linha que já está lá e cole este código.
  3. Aperte Play. A lista de jogadores mostra Power 0 e Coins 0.
ServerScriptService > Stats
local Players = game:GetService("Players")

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

	for _, name in ipairs({"Power", "Coins"}) do
		local value = Instance.new("IntValue")
		value.Name = name
		value.Parent = stats
	end

	local multiplier = Instance.new("IntValue")
	multiplier.Name = "Multiplier"
	multiplier.Value = 1
	multiplier.Parent = player
end)

O que cada parte faz

  • O loop cria dois valores com um só pedaço de código: Power e Coins.
  • Multiplier é quanta força um clique dá. Ele começa em 1.
  • O Multiplier fica no jogador e não no leaderstats, por isso fica escondido da lista de jogadores.

Mais detalhes

  • Quando você clica em +, digite a palavra Script para achar rápido.
  • O script abre em uma nova aba. Clique dentro do código, aperte Ctrl+A e depois Ctrl+V para trocar tudo.
  • Mude o nome do script no Explorer com F2. O nome é só para você. Ele ajuda a achar o script depois.
  • A lista de jogadores fica no canto superior direito do jogo.
Este passo não funciona para mim

Confira primeiro estas três coisas

  • O nome de cada Part e de cada Script está exatamente como no guia, com as mesmas letras maiúsculas.
  • O Script está dentro do objeto certo. Olhe o rótulo que fica acima da caixa de código.
  • Abra a janela Output pelo menu Window. O texto em vermelho mostra qual script e qual linha têm o problema.

Ainda está travado? Escreva para nós →

3
Passo 3 / 8

Construa o cristal

  1. Adicione uma Part. Coloque Size em 6, 8, 6, ligue Anchored e dê o nome Crystal. Escolha uma cor bem forte e coloque Material em Neon.
  2. Passe o mouse sobre Crystal, clique em + e adicione um ClickDetector.
  3. Adicione um Script em Crystal e cole este código.
  4. Aperte Play e clique no cristal. O Power sobe 1 a cada clique.
Crystal > Script
local crystal = script.Parent
local clickDetector = crystal.ClickDetector

clickDetector.MouseClick:Connect(function(player)
	local power = player.leaderstats.Power
	power.Value += player.Multiplier.Value
end)

O que cada parte faz

  • Um ClickDetector faz uma Part poder ser clicada. Ele também funciona com toques no celular.
  • MouseClick diz ao script qual jogador clicou.
  • O script soma o Multiplier do jogador ao Power, então as melhorias deixam cada clique mais forte.

Mais detalhes

  • Digite o tamanho no campo Size no Properties e aperte Enter. Depois levante o cristal com a ferramenta Move até ele ficar em cima do chão.
  • Quando você clica em +, digite ClickDetector para achar. No Explorer ele precisa ficar um passo à direita, embaixo do Crystal.
  • No jogo, o ponteiro do mouse vira uma mãozinha quando está sobre o cristal.
  • Você precisa estar perto o bastante. Um ClickDetector funciona a 32 studs de distância ou menos.
Erro comum. Nada acontece ao clicar: o ClickDetector precisa estar diretamente dentro de Crystal, ao lado do script.
Este passo não funciona para mim

Confira primeiro estas três coisas

  • O nome de cada Part e de cada Script está exatamente como no guia, com as mesmas letras maiúsculas.
  • O Script está dentro do objeto certo. Olhe o rótulo que fica acima da caixa de código.
  • Abra a janela Output pelo menu Window. O texto em vermelho mostra qual script e qual linha têm o problema.

Ainda está travado? Escreva para nós →

4
Passo 4 / 8

Adicione o pad de venda

  1. Adicione uma Part no chão. Coloque Size em 8, 1, 8, ligue Anchored, deixe ela amarela e dê o nome Sell.
  2. Adicione um Script em Sell e cole este código.
  3. Aperte Play, clique no cristal algumas vezes e ande até o pad. O Power vira Coins.
Sell > Script
local Players = game:GetService("Players")
local pad = script.Parent

pad.Touched:Connect(function(hit)
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	if not player then return end

	local stats = player.leaderstats
	if stats.Power.Value > 0 then
		stats.Coins.Value += stats.Power.Value
		stats.Power.Value = 0
	end
end)

O que cada parte faz

  • GetPlayerFromCharacter descobre o jogador que pisou no pad.
  • O pad soma todo o Power do jogador a Coins e depois volta o Power para 0.

Mais detalhes

  • Uma plataforma é uma peça plana em que os jogadores andam por cima.
  • Deixe a plataforma deitada no chão. Se ela ficar alta demais, os jogadores não conseguem subir.
  • Pisar na plataforma com 0 de poder não faz nada. Isso está certo.
  • Para testar: clique no cristal 10 vezes, ande até a plataforma e a lista de jogadores mostra Power 0 e Coins 10.
Este passo não funciona para mim

Confira primeiro estas três coisas

  • O nome de cada Part e de cada Script está exatamente como no guia, com as mesmas letras maiúsculas.
  • O Script está dentro do objeto certo. Olhe o rótulo que fica acima da caixa de código.
  • Abra a janela Output pelo menu Window. O texto em vermelho mostra qual script e qual linha têm o problema.

Ainda está travado? Escreva para nós →

5
Passo 5 / 8

Adicione o pad de melhoria

  1. Adicione outra Part no chão. Coloque Size em 8, 1, 8, ligue Anchored, deixe ela azul e dê o nome Upgrade.
  2. Adicione um Script em Upgrade e cole este código.
  3. Aperte Play, ganhe 25 moedas e pise no pad. Agora cada clique dá 2 de força.
Upgrade > Script
local Players = game:GetService("Players")
local pad = script.Parent
local waiting = {}

pad.Touched:Connect(function(hit)
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	if not player or waiting[player] then return end

	local price = player.Multiplier.Value * 25
	local coins = player.leaderstats.Coins
	if coins.Value < price then return end

	waiting[player] = true
	coins.Value -= price
	player.Multiplier.Value += 1

	task.wait(1)
	waiting[player] = nil
end)

O que cada parte faz

  • O preço é o Multiplier do jogador vezes 25, então cada melhoria custa mais que a anterior.
  • A tabela waiting impede que ficar parado no pad por muito tempo compre várias melhorias de uma vez.
  • Depois da compra, o Multiplier sobe 1.

Mais detalhes

  • Ponha a plataforma a alguns passos da plataforma de venda, para os jogadores não comprarem sem querer.
  • A primeira melhoria custa 25 moedas. Depois dela, as Coins diminuem 25 e um clique dá 2 de poder.
  • Com menos moedas do que o preço, a plataforma não faz nada. Saia dela, ganhe mais e volte.
  • A pausa de 1 segundo é o motivo de ficar parado na plataforma comprar só uma melhoria de cada vez.
Este passo não funciona para mim

Confira primeiro estas três coisas

  • O nome de cada Part e de cada Script está exatamente como no guia, com as mesmas letras maiúsculas.
  • O Script está dentro do objeto certo. Olhe o rótulo que fica acima da caixa de código.
  • Abra a janela Output pelo menu Window. O texto em vermelho mostra qual script e qual linha têm o problema.

Ainda está travado? Escreva para nós →

6
Passo 6 / 8

Coloque textos nos pads

  1. Passe o mouse sobre Sell, clique em + e adicione um BillboardGui. Coloque o Size dele em {0, 200}, {0, 50} e o StudsOffset em 0, 4, 0.
  2. Adicione um TextLabel dentro do BillboardGui. Coloque o Size dele em {1, 0}, {1, 0}, ligue TextScaled e digite este texto: SELL
  3. Faça o mesmo em Upgrade com o texto: UPGRADE
  4. Faça o mesmo em Crystal com o texto: CLICK ME. Use um StudsOffset de 0, 7, 0 nele, para o texto flutuar acima do cristal.

Mais detalhes

  • Para Size e StudsOffset, clique no campo no Properties, digite os números exatamente como mostrado, com os parênteses e as vírgulas, e aperte Enter.
  • Text é uma propriedade do TextLabel. Clique no campo Text, digite a palavra e aperte Enter.
  • Um jeito mais rápido: clique no BillboardGui pronto no Explorer, aperte Ctrl+C, clique na próxima peça e aperte Ctrl+Shift+V. Depois mude só o texto.
  • Os rótulos ajudam os jogadores novos a entender o jogo sem nenhuma explicação.
Dica. Um BillboardGui sempre vira para a câmera, então os jogadores conseguem ler ele de qualquer lado.
Este passo não funciona para mim

Confira primeiro estas três coisas

  • O nome de cada Part e de cada Script está exatamente como no guia, com as mesmas letras maiúsculas.
  • O Script está dentro do objeto certo. Olhe o rótulo que fica acima da caixa de código.
  • Abra a janela Output pelo menu Window. O texto em vermelho mostra qual script e qual linha têm o problema.

Ainda está travado? Escreva para nós →

7
Passo 7 / 8

Teste o ciclo

  1. Aperte F5. Clique, venda, melhore e repita.
  2. Confira se o preço da melhoria cresce: 25 moedas, depois 50, depois 75.
  3. Aperte Shift+F5 para parar. Se algo falhar, abra a janela Output pelo menu Window e leia o texto vermelho.

Mais detalhes

  • Conte os seus cliques. Com Multiplier 1, dez cliques dão 10 de poder.
  • Depois da primeira melhoria, dez cliques dão 20 de poder, e depois da segunda, 30.
  • As mudanças que você faz enquanto o jogo roda se perdem quando você para. Aperte Shift+F5 primeiro e só depois edite.
  • Na janela Output, clique em uma linha vermelha e o Studio abre o script na linha que tem o erro.
Erro comum. O pad não compra nada: você precisa de pelo menos 25 Coins, não 25 Power. Venda primeiro.
Este passo não funciona para mim

Confira primeiro estas três coisas

  • O nome de cada Part e de cada Script está exatamente como no guia, com as mesmas letras maiúsculas.
  • O Script está dentro do objeto certo. Olhe o rótulo que fica acima da caixa de código.
  • Abra a janela Output pelo menu Window. O texto em vermelho mostra qual script e qual linha têm o problema.

Ainda está travado? Escreva para nós →

8
Passo 8 / 8

Publique

  1. Escolha File → Publish to Roblox. Dê um nome ao jogo e uma descrição curta.
  2. No site Creator Hub, abra o seu jogo e responda o questionário de Maturity.
  3. Coloque o jogo como Public e mande o link para um amigo.

Mais detalhes

  • Na primeira vez que você publica, o Studio pede um nome e uma descrição. Clique em Create.
  • O Creator Hub é o site create.roblox.com. Entre com a mesma conta e clique no seu jogo na lista.
  • O Roblox pode pedir mais coisas antes de um jogo ficar público, por exemplo uma verificação de idade na conta. A página diz o que está faltando.
  • Se você tem menos de 18 anos, faça este passo junto com um responsável.
Dica. O progresso ainda não é salvo. Quando um jogador sai, as moedas se perdem. Salvar dados é uma aula avançada.
Este passo não funciona para mim

Confira primeiro estas três coisas

  • O nome de cada Part e de cada Script está exatamente como no guia, com as mesmas letras maiúsculas.
  • O Script está dentro do objeto certo. Olhe o rótulo que fica acima da caixa de código.
  • Abra a janela Output pelo menu Window. O texto em vermelho mostra qual script e qual linha têm o problema.

Ainda está travado? Escreva para nós →

Agora mude você mesmo

  • Adicione um segundo cristal que dá 5 de força por clique, mas fica bem longe.
  • Faça o preço da melhoria dobrar a cada vez. Dica: 25 * 2 ^ (player.Multiplier.Value - 1)
  • Faça o cristal ficar um pouco maior a cada clique. Dica: mude crystal.Size