Abra o Studio e escolha BASEPLATE

Foto da tela.
Projeto novo, como sempre. Role a página para baixo até Abrir um modelo e clique no Baseplate.
- Abriu o projeto antigo
- Feche a aba e volte para o Início.
- Apareceu uma janelinha de Boas-vindas por cima
- Clique em Voltar ao início, o botão da esquerda — ou no ✕ do canto. Não clique em Iniciar a introdução.
Prepare o editor (uma vez em cada computador)

Foto da tela.
Hoje você vai digitar código. O Studio vem com duas ajudas que atrapalham quem está aprendendo: ele sugere linhas inteiras e fecha parênteses e aspas sozinho. Vamos desligar as duas.
No Windows: Arquivo → Configurações do Studio. No Mac: Roblox Studio → Configurações do Studio.
1. Na busca escreva assist e desmarque Ativar assistente de código.
2. Apague a busca, escreva fechamento e desmarque Colchetes de fechamento automáticos e Aspas de fechamento automáticas.
Feche a janela. Fica guardado no computador — se você já fez isto numa aula passada neste mesmo computador, é só conferir que as caixinhas continuam vazias.
- Não acho Configurações do Studio
- No Windows é o menu Arquivo, bem no canto de cima à esquerda da janela.
- A busca não acha nada
- Escreva só assist, sem acento e sem mais nada.
- Já está tudo desmarcado
- Ótimo — este computador já foi preparado. Feche a janela e siga.
- Por que desligar?
- Ligado, o editor escreve linhas que você não pediu, e o Tab aceita a sugestão em vez de recuar. Desligado, o que está escrito na aula é exatamente o que você digita.
Vá para a aba MODELO


O clipe repete sozinho. Repare onde o cursor vai antes de clicar.
Foto da tela.
Clique em Modelo.
- Não acho
- Fica entre Script e Plugins.
Ache o ServerScriptService na lista

Foto da tela.
Na lista da direita, procure ServerScriptService. Num projeto novo ele costuma já estar à vista, algumas linhas abaixo de Workspace — se não estiver, role a lista para baixo com a rodinha do mouse.
É uma caixa onde ficam scripts que valem para o jogo inteiro — não para uma peça só. O placar é assim: é do jogo, não de um bloco.
- Não consigo rolar a lista
- Use a rodinha do mouse em cima da lista, ou escreva server na caixa Pesquisar no alto dela.
- Tem vários nomes parecidos
- Você quer o ServerScriptService, não o ServerStorage.
Coloque um Script nele


O clipe repete sozinho. Repare onde o cursor vai antes de clicar.
Foto da tela.
Clique uma vez em ServerScriptService. Aparece um + depois do nome. Clique no + e escolha Script.
- Não aparece o +
- Clique uma vez na linha primeiro.
- O Script foi para outro lugar
- Apague com Delete e refaça com o ServerScriptService selecionado.
Apague a linha pronta

Foto da tela.
Como sempre, o script nasce com print("Hello world!"). Apague a linha inteira: clique no fim dela e segure Backspace até a linha 1 ficar vazia.
- Sumiu a tela do script
- Duplo clique no Script na lista.
Escreva o placar

Foto da tela.
Este é o código que cria o placar. Nove linhas:
- game.Players.PlayerAdded:Connect(function(jogador)
- local pasta = Instance.new("Folder")
- pasta.Name = "leaderstats"
- pasta.Parent = jogador
- local moedas = Instance.new("IntValue")
- moedas.Name = "Moedas"
- moedas.Value = 0
- moedas.Parent = pasta
- end)
"I sai Ï).Cuidado com três coisas: leaderstats é tudo minúsculo e entre aspas; IntValue tem I e V maiúsculos; e o Moedas entre aspas é o nome que vai aparecer na tela.
Não digite as linhas em cinza. O editor escreve os end sozinho quando você aperta Enter. E não aperte Tab — ele já empurra as linhas para dentro.
- A aspa saiu errada (Ï, ä, ou duas aspas juntas)
- A aspa do teclado brasileiro é tecla muda. Antes de vogal ela vira trema; no fim da linha ela às vezes dobra. O conserto é sempre o mesmo: apague o que saiu errado e digite a aspa seguida da barra de espaço. Sai uma aspa limpa, sem espaço.
- Sobraram end a mais
- Você digitou os que o editor já tinha escrito. Apague os extras até o código ficar igual ao da aula.
- Risco vermelho no fim
- Falta o end) da última linha — com o parêntese.
- Escrevi Leaderstats com L maiúsculo
- Não funciona. Tem que ser leaderstats, tudo minúsculo. É a Roblox que exige esse nome exato.
- O editor completa sozinho
- Aperte Esc para dispensar a sugestão.
- Apareceu uma caixinha cinza com sugestões
- É o editor tentando adivinhar. Aperte Esc para fechá-la e continue digitando. Se você apertar Enter com ela aberta, ele escreve a sugestão no lugar do que você ia escrever.
Entenda o placar

Foto da tela.
game.Players.PlayerAdded — “quando um jogador entrar no jogo”.
Instance.new("Folder") — cria uma pasta nova, do nada. Instance.new é como o código fabrica coisas.
pasta.Name = "leaderstats" — a pasta ganha esse nome. É esse nome que a Roblox procura para desenhar o placar na tela. Qualquer outro nome e não aparece nada.
Instance.new("IntValue") — cria um número. Int é número inteiro: 0, 1, 2. Sem vírgula.
moedas.Parent = pasta — põe o número dentro da pasta. É a pasta dentro do jogador, e o número dentro da pasta.
- O que é Parent de novo?
- É “quem está segurando”. Aqui você está dizendo onde cada coisa nova vai morar.
Volte para o mundo e jogue


O clipe repete sozinho. Repare onde o cursor vai antes de clicar.
Foto da tela.
Clique na aba Place1 e depois no ▶.
Olhe o canto superior direito da tela do jogo.
- Não apareceu o placar
- Quase sempre é o nome: confira se está leaderstats, tudo minúsculo, entre aspas.
- Apareceu só o nome, sem coluna
- Faltou a parte do IntValue. Confira as quatro últimas linhas.
- O quadro some
- Clique no x dele sem querer fecha. Saia e entre no jogo de novo.
Pare o jogo

Foto da tela.
Quadrado vermelho. Agora vamos fazer a moeda.
- Continuo no jogo
- Aperte o quadrado, não o ▶.
Crie a moeda


O clipe repete sozinho. Repare onde o cursor vai antes de clicar.
Foto da tela.
Clique no desenho do botão Parte.
- Nada aconteceu
- Você clicou na palavra, não no desenho.
Leve a câmera e ancore


O clipe repete sozinho. Repare onde o cursor vai antes de clicar.
Foto da tela.
Clique em Part na lista, mouse no mundo 3D, tecla F, depois S algumas vezes.
Com a peça selecionada, clique em Âncora. Moeda que cai não serve.
- F não fez nada
- O mouse tem que estar sobre o mundo 3D.
Pinte de amarelo


O clipe repete sozinho. Repare onde o cursor vai antes de clicar.
Foto da tela.
Setinha do Cor → hexágono amarelo → clique no círculo do botão Cor.
- Não pintou
- Falta o clique no círculo do botão Cor.
Chame de MOEDA


O clipe repete sozinho. Repare onde o cursor vai antes de clicar.
Foto da tela.
Botão direito na peça, na lista → Renomear → Moeda → Enter.
- Voltou o nome antigo
- Termine com Enter.
Ponha um Script dentro da Moeda


O clipe repete sozinho. Repare onde o cursor vai antes de clicar.
Foto da tela.
Clique em Moeda na lista, clique no + e escolha Script.
Repare: este script é da peça. O outro era do jogo inteiro. São coisas diferentes.
- Ficou fora da Moeda
- Arraste-o por cima da palavra Moeda na lista.
- Abriu o script errado
- Feche as abas de script lá em cima e dê duplo clique no Script que está dentro da Moeda.
Escreva o código da moeda

Foto da tela.
Apague a linha pronta (clique no fim dela e segure Backspace) e escreva:
- local moeda = script.Parent
- moeda.Touched:Connect(function(parte)
- local jogador = game.Players:GetPlayerFromCharacter(parte.Parent)
- if jogador then
- jogador.leaderstats.Moedas.Value = jogador.leaderstats.Moedas.Value + 1
- moeda:Destroy()
- end
- end)
GetPlayerFromCharacter é uma palavra só, com quatro maiúsculas. Copie com calma.
Não digite as linhas em cinza. O editor escreve os end sozinho quando você aperta Enter. E não aperte Tab — ele já empurra as linhas para dentro.
- Sobraram end a mais
- Você digitou os que o editor já tinha escrito. Apague os extras até o código ficar igual ao da aula.
- Risco vermelho em GetPlayerFromCharacter
- Confira as maiúsculas: G, P, F, C.
- Risco no fim
- Falta um end ou o parêntese final.
- Apareceu uma caixinha cinza com sugestões
- É o editor tentando adivinhar. Aperte Esc para fechá-la e continue digitando. Se você apertar Enter com ela aberta, ele escreve a sugestão no lugar do que você ia escrever.
Entenda a moeda

Foto da tela.
GetPlayerFromCharacter(parte.Parent) — “descubra qual jogador é esse boneco”. Na aula da lava a gente só perguntava se era um boneco; agora precisamos saber de quem é, para somar no placar certo.
jogador.leaderstats.Moedas.Value + 1 — pega o número que está lá e põe um a mais. Repare no caminho: jogador → pasta → número → valor.
moeda:Destroy() — a moeda se apaga. Por isso você não pega a mesma moeda duas vezes.
- O que aconteceria sem o Destroy?
- A moeda ficaria lá e o número subiria sem parar enquanto você encostasse.
Jogue e pegue a moeda


O clipe repete sozinho. Repare onde o cursor vai antes de clicar.
Foto da tela.
Volte para Place1 e aperte o ▶.
Ande até a moeda amarela e encoste nela.
- A moeda some mas o número não muda
- O placar não existe. Volte ao passo 7 e confira o leaderstats.
- O número muda mas a moeda fica
- Faltou o moeda:Destroy().
- Não acontece nada
- Confira se o Script está dentro da Moeda, e se não sobrou risco vermelho.
Faça um monte de moedas

Foto da tela.
Com o jogo parado: botão direito na Moeda → Duplicar. Depois use a ferramenta Mover (segundo botão da faixa, o das setas) e arraste a cópia pela seta.
Faça cinco ou seis, espalhadas. Cada cópia já vem com o script dentro e vale um ponto.
- A cópia não soma
- Você duplicou antes de pôr o script. Apague e duplique a Moeda que tem o Script dentro.
- As moedas ficaram no mesmo lugar
- A cópia nasce em cima da original. Arraste-a pela seta.
Salve

Foto da tela.
Ctrl + S → Salvar em arquivo → nome moedas.
Se quiser, publique também: Arquivo → Publicar na Roblox, como você aprendeu na aula passada.
- Quero publicar mas esqueci como
- Volte na Aula 4, passo 9.