UI Configuration
UI-related settings are controlled through:
shared/config.lua
The UI system was designed around:
- keyboard-focused navigation
- low dependency usage
- developer customization
- modular interaction handling
UI Structure
Main UI configuration:
Config.UI = {}
This section controls:
- hotkeys
- interaction delays
- utility actions
- information panels
- clothing interaction systems
Hotkey Delay
Configuration:
Config.UI.HotkeyDelay = 500
Defines the delay (in milliseconds) before UI hotkeys become active after opening the menu.
Purpose:
- prevents accidental key presses
- prevents held keys from triggering actions immediately
- improves menu stability
Flashlight System
Configuration:
Config.UI.EnableFlashlight = true
Enables the flashlight utility button inside the appearance menu.
This allows players to illuminate darker areas while customizing characters.
Hands Up System
Configuration:
Config.UI.EnableHandsUp = true
Enables the hands-up action inside the menu.
Useful for:
- checking torso clothing
- checking accessories
- viewing side details
Information Panel
Configuration:
Config.UI.EnableInfoPanel = true
Controls the built-in information/help panel.
The panel may contain:
- hotkey information
- interaction explanations
- menu usage hints
- developer-provided instructions
Clothes-Off System
Configuration:
Config.UI.EnableClothesOff = true
Enables the clothing removal system.
This allows players to:
- remove clothing pieces
- preview fallback clothing
- temporarily hide components
The system uses fallback clothing values configured inside:
shared/data/outfits.lua
Menu Architecture
The UI internally separates systems into multiple menu groups.
Examples:
- clothing
- barber
- surgeon
- tattoos
- outfits
- accessories
Each section operates independently.
NUI Structure
UI files are located inside:
ui/
Main files:
ui/index.html
ui/css/style.css
ui/javascript/main.js
HTML Structure
Main interface container:
<div class="appearances">
<div class="buttons"></div>
<div class="appearance"></div>
</div>
The interface dynamically builds menu elements using JavaScript.
Character Area
The UI includes an interactive body area system.
Example:
<div id="character_area" class="character_area">
This system is used for:
- body-part selection
- camera focusing
- quick navigation
Question / Confirmation System
The UI includes a built-in confirmation system.
Used for:
- save confirmations
- cancel confirmations
- cache confirmations
- delete confirmations
Example workflow:
Apply
Cancel
Delete
Confirm
Cache Confirmation UI
The face cache system uses a dedicated confirmation dialog.
Supported actions:
- apply cached data
- cancel
- delete saved cache
This system is fully translatable through locale files.
Localization Support
The UI supports multi-language translation through:
shared/language/*
Supported languages:
- Turkish
- English
- Spanish
- German
- French
- Russian
Keyboard Navigation
The UI was primarily designed for keyboard usage.
Examples:
- enter
- backspace
- arrow navigation
- hotkey actions
The hotkey delay system exists specifically to improve keyboard stability.
Styling
Main UI styling is located inside:
ui/css/style.css
Developers may customize:
- colors
- layout
- spacing
- transitions
- glow effects
- panel positioning
JavaScript Logic
Main UI behavior is controlled through:
ui/javascript/main.js
This includes:
- menu rendering
- button handling
- NUI callbacks
- animations
- interaction logic
Recommended Customization Workflow
Recommended editing order:
1. config.lua
2. language files
3. style.css
4. main.js
Avoid modifying protected gameplay logic unless necessary.