A beautifully designed, fully-featured settings menu system for Godot 4 multiplayer games with multiple theme support (Dark, Purple, and White themes).
- Dark Theme - Default sleek dark interface
- Purple Theme - Vibrant purple color scheme
- White Theme - Clean light theme alternative
- Display Options: Resolution (720p to 8K), Window Mode, Refresh Rate
- Quality Presets: Low, Medium, High, Ultra with automatic configuration
- Advanced Controls: Texture Quality, Shadow Quality, Anti-Aliasing, V-Sync
- Volume Controls: Master, Game, and Voice Chat volume sliders
- Voice Chat: Enable/disable voice chat and push-to-talk functionality
- Mouse Configuration: Sensitivity, Y-axis inversion, acceleration
- Gamepad Support: Enable/disable, sensitivity adjustment, vibration control
- Keybinding System: Fully customizable control mapping with visual feedback
- Connection Options: Player name, region selection, max ping threshold
- Gameplay Preferences: Show ping, display player names
extends Control
# Signals for communication with other systems
signal settings_applied()
signal settings_closed()
# Comprehensive settings data structure
var settings_data = {
"resolution": 1,
"window_mode": 0,
"graphics_preset": 1,
# ... more settings
}- Animated Transitions: Smooth fade and scale animations
- Persistent Storage: Config file saving/loading system
- Real-time Preview: Immediate feedback when adjusting settings
- Input Remapping: Dynamic key binding with timeout protection
# Show the settings menu
$SettingsMenu.show_settings_menu()
# Connect to signals
$SettingsMenu.settings_applied.connect(_on_settings_applied)
$SettingsMenu.settings_closed.connect(_on_settings_closed)# Get a specific setting
var sensitivity = $SettingsMenu.get_setting("mouse_sensitivity")
# Get all settings
var all_settings = $SettingsMenu.get_all_settings()
# Set settings programmatically
$SettingsMenu.set_setting("master_volume", 80)The menu supports three beautiful color schemes:
- Dark Theme (Default): Professional dark interface with blue accents
- Purple Theme: Vibrant purple and magenta color palette
- White Theme: Clean, modern light theme with subtle shadows
Easily extend the theme system by modifying the style resources:
# Example theme modification
theme_override_colors/font_color = Color(0.9, 0.9, 0.9, 1)
theme_override_styles/panel = preload("res://themes/purple_theme.tres")- Responsive Design: Adapts to different screen sizes
- Tab Navigation: Intuitive category organization
- Visual Feedback: Immediate preview of changes
- Confirmation System: Visual feedback for applied changes
- Default Restoration: One-click reset to default settings
- Copy the
SettingsMenuscene and script to your project - Instantiate the menu in your main scene
- Connect the necessary signals
- Configure theme files in the
themes/directory
| Signal | Description |
|---|---|
settings_applied() |
Emitted when settings are saved and applied |
settings_closed() |
Emitted when the settings menu is closed |
- Optimized Rendering: Efficient control nodes and minimal draw calls
- Memory Efficient: Only loads necessary components
- Smooth Animations: Hardware-accelerated transitions
Feel free to extend this settings menu with:
- Additional setting categories
- New theme variations
- Localization support
- Accessibility options
This settings menu system is available for use in any Godot project.
