# Config

Complete reference for all settings in `shared/config.lua`.

***

### Framework

```lua
Config.Framework = {
    ESX = true,
    QBCore = false,
    Standalone = false,
}
Config.PlayerLoadedEvent = "esx:playerLoaded"
```

| Key                 | Type   | Description                                    |
| ------------------- | ------ | ---------------------------------------------- |
| `ESX`               | bool   | Enable ESX framework integration               |
| `QBCore`            | bool   | Enable QBCore framework integration            |
| `Standalone`        | bool   | No framework, GTA native notifications         |
| `PlayerLoadedEvent` | string | Client event fired when player is fully loaded |

***

### Menu

```lua
Config.Menu = {
    OpenCommand = "emote_menu",
    OpenKey = "M",
    OpenLabel = "Open emote menu",
    PlayCommand = {"e", "emote"},
    CancelCommand = "cancel_emote",
    CancelKey = "X",
    CancelLabel = "Cancel current emote",
    AllowMovement = true,
    BlockedControls = {1, 2, 3, 4, 5, 6, 18, 24, 25, 37, ...},
}
```

***

### Categories

Toggle individual menu tabs:

```lua
Config.Categories = {
    Expressions = true,
    Walks = true,
    Shared = true,
    Dances = true,
    Animal = true,
    Emotes = true,
    Props = true,
    History = true,
    Playlists = true,
}
```

***

### Preview

```lua
Config.Preview = {
    Enabled = true,
    PartnerModel = "a_m_m_business_01",
}
```

***

### Modules

#### Binoculars

```lua
Config.Binoculars = {
    Enabled = true,
    VisionModes = true,
}
```

#### Crouch

```lua
Config.Crouch = {
    Enabled = true,
    UseKeybind = true,
    Key = "lcontrol",
    OverrideStealth = true,
    CrawlEnabled = true,
    CrawlKey = "lcontrol",
    FpsRestriction = false,
}
```

#### Pointing

```lua
Config.Pointing = {
    Enabled = true,
    Key = "B",
}
```

#### Ragdoll

```lua
Config.Ragdoll = {
    Enabled = true,
    Key = "U",
    ToggleMode = true,
}
```

#### Hands Up

```lua
Config.Handsup = {
    Enabled = true,
    Key = "X",
}
```

#### Screenshot

```lua
Config.Screenshot = {
    Enabled = true,
    Key = "F5",
    SelfieTimer = 3,
    UseScreenshotBasic = true,
}
```

***

### Features

#### Emote Wheel

```lua
Config.Wheel = {
    Enabled = true,
    Key = "CAPS",
    Slots = 8,
}
```

#### Keybinds

```lua
Config.Keybinds = {
    Enabled = true,
    Prefix = "emote_slot_",
    Label = "Emote Slot",
}
```

#### Playlists

```lua
Config.Playlist = {
    Enabled = true,
    MaxPerPlaylist = 20,
    MaxPlaylists = 10,
}
```

#### History

```lua
Config.History = {
    Enabled = true,
    MaxEntries = 30,
}
```

#### Shared Emotes

```lua
Config.SharedEmotes = {
    MaxRange = 3.0,
    RequestTimeout = 10,
    AcceptControl = 51,
    DeclineControl = 73,
    CycleTargetControl = 19,
}
```

#### 3D Placement

```lua
Config.Placement = {
    Enabled = true,
    Command = "emote_3d",
    MaxDistance = 20.0,
}
```

***

### Advanced

```lua
Config.Advanced = {
    MaxPreviewDistance = 20.0,
    RateLimitMs = 2000,
}
```

| Key                  | Description                                      |
| -------------------- | ------------------------------------------------ |
| `MaxPreviewDistance` | Max distance for 3D emote gizmo preview          |
| `RateLimitMs`        | Server-side rate limit for shared emote requests |
