> ## Documentation Index
> Fetch the complete documentation index at: https://rust-co.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuração

> Tudo o que dá para mudar em config/config.lua, explicado em palavras simples.

Todas as opções ficam num arquivo só: `rco-motorworks/config/config.lua`. Abra com qualquer editor de texto (o Bloco de Notas serve, o VS Code é melhor).

> [!TIP]
>
> Mude só o que vem depois do sinal `=`. Mantenha as aspas `'...'`, as vírgulas e as chaves exatamente como estão. Depois de salvar, reinicie o servidor.

## O básico

| Opção | O que faz | Padrão |
| - | - | - |
| `Config.Locale` | Idioma dos textos na tela: `'en'` ou `'pt-br'` | `'en'` |
| `Config.Framework` | Deixe `'auto'`. Só escreva `'rsg'` ou `'vorp'` se o script errar | `'auto'` |
| `Config.MoneyAccount` | O dinheiro que a oficina cobra e paga: `'cash'` ou `'gold'`. Em gold, os preços sobem para barras inteiras | `'cash'` |
| `Config.Debug` | Mostra nos consoles o que o script faz, para configurar. Desligue antes de abrir para os jogadores | `false` |

## Teclas

As teclas são escritas com o código da tecla no jogo, não com a letra. A [página de teclas](https://rust-co.mintlify.site/pt-BR/keys.md) tem o código de cada uma. Ao lado de cada tecla fica a letra mostrada na tela (`Config.OpenKeyLabel`...).

| Opção | O que faz | Padrão |
| - | - | - |
| `Config.OpenKey` | Abre a oficina, dirigindo o seu veículo dentro dela | **R** |
| `Config.WorkKey` | O mecânico em serviço, a pé ao lado do veículo de um cliente com pedido: faz o serviço | **G** |
| `Config.CounterKey` | Abre o escritório do dono e o painel dos mecânicos, a pé | **G** |

`Config.OpenKey` precisa ser uma tecla que o jogo lê enquanto se dirige. As teclas só são lidas enquanto a dica delas aparece na tela, então os outros scripts continuam com elas no resto do mapa.

## As oficinas

`Config.Workshops` lista todas as oficinas. Saint Denis já vem pronta; adicione as suas do mesmo jeito.

```lua theme={"dark"}
Config.Workshops = {
    saint_denis = {
        label = 'Saint Denis', coords = vector3(2683.24, -840.91, 41.30), radius = 20.3, blip = true,
        bays = { vector4(2686.63, -851.89, 42.36, 116.22), vector4(2679.85, -836.29, 42.36, 110.55) },
        owned = true, counter = vector3(2672.60, -827.54, 42.36), staffCounter = vector3(2683.87, -825.76, 42.36),
    },
    valentine = {
        label = 'Valentine', coords = vector3(x, y, z), radius = 8.0,
        owned = false,
    },
}
```

| Opção | O que faz |
| - | - |
| o nome antes do `=` | O nome da oficina no comando de admin (`saint_denis`). Só letras, números e `_`. Não mude depois que ela tiver dono |
| `label` | O nome no topo da tela, em cima de "Motor Works" |
| `coords` | O meio do piso da oficina |
| `radius` | A distância (metros) do meio até onde o veículo pode ficar |
| `bays` | As estações de modificação, `vector4(x, y, z, direção)`: onde os veículos ficam para o serviço. Um veículo a até `Config.BayRadius` (3 metros) de uma está na oficina. Sem `bays`, vale o `radius` |
| `owned` | `true`: a oficina pode ter dono, que contrata mecânicos. `false`: ninguém é dono e o cliente instala sozinho |
| `counter` | O escritório do dono (só oficinas com dono): caixa, comissão, contratar e demitir. Só o dono abre |
| `staffCounter` | O painel dos mecânicos: entrar e sair de serviço, e os pedidos. Os mecânicos e o dono abrem. Sem ele, os mecânicos usam o `counter` também |
| `blip` | `true`: a oficina aparece no mapa, com o ícone de mecânica do RCO Vehicles (o do ferreiro do jogo sem o RCO Vehicles) |

Uma oficina com dono que ainda não tem dono funciona como autoatendimento.

## Preços

| Opção | O que faz | Padrão |
| - | - | - |
| `Config.Repair.Base` | O preço de qualquer conserto | `0.50` |
| `Config.Repair.PerPercent` | Mais isto para cada ponto de saúde que falta | `0.03` |
| `Config.Paint.Price` | O preço de uma pintura nova, em qualquer cor do próprio veículo (do catálogo dele no RCO Vehicles) | `2.0` |
| `Config.PriceMultiplier` | O preço de cada acessório (definido por cada veículo) é multiplicado por isto. `1.0` mantém; `1.5` deixa 50% mais caro | `1.0` |

Um veículo com 40% de saúde paga `0,50 + 60 × 0,03 = $2,30`. Tirar um acessório é de graça.

## Oficinas com dono

| Opção | O que faz | Padrão |
| - | - | - |
| `Config.Owners.Command` | O comando de admin que dá dono a uma oficina | `'motorworks'` |
| `Config.Owners.Mode` | Como toda oficina com dono funciona: `'self'`, `'staff'` ou `'auto'`. O dono não muda | `'auto'` |
| `Config.Owners.Commission` | A parte de cada pedido que o mecânico que fez recebe do caixa (`0.2` = 20%) | `0.2` |
| `Config.Owners.CommissionMax` | A maior comissão que o dono pode dar aos mecânicos no balcão (começa em `Commission`) | `0.5` |
| `Config.Owners.ExpireHours` | Um pedido que ninguém fez nesse tempo é cancelado e devolvido pelo caixa | `5` |
| `Config.Owners.WorkSeconds` | Quanto tempo o mecânico trabalha no veículo | `12` |

Os modos:

* `'self'`: o cliente instala sozinho; o dinheiro vai para o caixa.
* `'staff'`: o cliente faz o pedido e paga no caixa; um mecânico faz cada serviço.
* `'auto'`: `'staff'` enquanto tem um mecânico daquela oficina em serviço, `'self'` quando não tem.

O dono, os mecânicos e o caixa ficam guardados no banco, do mesmo jeito no RSG e no VORP: você não cria nenhum job na sua framework.

## A ordem das categorias

`Config.CategoryOrder` é a ordem em que as categorias aparecem. Categorias do veículo que não estão na lista vêm depois, por nome.

```lua theme={"dark"}
Config.CategoryOrder = { 'teto', 'capo', 'frente', 'laterais', 'traseira', 'lanternas', 'rodas', 'volante' }
```

## A câmera

`Config.Camera` diz para onde a câmera olha em cada categoria. O jogador ainda pode arrastar e dar zoom a partir dali.

```lua theme={"dark"}
teto = { point = { 0.0, 0.0, 1.0 }, yaw = 155.0, pitch = 0.95, zoom = 0.45 },
```

| Opção | O que faz |
| - | - |
| `bone` | Uma parte do veículo para olhar (`'bonnet'`, `'boot'`, `'wheel_lf'`), quando o veículo tem |
| `point` | Sem a parte: um ponto do veículo, lado (`-1` esquerda a `1` direita), comprimento (`-1` trás a `1` frente) e altura (`-1` embaixo a `1` em cima) |
| `yaw` | De que lado a câmera olha: `0` atrás, `90` direita, `180` frente, `270` esquerda |
| `pitch` | A altura da câmera, de `0` baixa a `1` alta |
| `zoom` | De `0` longe a `1` perto |

`default` é o veículo inteiro e `repair` é a tela do conserto. Quando o veículo traz a própria câmera para uma categoria ou opção (no catálogo dele no RCO Vehicles), vale a dele.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.