Porta com senha
Passo 1
Vá na pasta StarterGui e adicione um objeto chamado SurfaceGui. Após isso eu renomeei o meu para Porta com senha, mas essa parte é opcional.

Passo 2
Adicione uma TextBox ao SurfaceGui.

Passo 3
Nas propriedades do SurfaceGui, procure a opção Adornee, clique nela e logo depois clique na parte que vai ser sua porta (caso o texto apareça no lado da parte que você não deseja, clique na opção Face em propriedades e escolha o lado que ela aparece).


Mais abaixo em propriedades você pode mudar a posição e o tamanho da caixa de texto. Para fazer isso mude os valores que estão dentro dos colchetes.

Passo 4
Vá em ReplicatedStorage e adicione um objeto de RemoteEvent. Após isso, o renomeie para AbrirPorta

Passo 5
Adicione um LocalScript na nossa TextBox. O código que iremos colocar está logo abaixo.

-- CODIGO DA SENHA: COLOCAR NA TextBox
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local remoteEvent = ReplicatedStorage:FindFirstChild("AbrirPorta")
script.Parent.FocusLost:Connect(function(enter)
if enter then
if script.Parent.Text == "SenhaUm" then
remoteEvent:FireServer("porta1")
else
remoteEvent:FireServer("incorreto1")
end
end
end)
Passo 6
Adicione um Script na nossa parte. O código que iremos colocar está logo abaixo.

-- CODIGO PARA SER COLOCADO NA PARTE QUE SERÁ A PORTA
local porta = script.Parent
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local remoteEvent = ReplicatedStorage:FindFirstChild("AbrirPorta")
remoteEvent.OnServerEvent:Connect(function(player, codigoDaPorta)
print(codigoDaPorta)
if codigoDaPorta == "porta1" then
porta.BrickColor = BrickColor.new("Lime green")
for i = 0 , 10, 1 do
porta.Transparency = i/10
wait(0.05)
if porta.Transparency == 1 then
porta.CanCollide = false
end
end
elseif codigoDaPorta == "incorreto1" then
porta.BrickColor = BrickColor.new ("Really red")
end
end)