Окно настроек — важная часть любой игры в Roblox Studio. Оно делает игру удобнее: игрок может управлять звуком, графикой, интерфейсом и другими параметрами. В этой статье разберём полный процесс создания окна настроек — от дизайна до сохранения данных.
🧩 1. Создание базового интерфейса (GUI)
Шаги:
- Открой Roblox Studio
- Найди вкладку Explorer
- Перейди в StarterGui
- Создай:
- ScreenGui
- внутри него Frame (это окно настроек)
Настройки Frame:
Size = {0.3, 0}, {0.4, 0}
Position = {0.35, 0}, {0.3, 0}
BackgroundColor3 = Color3.fromRGB(40, 40, 40)
BackgroundTransparency = 0.1💡 Совет: сразу поставь Visible = false, чтобы окно было скрыто при запуске.
🎨 2. Структура окна настроек
Внутри Frame добавь:
📌 Основные элементы:
- TextLabel → заголовок ("Настройки")
- TextButton → кнопки:
- Звук
- Музыка
- Графика
- UIListLayout → автоматическое выравнивание
Пример структуры:
ScreenGui
├── Frame (SettingsWindow)
├── Title (TextLabel)
├── SoundButton
├── MusicButton
├── GraphicsButton
├── UIListLayout🧠 3. Скрипт: включение/выключение звука
Добавь LocalScript в кнопку:
local button = script.Parent
local soundEnabled = true
button.Text = "Звук: ВКЛ"
button.MouseButton1Click:Connect(function()
soundEnabled = not soundEnabled
if soundEnabled then
button.Text = "Звук: ВКЛ"
game.SoundService.Volume = 1
else
button.Text = "Звук: ВЫКЛ"
game.SoundService.Volume = 0
end
end)🎵 4. Отдельное управление музыкой
Если у тебя есть Sound в игре:
local button = script.Parent
local music = workspace:WaitForChild("Music")
local enabled = true
button.MouseButton1Click:Connect(function()
enabled = not enabled
if enabled then
music.Volume = 1
button.Text = "Музыка: ВКЛ"
else
music.Volume = 0
button.Text = "Музыка: ВЫКЛ"
end
end)🔘 5. Кнопка открытия/закрытия меню
Создай кнопку ⚙️ вне Frame:
local button = script.Parent
local frame = script.Parent.Parent.SettingsWindow
button.MouseButton1Click:Connect(function()
frame.Visible = not frame.Visible
end)💾 6. Сохранение настроек (DataStore)
Чтобы настройки не сбрасывались, используем DataStore.
⚠️ Работает только в опубликованной игре.
ServerScript:
local DataStoreService = game:GetService("DataStoreService")
local settingsStore = DataStoreService:GetDataStore("PlayerSettings")
game.Players.PlayerAdded:Connect(function(player)
local data = settingsStore:GetAsync(player.UserId)
if data then
player:SetAttribute("SoundEnabled", data.Sound)
else
player:SetAttribute("SoundEnabled", true)
end
end)
game.Players.PlayerRemoving:Connect(function(player)
settingsStore:SetAsync(player.UserId, {
Sound = player:GetAttribute("SoundEnabled")
})
end)✨ 7. Улучшение дизайна
Добавь:
- UICorner → скругление
- UIStroke → обводка
- UIPadding → отступы
- Анимацию появления:
frame:TweenPosition(UDim2.new(0.35,0,0.3,0), "Out", "Quad", 0.3)🚀 8. Дополнительные функции
Можно добавить:
🎚 Ползунок громкости
- через Slider (или сделать вручную)
🎮 Настройки графики
game:GetService("Lighting").Brightness = 2🌐 Переключение языка
- хранить язык в Attributes
✅ Итог
Теперь у тебя есть полноценное окно настроек:
- ✔ Интерфейс (GUI)
- ✔ Кнопки управления
- ✔ Скрипты логики
- ✔ Сохранение данных
- ✔ Красивый дизайн
🔗 Полезные ссылки:
🚀 Хочешь научиться делать свои игры?
Переходи на roblo.ru и запишись на обучение Роблокс Студио!
И не забудь заглянуть в наш Telegram 👉 t.me/robloppo
