The camera moves smoothly when pressed

Как я понял этот локальный скрипт работает только в StarterCharacter StarterPlayer и StarterGui. Если я попробую кинуть его в сам парт, то ничего не будет работать. Как мне можно тогда сделать чтобы при нажатии ProximityPrompt скрипт активировался?

Вы можете использовать RemoteEvent(-ы) и один локальный скрипт, который будет считывать все эвенты с сервера для этой задачи

Вы играли в Fallaut? Вот там есть терминал, я хочу сделать что-то типо этого

Нет, я не играл в эту игру, поэтому я и не знаком с её механиками.

А разве RemoteEvent отвечают не за gui кнопки?

Они уневерсальны, их можно привязать к чему угодно. Их задача передавать сообщения между сервером и клиентом.

Хорошо. Я вроде бы разобрался. Как мне теперь сделать так чтобы камера возвращалась обратно?

local Camera = workspace.CurrentCamera
local player = game:GetService("Players").LocalPlayer
local character = player.Character
local TweenService = game:GetService('TweenService')

if not character then return end

local params = TweenInfo.new(
	6, -- time
	Enum.EasingStyle.Exponential
)
local target = {
	CFrame = Character.Head.CFrame
}
local tween = TweenService:Create(Camera,params,target)

Camera.CameraType = Enum.CameraType.Scriptable

tween:Play()
tween.Completed:Once(function()
    Camera.CameraType = Enum.CameraType.Custom
end)

Или же можно сохранять изначальный CFrame камеры потом использовать его для возвращения обратно, если же вам не обязательно плавное возвращение к изначальной позиции камеры тогда вы просто можете обойтись одной строкой кода:
Camera.CameraType = Enum.CameraType.Custom