Settings Menu - Modal + DataStore Saves v1.1.1

Drop-in settings menu. Center modal, 4 widgets, DataStore saves, sound FX, all platforms.
  • cover.png
  • carousel1.png
  • carousel2.png
  • carousel3.png
  • carousel4.png
  • carousel5.png
  • cover.png
  • carousel1.png
  • carousel2.png
  • carousel3.png
  • carousel4.png
  • carousel5.png

Settings Menu



Overview

A premium drop-in settings menu for any Roblox game. Center modal panel with sidebar tabs, four widget types (Toggle / Slider / Dropdown / Button), per-player DataStore-backed saves, configurable sound FX on every interaction, and pure scale-based UI that works on phones, tablets, desktops, and consoles.

Ships with 17 thoughtfully chosen starter settings across Audio / Graphics / Gameplay / Accessibility — and 10 of them auto-wire to Roblox systems out of the box (master volume, graphics quality, FPS counter, UI scale, shadows, particles, mute-when-unfocused, reduce-motion, high-contrast, reset-all). The other 7 are intentionally data-only because they're game-specific (music/sfx volume, tutorial flow, camera sensitivity, etc.) — wire them to your game in 3 lines via the OnChange hook.

Every UI element is enable/disable-able via config flags. Every text string and glyph is configurable. Every color is themeable through a single AccentColor.

Open source. Plain Luau. No obfuscation. Edit any file freely.

Features


Premium Modal UI
  • Center modal with dimmed backdrop, smooth open/close tweens, click-outside to close
  • Sidebar + content layout with category tabs and active state highlighting
  • Floating cog button always reachable; auto-relocates on mobile to avoid Roblox's jump button
  • Configurable hotkey + gamepad shortcut (defaults to nil — pick your own)
  • Pure scale-based UI — zero hard offsets in layout, works on every aspect ratio
  • Mobile breakpoint auto-grows the panel to fill small screens
  • Single AccentColor drives the entire UI (slider fill, toggle ON, active tab, button highlights)
  • Single text-only navigation by default — clean and crisp; add icons if you want

Four Widget Types
  • Toggle — animated boolean on/off with smooth knob slide
  • Slider — Min/Max/Step with optional suffix (%, x, etc.) and live value label
  • Dropdown — string choice from a fixed options list with hover highlights
  • Button — built-in "ResetAll" action, or wire your own via _G.CoreShunSettings_OnAction

17 Starter Settings — 10 auto-wired
Auto-wired (work out of the box):
  • master_volume — scales every Sound in workspace by 0..100, catches new sounds at runtime
  • mute_when_unfocused — silences audio when the game window loses focus
  • graphics_quality — sets Roblox QualityLevel (Auto / Low / Med / High / Ultra)
  • particles_enabled — toggles all ParticleEmitter / Trail / Beam in workspace
  • shadows_enabled — Lighting.GlobalShadows
  • fps_counter — on-screen FPS display
  • ui_scale — applies a UIScale to PlayerGui
  • reduce_motion — disables menu's own animations
  • high_contrast — boosts every UIStroke in the menu
  • reset_all — restores all settings to defaults

Data-only (read via OnChange — game-specific):
  • music_volume — apply to your music SoundGroup
  • sfx_volume — apply to your SFX SoundGroup
  • show_tutorial / show_tips — gate your tutorial / tips flow
  • camera_sensitivity — multiply your camera input
  • screen_shake — gate your shake calls
  • colorblind_mode — swap your UI palette

DataStore Persistence
  • Per-player saves — each player's settings persist across servers and sessions
  • Server-side sanitization — bad values are clamped, snapped, or rejected
  • Race-safe — pcall-wrapped DataStore calls, BindToClose flush on shutdown
  • Rate-limited writes (configurable cap) — sliders stay smooth without spamming the store
  • Graceful fallback — if API access is off, falls back to in-memory mode (settings still work, just don't persist)
  • Configurable DataStore name — change in Config.General.DataStoreName

Configurable Sound FX
Every interaction can play a sound — each fully configurable:
  • Click — any button press
  • Hover — cursor enters a button (set Volume = 0 to mute)
  • Open / Close — menu panel transitions
  • ToggleOn / ToggleOff — flip animations
  • Slider — slider release
  • Dropdown — selection change
Each sound has its own Id, Volume, and Pitch. Replace with your own asset IDs or set SFX.Enabled = false to mute everything.

Every UI Element is Toggleable
Hide what you don't need. Disable any flag in Config.UI and the rest adapts:
  • ShowBackdrop — dim layer behind the panel
  • ShowTitleBar — title row at the top
  • ShowTitleDivider — line under the title
  • ShowCloseButton — × button
  • ShowSidebar — category tabs (false = single combined page)
  • ShowDescriptions — subtext under each setting
  • ShowPanelGradient / ShowPanelStroke — visual flourishes
  • HoverEffects — disable for max performance
  • OpenCloseAnimation — disable for instant open/close
  • Per-setting Hidden flag — hide individual settings without deleting them

Buyer Integration (_G Hooks)
Read settings from anywhere:
  • _G.CoreShunSettings_Get(id) — returns the live value
  • _G.CoreShunSettings_GetAll() — table of every setting
  • _G.CoreShunSettings_Set(id, value) — programmatic write (saves to DataStore)
  • _G.CoreShunSettings_ResetAll() — restore all defaults
  • _G.CoreShunSettings_Open() / Close() / Toggle() — menu control

Define your own functions to receive events:
  • _G.CoreShunSettings_OnChange(id, value) — fires on every value change
  • _G.CoreShunSettings_OnOpen() — menu opened
  • _G.CoreShunSettings_OnClose() — menu closed
  • _G.CoreShunSettings_OnReset() — Reset All pressed
  • _G.CoreShunSettings_OnAction(id, action) — custom button pressed

Cross-Platform


  • Desktop — mouse hover, click drag for sliders, optional keyboard hotkey
  • Mobile — touch-friendly buttons, panel auto-grows below 800px wide, cog button auto-relocates to right-edge middle to avoid Roblox's jump button
  • Console — D-pad navigable via Roblox's built-in GuiService, optional gamepad hotkey

What's Included

  • SettingsConfig.lua — single config ModuleScript (the only file you edit)
  • SettingsServer.lua — DataStore + remotes (server)
  • SettingsClient.lua — modal UI + widgets + sound FX (client)
  • Installer.lua — one-click command bar installer
  • Manual.pdf — comprehensive 10-section guide with full settings table
  • Cheatsheet.pdf — visual one-page quick-ref
  • README.txt — quick reference
  • Rojo project (default.project.json + ship.project.json) for active development

Easy Installation

  1. Drag SettingsMenu.rbxmx into your place
  2. Open the Studio Command Bar
  3. Run require(workspace.CoreShunSettingsMenu.Installer)
  4. Press F5 — a floating cog appears
  5. Click it — tweak settings, see them save automatically

Or use the included Rojo project for live development. Compatible with Rojo 7.x.

Frequently Asked


How do I add my own settings?
Open SettingsConfig in ReplicatedStorage. Append a new entry to Config.Settings with an Id, Category, Type, and Default. Save the file. The setting appears in the menu next playtest.

How do I read a setting from my own scripts?
Call _G.CoreShunSettings_Get("setting_id") from any LocalScript. Returns the live value.

How do I react to changes?
Define _G.CoreShunSettings_OnChange = function(id, value) ... end in any LocalScript. Fires on every value change.

Settings reset every time I rejoin?
DataStores only work in proper Studio test mode (F5) or a published place. They're disabled in "edit mode" / "Local Server" mode. The system gracefully falls back to in-memory mode when DataStores are unavailable — settings still work in-session, just don't persist. To enable persistence, publish your place and turn ON API access in Game Settings → Security.

Does it work on mobile and console?
Yes. Pure scale-based UI, mobile breakpoint auto-grows the panel below 800px wide, controller D-pad navigation via Roblox's built-in GuiService. The cog button auto-relocates to the right-edge middle on mobile to avoid clashing with Roblox's jump button.

Can I disable the cog button and use only a hotkey?
Yes. Set Config.Toggle.ShowButton = false and assign Config.Toggle.Hotkey = Enum.KeyCode.O (or any key).

Can I open the menu from my own button?
Yes. Call _G.CoreShunSettings_Open() from any LocalScript.

Why no save / cancel buttons?
Modern UX — every change saves instantly. Avoids the "I changed something then forgot to hit save" frustration. The "Reset All" button is built-in as an example of how to add custom buttons.

Why are some settings "data-only"?
Some settings (music_volume, camera_sensitivity, colorblind_mode, etc.) are inherently game-specific — we'd need to know your game's Sound layout, custom camera scripts, and UI palette to wire them correctly. Instead, we provide them as values you read via _G.CoreShunSettings_OnChange and apply yourself in 1-3 lines per setting. Manual + cheatsheet have the full table.

Will it conflict with my existing settings system?
It uses its own DataStore name and its own Remotes folder. As long as no other script writes to the same DataStore name, you're fine.

Open source?
Fully. Plain Luau, no obfuscation. Edit any file to customize.

More Tools by coreshun

  • In-Game Systems — Music Player (premium), Simple Music Player, Daily Rewards, Loading Screen, Advanced Chat System, Toast, Admin Dashboard, Anti-Exploit, AutoRejoin, Codes Redemption
  • Studio Plugins — Color Picker, UI Wireframe, Gamepass Manager, TODO Tracker (free)
  • Bundles — up to 45% off
Browse all: builtbybit.com/creators/coreshun

Support

Discord: discord.com/invite/hdB5tadkk8


$4.99 · 17 settings · 10 auto-wired · DataStore-backed · Cross-platform · Open source

Latest reviews

It works but i have a little error when trying to develop my game. it says this -settings().Rendering.QualityLevel = Enum.QualityLevel.Automatic. i was wondering if there was any fix
coreshun
coreshun
Thanks for the report. You're right, that was a real bug.

v1.0 set graphics quality through settings().Rendering.QualityLevel, which is a Studio/plugin-only property; a game LocalScript can't write it, so Roblox logged that "write access restricted" message and the quality change didn't reliably apply.

v1.1 is now live. It uses the runtime-safe UserGameSettings.SavedQualityLevel API instead. Re-download the update and the error should be gone. Sorry for the hassle, and thanks for the review!

If you got any further issues, feel free to join Discord and we can discuss about it :)
Buy a license now
$4.99
EULA
Standard EULA
Use on any projects you own with attribution
Support
Standard
Includes:
Download the resource
Access new updates
Support from the creator
Support duration
1 year
Share and earn
Refer this resource and earn a 40% commission.
612 Views
18 Purchases
20 Downloads
May 4, 2026 Published
Jun 2, 2026 Updated
5.00 star(s)
Average rating (1)
648.4 KB File size
Open source
  1. Yes
DRM-free
  1. Yes
Unobfuscated
  1. Yes
Type
  1. System
  1. Menu & UI
Genre
  1. Simulator
  1. Tycoon
  1. Classic obby
Supported languages
  1. English
Creator
Recommended for you
Stop exploiters in their tracks with 9 server-authoritative detections.
Not yet rated
39 purchases
A fully configurable Chat Tags, Name Colors, Team Chat & Anti-Spam System built on TextChatService
Not yet rated
27 purchases
Drop-in day/night cycle. 6 presets, 4-phase blending, atmosphere wiring, clock widget, hooks.
Not yet rated
12 purchases
A Roblox Studio plugin with color picking, color scheme generators, eyedropper, apply to selections.
Not yet rated
2 purchases
Award XP in one line. The engine owns the curve, rewards, prestige, saving, and the UI.
Not yet rated
1 purchase
Share and earn
Refer this resource and earn a 40% commission.
612 Views
18 Purchases
20 Downloads
May 4, 2026 Published
Jun 2, 2026 Updated
5.00 star(s)
Average rating (1)
648.4 KB File size
Open source
  1. Yes
DRM-free
  1. Yes
Unobfuscated
  1. Yes
Type
  1. System
  1. Menu & UI
Genre
  1. Simulator
  1. Tycoon
  1. Classic obby
Supported languages
  1. English
Creator
Recommended for you
Stop exploiters in their tracks with 9 server-authoritative detections.
Not yet rated
39 purchases
A fully configurable Chat Tags, Name Colors, Team Chat & Anti-Spam System built on TextChatService
Not yet rated
27 purchases
Drop-in day/night cycle. 6 presets, 4-phase blending, atmosphere wiring, clock widget, hooks.
Not yet rated
12 purchases
A Roblox Studio plugin with color picking, color scheme generators, eyedropper, apply to selections.
Not yet rated
2 purchases
Award XP in one line. The engine owns the curve, rewards, prestige, saving, and the UI.
Not yet rated
1 purchase
Top