В Роблокс Студио можно создавать интерактивные объекты — например, чтобы игрок подходил к двери или NPC и открывал окно меню. Для этого используется ProximityPrompt — удобный способ вызвать действие, когда игрок находится рядом с объектом.
В этой статье разберём, как сделать, чтобы при нажатии кнопки E открывалось меню на экране.
🧱 Что понадобится
Чтобы всё заработало, нужно создать три элемента:
Объект в Workspace (например, стол или NPC).
ProximityPrompt внутри этого объекта.
Меню (ScreenGui) в StarterGui — это окно, которое будет показываться на экране.
🔹 Шаг 1. Создаём меню
В панели Explorer открой StarterGui.
Добавь новый объект ScreenGui → Frame.
Настрой Frame — это и будет твоё меню (можно добавить текст, кнопки и фон).
В свойствах Frame сними галочку с Visible, чтобы окно не было видно сразу.
💡 Подсказка: если хочешь сделать красивое меню — добавь UIStroke и UICorner, чтобы углы были скруглённые и текст выглядел аккуратно.
🔹 Шаг 2. Добавляем ProximityPrompt
В Workspace добавь Part — например, куб или цилиндр.
Внутрь Part вставь объект ProximityPrompt.
В свойствах ProximityPrompt измени:
ActionText — что делает игрок (например, “Открыть меню”);
ObjectText — описание объекта (например, “Нажми E”).
🔹 Шаг 3. Пишем скрипт
Теперь нужно, чтобы при нажатии на ProximityPrompt открывалось меню.
Поскольку меню находится в PlayerGui, используется LocalScript.
Вставь LocalScript в StarterPlayerScripts.
Вставь код:
local player = game.Players.LocalPlayer
local prompt = workspace.Part.ProximityPrompt -- замени на имя своего объекта
local menu = player:WaitForChild("PlayerGui"):WaitForChild("ScreenGui").Frame
prompt.Triggered:Connect(function()
menu.Visible = true
end)
Теперь, когда игрок подходит к объекту и нажимает клавишу действия (обычно E), меню становится видимым 🎮
🔹 Шаг 4. Добавляем кнопку "Закрыть"
Чтобы игрок мог закрыть меню, сделай кнопку в Frame и добавь в неё ещё один LocalScript:
local button = script.Parent
local frame = button.Parent
button.MouseButton1Click:Connect(function()
frame.Visible = false
end)
Теперь меню можно открыть через ProximityPrompt и закрыть кнопкой!
💡 Дополнительные возможности
Если хочешь, чтобы меню открывалось только один раз, можно отключить ProximityPrompt после использования:
prompt.Enabled = false
А если хочешь добавить проверку на сервере (например, игрок может открыть меню только после выполнения задания) — можно использовать RemoteEvent. Тогда скрипт на сервере будет решать, показывать ли меню.