> For the complete documentation index, see [llms.txt](https://wiki.qfdevelopers.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.qfdevelopers.com/scripts/editor-16/configuration.md).

# Configuration

## Languages

You can set the language of the script in the configuration file.

* `en`: English
* `fr`: French
* `pl`: Polish
* `de`: German
* `es`: Spanish

<figure><img src="/files/ig9o7wm8oX8fWWbPFHXs" alt=""><figcaption></figcaption></figure>

## Tattoos Compatibility

Defines compatibility with external tattoo systems:

* `rcore`:\
  Set to `true` if you are using **rcore\_tattoos**.
* `vms`:\
  Set to `true` if you are using **vms\_tattoos**.

> 📌 These settings allow tattoos to persist and display correctly when changing outfits or reopening the skin menu. Enable only the system you're actually using.

<figure><img src="/files/luuhZjNzvzE7QCi9DfEI" alt=""><figcaption></figcaption></figure>

## Target

Defines which targeting system is used for interacting with skin menu NPCs or zones:

* `ox_target`:\
  Set to `true` to use **ox\_target**.
* `qtarget`:\
  Set to `true` to use **qtarget**.
* `qb_target`:\
  Set to `true` to use **qb-target**.
* `useE`:\
  Set to `true` to enable interaction using the **E key** instead of any target system.

> 📌 Only one system should be enabled at a time. Make sure to disable others to avoid conflicts.

<figure><img src="/files/y9VSu9rnrQ8ZlueNBRS0" alt=""><figcaption></figcaption></figure>

## Permissions

To use the `/skin` command or receive access to peds in the skin menu, a player must have the ACE permission: **`manageSkinMenu`**

**How to Add Permission**

Add the following line to your `server.cfg` to grant access to a specific player (replace `YOUR_IDENTIFIER` with the correct identifier, e.g. `identifier.discord:XXXXXXXXX` or `identifier.license:XXXXXXXXX`):

```cfg
add_ace identifier.discord:YOUR_DISCORD_ID manageSkinMenu allow
```

**Example (for Discord):**

```cfg
add_ace identifier.discord:541714961576099853 manageSkinMenu allow
```

**Example (for FiveM license):**

```cfg
add_ace identifier.license:5a351fe45f0428603e660fda37244dac8eecfbdc manageSkinMenu allow
```

You can also give this permission to a whole ACE group (e.g. `group.admin`):

```cfg
add_ace group.admin manageSkinMenu allow
```

**How to Use**

* Only players with the `manageSkinMenu` permission can use the `/skin` command and receive peds in the skin menu.
* If a player does **not** have the permission, the command and menu will not be available for them.

**Important**

> **Make sure to grant this permission only to trusted players or staff!**

<figure><img src="/files/BT86pNRKkozoC3dneeUj" alt=""><figcaption></figcaption></figure>

## Stores - Prices

Defines the cost for accessing customization menus:

* `clotheshop`:\
  Price (in your server's currency) for using the **clothing shop**.
* `barbershop`:\
  Price for using the **barber shop** (e.g., hair, beard, eyebrows).

> 📌 Set to `0` to make either shop free.\
> Prices are automatically deducted using your framework’s billing or money system.

<figure><img src="/files/tiSkoOHCkLfUEinuAv8B" alt=""><figcaption></figcaption></figure>

## Stores - Locations

Defines the locations of clothing and barber shops across the map:

Each entry represents a single store location with the following properties:

* `type`:\
  Type of store available at the location. Accepted values:\
  • `"clothing"` – opens the clothing customization menu\
  • `"barber"` – opens the barber/hair customization menu
* `coords`:\
  Position and heading (`vector4`) where the store is placed. Format: `vector4(x, y, z, heading)`

> 📌 You can add as many stores as you like by duplicating the structure. Each store will automatically support your selected target system or "E" key interaction.

<figure><img src="/files/HYVYmyUx283Achko3NSM" alt=""><figcaption></figcaption></figure>

## Stores - Blips

Controls the appearance of map blips for clothing and barber shops:

***

**`["clothing"]`:**

Blip settings for clothing stores:

* `Show`:\
  Set to `true` to display the blip on the map.
* `Sprite`:\
  Blip icon ID (e.g., `73` for T-shirt icon).
* `Color`:\
  Blip color ID (e.g., `47` – light green).
* `Scale`:\
  Blip size on the map (e.g., `0.7`).
* `Name`:\
  Label displayed when hovering over the blip. Uses localization via `_L('shops_clothing')`.

***

**`["barber"]`:**

Blip settings for barbershops:

* `Show`:\
  Set to `true` to show barbershop blips on the map.
* `Sprite`:\
  Blip icon ID (e.g., `71` for scissors icon).
* `Color`:\
  Blip color ID (e.g., `0` – white).
* `Scale`:\
  Blip size on the map.
* `Name`:\
  Localized blip label shown on the map via `_L('shops_barbershop')`.

> 📌 You can freely customize icons, colors, and visibility to match your server's visual style.

<figure><img src="/files/oi1BUx3af6iDcIzQPRSs" alt=""><figcaption></figcaption></figure>

## Stores - Target Config

Defines ped models, interaction labels, and icons for each targetable skin-related location:

***

**`["clothing"]` – Clothing Shop Target**

* `model`: Ped model used at the clothing shop (e.g., `"s_f_m_shop_high"`).
* `scenario`: Ped idle animation (e.g., `"WORLD_HUMAN_STAND_MOBILE"`).
* `icon`: Font Awesome icon used in the target UI (e.g., `"fas fa-tshirt"`).
* `label`: Localized text label shown during interaction (e.g., `_L('shops_clothing')`).
* `distance`: Maximum interaction range in meters (e.g., `5`).

***

**`["barber"]` – Barber Shop Target**

* `model`: Barber NPC model (`"s_m_m_hairdress_01"`).
* `scenario`: Idle animation.
* `icon`: Icon for barber (e.g., `"fas fa-scissors"`).
* `label`: Localized label (`_L('shops_barbershop')`).
* `distance`: Interaction range.

***

**`["clothingroom"]` – Public Outfit Room**

* `model`: Ped model for accessing shared outfit presets.
* `scenario`: Animation used by the NPC.
* `icon`: Icon for outfit room (e.g., `"fas fa-sign-in-alt"`).
* `label`: Localized label (`_L('shops_outfits')`).
* `distance`: Interaction range.

***

**`["playeroutfitroom"]` – Personal Wardrobe**

* Same structure as `clothingroom`, but refers to player's saved outfits.
* `label`: Localized as `_L('shops_warderobe')`.

> 📌 These NPCs appear where store coordinates are defined and support all target systems configured in `Config.Targets`.\
> You can modify ped models and icons to better match your server’s visual identity.

<figure><img src="/files/LgPP4QrIsdIqAMvTYxt0" alt=""><figcaption></figcaption></figure>

## Exports - Client-side

These exports allow you to trigger clothing, barber, wardrobe, and character creation menus from external scripts.

***

**🧥 `exports.qf_skinmenu:openWardrobe()`**

Opens the **player's saved outfit wardrobe** (from stored outfits).

***

**👚 `exports.qf_skinmenu:openClothingShop()`**

Opens the **standard clothing shop menu** (T-shirt icon zone).

***

**💈 `exports.qf_skinmenu:openBarberShop()`**

Opens the **barber shop menu** (hair, beard, eyebrows, etc.).

***

**🧍 `exports.qf_skinmenu:openSkinMenu()`**

Opens the **full skin customization menu**, including model, face, and body details.

***

**🏠 `exports.qf_skinmenu:openClothingShopMenuHousing()`**

Opens the clothing shop menu **with a custom label**, useful for housing systems or private wardrobes.

> 📌 Uses localized title from: `TRANSLATIONS[Config.Locale]['shops_warderobe']`

***

**👤 `exports.qf_skinmenu:startCharacter()`**

Starts the **character creation flow** with model/gender selector.

> 📌 Automatically detects gender using `FRAMEWORK.GetGender(true)`

***

> ✅ These exports are fully client-side and can be used in job scripts, housing systems, spawn selectors, or onboarding flows.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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-16/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.
