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

# Configuration

Every option of Cuxial Gang App: the phone entry and the escort service.

Two files hold everything you can adjust: `shared/config.lua` for the entry of the app in the phone and `data/kokka.lua` for the escort service. Restart the resource after any change.

The organization screens (home, chat, mules, contacts, zones) have no options here. They show what Cuxial Gang provides, so they are configured in Cuxial Gang.

## Phone entry · `shared/config.lua`

| Option        | Type      | Default           | What it does                                                                                           |
| ------------- | --------- | ----------------- | ------------------------------------------------------------------------------------------------------ |
| `Identifier`  | string    | `'cuxial-gang'`   | Internal id of the app in lb-phone. Do not change it.                                                  |
| `Name`        | string    | `'Kokka'`         | Name shown under the icon and in the app store.                                                        |
| `Description` | string    | A short tagline   | Text shown in the app store.                                                                           |
| `Developer`   | string    | `'Cuxial.'`       | Developer shown in the app store.                                                                      |
| `DefaultApp`  | boolean   | `false`           | `true` installs the app on every phone. `false` leaves it in the app store for each player to install. |
| `Categories`  | string\[] | `{ 'Lifestyle' }` | Categories of the app store where it is listed.                                                        |
| `Debug`       | boolean   | `false`           | Prints traces to the client console.                                                                   |

{% hint style="danger" %}
Cuxial Gang sends its phone notifications and chat messages to the app with the identifier `cuxial-gang`. If you change `Identifier`, they stop arriving.
{% endhint %}

## Escort service · `data/kokka.lua`

### Settings

| Option                | Type    | Default                              | What it does                                                                                                       |
| --------------------- | ------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
| `PaymentAccount`      | string  | `'cash'`                             | QBox money account charged when booking. For example `'cash'` or `'bank'`.                                         |
| `DirtyPayout`         | boolean | `false`                              | `true` charges the booking with the `black_money` item through `ox_inventory` and ignores `PaymentAccount`.        |
| `MaxDistance`         | number  | `5.0`                                | Metres between the vehicle and the companion to be able to invite her in.                                          |
| `MaxVehicleSpeed`     | number  | `8.0`                                | Highest vehicle speed, in metres per second, to invite her in and to count as stopped in a discreet place.         |
| `HornHoldTime`        | number  | `350`                                | Milliseconds the horn must be held to invite her in.                                                               |
| `HornControl`         | number  | `86`                                 | Game control used to invite her in. `86` is the vehicle horn.                                                      |
| `StartKey`            | number  | `18`                                 | Game control that starts the services. `18` is <kbd>Enter</kbd>.                                                   |
| `MinSecludedDistance` | number  | `90.0`                               | Metres the player must drive away from the pickup point before a place counts as discreet.                         |
| `FindAreaTimeout`     | number  | `120000`                             | Milliseconds to find a discreet place after the pickup. When they run out, she leaves.                             |
| `NearbyKeepAlive`     | number  | `50.0`                               | Metres from the companion within which the player counts as having arrived.                                        |
| `DespawnAfter`        | number  | `600000`                             | Milliseconds she waits at the meeting point with the player further than `NearbyKeepAlive`. Then the booking ends. |
| `AbortDistance`       | number  | `300.0`                              | Once the player has arrived, moving further than this many metres ends the booking.                                |
| `EnableSpeech`        | boolean | `true`                               | `false` mutes the voice lines during the booking.                                                                  |
| `SpeechParam`         | string  | `'SPEECH_PARAMS_FORCE_NORMAL_CLEAR'` | Game speech parameter for those lines. Leave it as it is.                                                          |
| `SexForce`            | number  | `0.45`                               | Strength of the vehicle rocking during the scenes that use it.                                                     |

A booking is paid in advance and is non-refundable.

### Price tiers · `Tiers`

Each profile belongs to a tier, and the tier multiplies the base price of every service. The final price is `basePrice × multiplier`, rounded down.

| Tier       | Default multiplier |
| ---------- | ------------------ |
| `economy`  | `0.8`              |
| `standard` | `1.0`              |
| `premium`  | `1.5`              |
| `vip`      | `2.2`              |

### Services · `Services`

The list of services a profile can offer.

| Field         | Type            | What it does                                                                                   |
| ------------- | --------------- | ---------------------------------------------------------------------------------------------- |
| `id`          | string          | Id used in the `services` list of each profile.                                                |
| `label`       | string          | Name shown in the app.                                                                         |
| `description` | string          | Short text shown in the app.                                                                   |
| `icon`        | string          | Font Awesome icon, with the `fa-` prefix.                                                      |
| `basePrice`   | number          | Price before the tier multiplier.                                                              |
| `scene`       | string \| false | Animation played in the vehicle: `'blowjob'`, `'sex'`, or `false` for company without a scene. |

The four services included (`company`, `oral`, `full`, `gfe`) are examples. Change their texts and prices to fit your economy.

### Meeting points · `MeetPoints`

One `vec4(x, y, z, heading)` per zone name. The companion appears there and a blip marks the spot. The zones included are examples; move them wherever you want.

### Profiles · `Escorts`

| Field            | Type      | What it does                                                                 |
| ---------------- | --------- | ---------------------------------------------------------------------------- |
| `name`           | string    | Name used in notifications and in the blip.                                  |
| `pedModel`       | string    | Ped model that appears at the meeting point.                                 |
| `zone`           | string    | Name of an entry in `MeetPoints`.                                            |
| `tier`           | string    | Name of an entry in `Tiers`. Unknown tier = multiplier `1.0`.                |
| `services`       | string\[] | Ids from `Services` this profile offers.                                     |
| `forceMult`      | number    | Optional. Multiplies `SexForce` for this profile.                            |
| `tireBlowChance` | number    | Optional. Chance, from `0` to `1`, of bursting a tyre on each rocking pulse. |

{% hint style="warning" %}
The profiles the player sees (photo, age, bio and tags) are part of the interface, and each one is tied to its key in `Escorts`. Edit the name, model, zone, tier and services of the existing profiles and keep their keys. Every `zone` must exist in `MeetPoints`.
{% endhint %}

### Vehicles

| Option                      | Type      | What it does                                                                                                                                                          |
| --------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `BlackListedVehicleClasses` | table     | Vehicle classes that cannot be used for a booking. By default: motorcycles (`8`), bicycles (`13`), boats (`14`), helicopters (`15`), planes (`16`) and trains (`21`). |
| `BlackListedVehicles`       | table     | Individual models that cannot be used, by model hash. Empty by default.                                                                                               |
| `VehicleControls`           | number\[] | Controls disabled while a scene plays. Leave it as it is.                                                                                                             |

`Anims` holds the animation names of each scene. Leave it as it is unless you know the animation dictionary.

## Common changes

Charge bookings from the bank:

{% code title="data/kokka.lua" %}

```lua
PaymentAccount = "bank",
```

{% endcode %}

Block a specific model:

{% code title="data/kokka.lua" %}

```lua
BlackListedVehicles = {
    [joaat("taxi")] = true,
},
```

{% endcode %}

Install the app on every phone:

{% code title="shared/config.lua" %}

```lua
DefaultApp = true,
```

{% endcode %}

## Language

The in-game notifications are in `locales/en.json` and `locales/es.json`, and follow the `ox:locale` convar.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.cuxial.com/scripts/gangs/cuxial-gang-app/configuration.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
