# Configuration

#### Languages & Locales

The script supports the following languages out of the box. You can change this in `config.lua`.

* **en**: English
* **fr**: French
* **pl**: Polish
* **de**: German
* **es**: Spanish
* **pt**: Portuguese
* **ja**: Japanese
* **it**: Italian
* **ko**: Korean

```lua
Config.Locale = "en"
```

***

#### Commands & Controls <a href="#user-content-commands--controls" id="user-content-commands--controls"></a>

**Player Commands**

* **/skinmenu**: Opens the character customization menu.
* **/outfits**: Quickly access your saved outfits.
* **/skinreset**: Resets your character to the default appearance.
* **/skingive \[ID]**: Forces the skin menu to open for another player (Admin Only).

**Interaction Keys (In-Menu)**

* **LMB (Left Mouse Button)**: Click and drag to rotate your character.
* **Scroll Wheel**: Zoom in and out to focus on details.
* **Q / E**: Alternative keys for character rotation.
* **ESC / BACKSPACE**: Close the menu or return to the previous page.

***

#### Script Features <a href="#user-content-script-features" id="user-content-script-features"></a>

* **Advanced DNA**: Customize parentage, skin mixing, and facial structure.
* **Face Features**: Detailed control over makeup, beard, eyebrows, and skin blemishes.
* **Clothing Grid**: Visual selection for all clothing items with high-quality image previews.
* **Tattoo System**: Categorized tattoo management for all body parts.
* **Wardrobe Management**: Save personal outfits or use shared faction (Job) uniforms.
* **Outfit Strings**: Export or Import character appearances using simple text codes.
* **Environment Settings**: Built-in flashlight and time-toggle for perfect lighting.

***

#### Technical Information (Developer Exports) <a href="#user-content-technical-information-developer-exports" id="user-content-technical-information-developer-exports"></a>

Use these exports to integrate **qf\_skinmenu\_v2** with your other scripts.

**Appearance Exports (Client)**

```lua
-- Get appearance data for a ped or player
local appearance = exports['qf_skinmenu_v2']:getPedAppearance(ped)

-- Set appearance data for the player
exports['qf_skinmenu_v2']:setPlayerAppearance(appearanceData)

-- Detailed Getters
local components = exports['qf_skinmenu_v2']:getPedComponents(ped)
local props = exports['qf_skinmenu_v2']:getPedProps(ped)
local model = exports['qf_skinmenu_v2']:getPedModel(ped)
```

**Important Integration Events**

The script automatically handles these events for seamless compatibility:

* `skinchanger:loadSkin` / `skinchanger:getSkin`
* `esx_skin:openSaveableMenu` / `esx_skin:openRestrictedMenu`
* `qb-clothing:client:openMenu` / `qb-clothing:client:loadPlayerSkin`
* `qb-clothes:client:CreateFirstCharacter`

***

#### Configuration Examples <a href="#user-content-configuration-examples" id="user-content-configuration-examples"></a>

**Setting Prices**

Adjust the cost of different services in your shops:

```lua
Config.Prices = {    
    ['clothing'] = 500,     -- Cost for clothes    
    ['barber'] = 250,       -- Cost for hair/beard    
    ['tattoo'] = 400,       -- Cost for tattoos    
    ['surgeon'] = 5000      -- Cost for DNA changes
}
```

**Faction Wardrobes**

Create wardrobes restricted to specific jobs with predefined outfits.

```lua
{     
    type = 'clothing',     
    coords = vec3(454.1, -988.6, 30.7),     
    jobs = { 
        { name = 'police', grade = 0 } 
    },    
    wardrobe = {        
        shared = true, -- If true, players can only choose these outfits        
        { name = "Patrol Uniform", skin = { tshirt_1 = 58, torso_1 = 55, ... } },        
        { name = "Special Ops", skin = { tshirt_1 = 58, torso_1 = 55, bproof_1 = 2, ... } }    
    }
}
```

***

#### Logging (Discord) <a href="#user-content-logging-discord" id="user-content-logging-discord"></a>

Track all player interactions by setting up a Discord Webhook.

```lua
Config.DiscordLog = "YOUR_WEBHOOK_URL"
Config.Logs = {    
    ['menuOpen'] = true,    
    ['purchase'] = true,    
    ['outfitSave'] = true,    
    ['adminAction'] = true
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.qfdevelopers.com/scripts/editor-3/configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
