Clonando itens e objetos
Atenção!!! Não apenas copie o código sem ler as explicações. Elas são necessárias tanto para entender o que você está fazendo como também para saber se está sendo colocado corretamente!
Todo jogos que jogamos utilizam o sistema de clones. Seja para ter várias cópias do mesmo inimigo, surgir os projéteis de uma arma, obter itens de um inimigo derrotado...enfim.
Se levarmos algo como Grow a Garden como referência, estaríamos criando clones das sementes que plantamos, e para isso precisamos que a planta original exista dentro do jogo mas fora do acesso e visão do nosso jogador. Normalmente isso é feito colocando o objeto abaixo do chão, longe o suficiente para ninguém interagir.
Para um teste inicial vamos fazer com que, ao interagir com o nosso objeto de 1 ponto, uma cópia exata seja criada. Vamos fazer isso adicionando algumas linhas ao código:
local prompt = script.Parent
local part = prompt.Parent
Essas duas variáveis que estamos criando (prompt e part) server só pra conectar meu código tanto ao ProximityPrompt que adicionamos anteriormente como também na Part que criamos (o bloco).
local copia = part:Clone()
o part:Clone() vai criar uma cópia do objeto que eu referenciei no meu código (no caso, a referência está como "part") e, se quisermos mudar alguma configuração desse clone quando ele aparecer podemos fazer isso utilizando sua variável copia.
copia.Parent = workspace
copia:PivotTo(part.CFrame - (Vector3.xAxis * 10))
Quando criamos um clone, o Roblox Studio não a coloca em nenhuma das pastas principais do projeto (Workspace, Players, ServerScriptServices, etc), então nossa parte ainda não existiria mesmo que a clonagem desse certo. Para o item conseguir existir vamos definir o parente dele como workspace, do jeito que fiz na primeira linha.
A segunda linha vai mover o clone para longe do objeto original, assim evitando que um fique exatamente em cima do outro.
No fim, seu código deve ficar algo assim:
local players = game:GetService("Players")
local prompt = script.Parent
local part = prompt.Parent
script.Parent.Triggered:Connect(function(jogador)
local playerGui = jogador.PlayerGui
local screenGui = playerGui:WaitForChild("ScreenGui")
local textLabel = screenGui:WaitForChild("TextLabel")
local pontos = textLabel:FindFirstChild("Pontos")
pontos.Value = pontos.Value + 1
local copia = part:Clone()
copia.Parent = workspace
copia:PivotTo(part.CFrame - (Vector3.xAxis * 10))
end)