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

# Configuración

> Todo lo que puedes cambiar en la carpeta config, explicado con palabras sencillas.

Los ajustes están en tres archivos de `rco-steamline/config/`:

* `config.lua`: las opciones generales, las compañías, los trenes, la caldera, las teclas, los pasajeros, la carga, el desgaste y los trenes del servidor;
* `offices.lua`: las oficinas del ferrocarril y los talleres;
* `supply.lua`: los montones de carbón y las torres de agua.

Ábrelos con cualquier editor de texto (el Bloc de notas sirve, VS Code es mejor).

> [!TIP]
>
> Cambia solo lo que va después del signo `=`. Deja las comillas `'...'`, las comas y las llaves exactamente como están. Después de guardar, reinicia el servidor con el juego cerrado.

## Lo básico

| Ajuste | Qué hace | Por defecto |
| - | - | - |
| `Config.Locale` | Idioma de los textos en pantalla: `'en'` o `'pt-br'` | `'en'` |
| `Config.Framework` | Déjalo en `'auto'`. Escribe `'rsg'` o `'vorp'` solo si tu servidor tiene los dos | `'auto'` |
| `Config.MoneyAccount` | El dinero con el que pagan los jugadores: `'cash'` (el efectivo de RSG, los dólares de VORP) o `'gold'` (el oro de VORP). En RSG también funciona `'bank'` | `'cash'` |
| `Config.DisableGameTrains` | Apaga los trenes aleatorios del propio juego, para que nunca choquen con los trenes de los jugadores | `true` |
| `Config.Command` | El comando de admin (mira [Admin](https://rust-co.mintlify.site/es/rco-steamline/admin.md)) | `'steamline'` |
| `Config.MaxTrains` | Trenes de jugadores en el mundo a la vez, en todo el servidor. Los propios trenes del servidor se retiran para dejarles sitio | `6` |
| `Config.Debug` | Muestra mensajes extra en las consolas del servidor y F8. Actívalo solo para encontrar un problema | `false` |

`Config.Volume` ajusta los sonidos propios del recurso, de `0` (apagado) a `1`. Cada uno se apaga con la distancia.

| Ajuste | El sonido | Por defecto |
| - | - | - |
| `Shovel` | La pala del carbón, la oyen los jugadores cerca | `0.8` |
| `Injector` | La válvula y el canto del inyector, en la cabina | `0.7` |
| `Water` | El agua que cae del caño de una torre al ténder | `0.6` |
| `Repair` | El trabajo de reparación en la locomotora y en la vía, se oye a menos de 6 m | `0.8` |

## Compañías

Sin compañía, no hay tren: cada jugador que quiere un tren abre una compañía en una oficina del ferrocarril, incluso solo. Los cargos solo controlan la compañía; cualquiera de ella conduce, echa carbón con la pala y revisa billetes.

| Ajuste | Qué hace | Por defecto |
| - | - | - |
| `Config.Company.OpenPrice` | Se paga del bolsillo para abrir una compañía | `20.0` |
| `Config.Company.MaxMembers` | Personas en una compañía, contando al dueño | `20` |
| `Config.Company.MaxTrainsOut` | Trenes que una compañía puede tener en el mundo a la vez | `2` |
| `Config.Company.InviteSeconds` | Cuánto tiempo espera una oferta de trabajo una respuesta | `60` |
| `Config.Company.Commission` | % del pago de un contrato de carga repartido entre los miembros que lo llevaron. El dueño de cada compañía puede cambiarlo para su compañía en la oficina | `10` |

## Desgaste y reparaciones

El desgaste va de `0` (nuevo) a `100` (gastado del todo) para las ruedas, los frenos y la caldera. Las ruedas gastadas hacen el tren más lento, los frenos gastados lo frenan peor y una caldera gastada da menos presión.

| Ajuste | Qué hace | Por defecto |
| - | - | - |
| `WheelsPerKm` / `WheelsPerOverspeed` | Desgaste de las ruedas por km conducido / por segundo por encima de `OverspeedMph` | `0.4` / `0.05` |
| `BrakesPerKm` / `BrakesPerHardBrake` | Desgaste de los frenos por km / por segundo de frenada fuerte (freno por encima del 70% en marcha) | `0.2` / `0.08` |
| `BoilerPerKm` / `BoilerPerLowWater` | Desgaste de la caldera por km / por segundo con poca agua en la caldera y el fuego alto | `0.2` / `0.01` |
| `BoilerPerHighPressure` | Desgaste de la caldera por segundo con la presión al máximo | `0.005` |
| `HighPressure` | La parte de la presión máxima de la caldera que cuenta como "el máximo" | `0.9` |
| `OverspeedMph` | Por encima de esta velocidad (mph) las ruedas se desgastan más rápido | `25` |
| `MaxLoss` | La parte de velocidad, frenada y presión que se pierde con 100 de desgaste (`0.35` = 35%) | `0.35` |
| `Repair` | El precio completo de cada parte, de 100 de desgaste a nueva: `wheels` $50, `brake` $30, `boiler` \$100. Menos desgaste cuesta menos. | |
| `PartsShare` | La tripulación repara el tren ella misma y paga solo esta parte de ese precio | `0.4` |

Todos están dentro de `Config.Wear`. Las ruedas con 50 de desgaste cuestan `50 × 50% × 0.4 = $10` de reparar. Mira [Mantenimiento](https://rust-co.mintlify.site/es/rco-steamline/maintenance.md).

## Trenes

| Ajuste | Qué hace | Por defecto |
| - | - | - |
| `Config.GraceSeconds` | Un tren sin ningún miembro de la tripulación cerca frena hasta pararse y se quita después de estos segundos, estacionado de vuelta en el patio desde el que se llamó | `300` |
| `Config.CrewRadius` | Metros: un miembro de la tripulación más cerca que esto mantiene vivo el tren | `150.0` |
| `Config.SwitchRadius` | Metros: el maquinista mueve un desvío desde la cabina cuando está así de cerca, y solo cuando ningún otro tren está sobre él | `400.0` |

### El catálogo

`Config.Trains` es lo que vende la oficina. Una compañía compra la locomotora una vez (viene con su ténder) y después sus vagones de uno en uno (`Config.Cargo.Price`).

```lua theme={"dark"}
Config.Trains = {
    steamline = { label = 'Steamline', price = 1800.0,
        description = 'Engine and tender. Pulls the cars your company buys.' },
}
```

Cambia el `label`, el `price` (se paga con la caja de la compañía) o la `description` que se muestra en el catálogo. Deja el nombre `steamline`.

### Los patios

`Config.Yards` lista las estaciones donde se llaman y se estacionan los trenes. Una estación que no está en la lista no es una parada: no tiene billetes, pasajeros ni carga.

```lua theme={"dark"}
station_rho = { label = 'Rhodes', coords = vector3(1215.30, -1299.80, 75.58), heading = 31.18, radius = 150.0,
    call = vector4(1237.50, -1315.35, 76.90, 110.55) },
```

| Ajuste | Qué hace |
| - | - |
| el nombre antes del `=` | El id de la estación (`station_rho`). Déjalo: es el nombre propio del ferrocarril para esa estación |
| `label` | El nombre que se muestra en la pantalla del patio |
| `coords` | Un punto en la propia vía de la estación, donde se crea el tren |
| `heading` | Opcional: hacia dónde mira el tren allí por defecto |
| `radius` | Metros: no se puede llamar a ningún tren mientras otro tren esté más cerca que esto |
| `call` | Opcional: donde se pone el jugador para llamar a un tren, cuando no es en `coords`: `vector4(x, y, z, rumbo)` |
| `counter` | Opcional, para una estación sin oficina: su taquilla, adonde caminan los NPC que bajan para irse |

### Las casetas

`Config.Booths` coloca la caseta de Steamline de cada estación, donde se llaman los trenes y se toman los contratos de carga: `[id de la estación] = vector4(x, y, z, rumbo del mostrador)`. Una estación que no está en la lista usa el punto `call` de su patio.

## Caldera y cabina

La presión en psi, el carbón en kg, el agua en litros, el tiempo en segundos. Todos están dentro de `Config.Boiler`.

| Ajuste | Qué hace | Por defecto |
| - | - | - |
| `TenderCoalMax` / `FireboxCoalMax` | Carbón que cabe en el ténder / el fogón | `1500` / `150` |
| `TenderWaterMax` / `BoilerWaterMax` | Agua que cabe en el ténder / la caldera | `20000` / `4000` |
| `BurnRate` | kg de carbón quemados por segundo con el fuego del todo abierto y el regulador abierto | `0.12` |
| `WaterPerPsi` | Litros que se convierten en vapor por cada psi usado | `1.33` |
| `PressurePerKg` | Psi que da cada kg de carbón quemado: más alto sube la presión más rápido y mantiene más en marcha | `40.0` |
| `CoolRate` | Parte de la presión que se pierde cada segundo al enfriarse la caldera (`0.004` = 0.4%) | `0.004` |
| `InjectorRate` | Litros por segundo que el inyector pasa del ténder a la caldera | `20` |
| `DamageRate` | Daño de la caldera por segundo con poca agua y el fuego alto (`1.0` = arruinada) | `0.01` |
| `DryBoiler` | La caldera se queda sin agua con el fuego encendido: `'stop'` (el tren solo se para) o `'explode'` | `'stop'` |
| `WreckClearSeconds` | Con `'explode'`: segundos hasta que los restos se retiran y se envían al patio del taller más cercano | `60` |
| `SpeedMax` | m/s a presión máxima con un tren ligero (`12` = 27 mph). Los trenes más pesados son más lentos | `12.0` |
| `Start` | Lo que tiene un tren la primera vez que se llama: carbón y agua en el ténder y la caldera, la presión y el fuego. Las siguientes llamadas traen lo que tenía al estacionarse | |

Cada llamada es un arranque en caliente: el fuego está encendido y la caldera tiene presión, así que el tren puede salir al momento.

| Ajuste | Qué hace | Por defecto |
| - | - | - |
| `Config.ThrottleNotches` | Pasos del regulador | `8` |
| `Config.ShovelKg` | kg de carbón que una palada pasa del ténder al fogón | `15` |
| `Config.ShovelSeconds` | Segundos entre dos paladas | `2.5` |

## Teclas

Las teclas se escriben con el código de la tecla en el juego, no con la letra. La [página de teclas](https://rust-co.mintlify.site/es/keys.md) tiene el código de cada una. Algunas teclas se comparten a propósito: cada indicación solo aparece donde la otra no. Evita la F (a pie también es pelea cuerpo a cuerpo, atar y liberar), las teclas de números (barra de acceso rápido) y las flechas.

| Ajuste | Qué hace | Por defecto |
| - | - | - |
| `ThrottleUp` / `ThrottleDown` | Sube / baja el regulador un paso | **W** / **S** |
| `ReverserBack` / `ReverserFwd` | Inversor atrás / adelante, con el tren parado | **A** / **D** |
| `Brake` | Freno, mantener | **Space** |
| `Emergency` | Freno de emergencia | **X** |
| `Whistle` | Silbato | **H** |
| `Cruise` | Mantiene la velocidad actual | **C** |
| `Injector` | Enciende y apaga el inyector | **R** |
| `FireUp` / `FireDown` | Sube / baja el fuego, en la cabina | **U** / **L** |
| `Shovel` | Carbón del ténder al fogón, en la cabina | **B** |
| `MapCollapse` | Pliega el mapa de la cabina; otra vez para mostrarlo | **Q** |
| `Switch` | Mueve el siguiente desvío a su otra salida | **Z** |
| `Interact` | Montón de carbón, ténder, torre de agua, carga, palanca del desvío, oficina, reparación, asiento | **G** |
| `TakeControls` | Cerca de la locomotora: sentarse en el asiento del maquinista | **U** |
| `Fireman` | Cerca de la locomotora: atender el fuego; otra vez para dejarlo | **J** |
| `Yard` | En la caseta: la pantalla del patio | **J** |
| `Ticket` | La taquilla (oficina o andén) | **L** |
| `Check` | Revisor: revisar el billete de un pasajero | **G** |
| `Workers` | En un raíl roto con un furgón de cola cerca: sus obreros lo reparan | **J** |
| `Camera` | En la cabina o sentado: la siguiente cámara del tren | **V** |

Todas están dentro de `Config.Keys`.

## Carbón y agua

| Ajuste | Qué hace | Por defecto |
| - | - | - |
| `Config.CoalPerTrip` | kg que añade al ténder cada viaje con la pala desde el montón | `75` |
| `Config.WaterRate` | Litros por segundo mientras el caño de una torre está abierto | `150` |

Los montones de carbón y las torres de agua están en `config/supply.lua`, uno por estación con el id de la estación, más torres a lo largo de la línea:

```lua theme={"dark"}
Config.Supply.station_val = { -- Valentine
    coal = vector3(-161.99, 636.58, 112.67), water = vector3(-156.58, 642.53, 112.67), waterHeading = 53.4,
    hide = { { model = 'p_watertower_med_05', coords = vector3(-158.99, 644.32, 116.44) } } }
```

| Ajuste | Qué hace |
| - | - |
| `coal` | Donde está el montón de carbón (los jugadores llenan la pala aquí y después caminan hasta el ténder) |
| `coalHeading` | Opcional: el rumbo del montón, con su lado -Y hacia la vía. Sin él, `waterHeading` |
| `water` | Donde está la torre de agua, en el suelo, a 3.2 m del centro de la vía (su caño llega al ténder) |
| `waterHeading` | El rumbo de la torre: su caño gira hacia el lado -Y de la torre, así que pon ese lado hacia la vía |
| `hide` | Objetos del juego a los que sustituyen las props propias del recurso: se ocultan mientras la nuestra está cerca |
| `label` | El nombre que se muestra, para una torre lejos de una estación |

Edita, quita o añade entradas libremente. Una torre a lo largo de la línea solo tiene `water`.

## Oficinas y talleres

`config/offices.lua` tiene las oficinas del ferrocarril: la oficina de la estación donde se abren y se dirigen las compañías, que también es su taquilla.

```lua theme={"dark"}
{ label = 'Rhodes Station', station = 'station_rho', coords = vector3(1231.19, -1296.21, 76.90),
  cargoPoint = vector3(1221.020, -1299.076, 75.908), cargoHeading = 45.9 },
```

| Ajuste | Qué hace |
| - | - |
| `label` | El nombre que se muestra |
| `station` | El patio (un id de `Config.Yards`) del que salen los billetes |
| `coords` | Donde está el mostrador. Los NPC que bajan caminan hasta allí y se van |
| `cargoPoint` | Donde espera la carga de un contrato, junto a la vía del andén. Una estación sin él no tiene carga |
| `cargoHeading` | El rumbo de la vía en el punto de carga |
| `pileShift` | Opcional: metros a lo largo de `cargoHeading` hasta el montón de entrega (por defecto `6`; `0` = en el punto de carga) |

`Config.Workshops` lista los apartaderos de los talleres, donde se repara un tren de compañía parado: `label`, `coords` (el centro) y `radius` (a qué distancia, en metros, tiene que estar el tren). Annesburg, Emerald, Flatneck y Heartland Oil Fields vienen listos. Cada estación también repara: un tren de compañía parado dentro del `radius` de su patio recibe la misma reparación. Donde una estación y un taller se solapan, se usa el taller.

## Pasajeros

El dinero en \$, el tiempo en segundos, las distancias en metros. Todos están dentro de `Config.Passenger`.

| Ajuste | Qué hace | Por defecto |
| - | - | - |
| `TicketItem` | El objeto del inventario del billete | `'rco_train_ticket'` |
| `TicketSeconds` | Cuánto tiempo vale un billete después de comprarlo | `24 * 3600` |
| `BasePrice` / `PricePerKm` | Precio del billete = `BasePrice + PricePerKm × km` a lo largo de la vía. Los pasajeros NPC pagan lo mismo por el trayecto que hicieron | `0.10` / `0.40` |
| `MinMeters` | No hay billete para un viaje más corto que esto | `300` |
| `ArrivalMinutes` | Avisos de llegada para trenes a menos de estos minutos | `10` |
| `NpcMaxOff` / `NpcMaxOn` | Como máximo, tantos pasajeros NPC bajan / suben en cada parada | `4` / `4` |
| `WaitMin` / `WaitMax` | NPC que esperan en el andén a un tren de compañía que llega | `2` / `6` |
| `StopSeconds` | El tren tiene que estar parado este tiempo en una estación antes de que se muevan los NPC | `1` |
| `WaitSeconds` | Los NPC que esperan se rinden tras este tiempo sin parada | `180` |

Un viaje de 10 km cuesta `0.10 + 0.40 × 10 = $4.10`.

## Carga

El dinero en \$, el tiempo en segundos. Todos están dentro de `Config.Cargo`.

| Ajuste | Qué hace | Por defecto |
| - | - | - |
| `MaxOwned` | Vagones que puede tener una compañía | `12` |
| `Price` | El precio de un vagón, pagado con la caja de la compañía; solo se vende a una compañía que tiene locomotora | vagón de pasajeros `900`, vagón cerrado (`closed`) `55`, vagón plataforma (`flatbed`) `110`, furgón de cola `170` |
| `Contracts` | Contratos que lleva un vagón | vagón plataforma `2`, vagón cerrado `1` |
| `Types` | Lo que llevan los contratos: el nombre, y cuántas piezas `{ min, max }` pide un contrato | cajones `{ 6, 12 }` (pilas enteras de 3), barriles `{ 4, 12 }`, troncos `{ 8, 16 }` |
| `PerStation` | Contratos ofrecidos en cada oficina | `3` |
| `RefreshSeconds` | Las ofertas que nadie tomó se cambian después de este tiempo | `1800` |
| `MaxActive` | Contratos que un tren puede llevar a la vez | `3` |
| `PayBase` / `PayPerTonKm` | Pago = `PayBase + PayPerTonKm × tons × km` a lo largo de la vía | `5.0` / `0.18` |
| `DeadlineBase` / `DeadlinePerKm` | Tiempo para entregar después de aceptar: base + por km | `900` / `120` |
| `LatePay` | La parte que se paga cuando ha pasado el plazo | `0.5` |
| `ExpireGrace` | Segundos después del plazo en que el contrato se cancela y sus piezas desaparecen | `600` |

## Mantenimiento de la vía

Aparecen puntos de reparación a lo largo de las líneas. Una compañía con un tren parado cerca de uno lo repara: los obreros del furgón de cola lo hacen cuando el tren tiene furgón de cola, o el jugador lo hace a mano con las herramientas del ténder.

| Ajuste | Qué hace | Por defecto |
| - | - | - |
| `Config.Maintenance.Points` | Puntos de reparación abiertos a la vez en todo el ferrocarril | `6` |
| `Config.Maintenance.RemoteAt` | Metros desde la estación más cercana: a partir de aquí una rotura es tan probable como en cualquier sitio; más cerca es menos frecuente (ninguna en la propia estación) | `1500.0` |
| `Config.Maintenance.Pay` | \$ que se pagan a la caja de la compañía por cada reparación | `2.0` |

## Precios de personalización

`Config.CustomPrices` es lo que cuesta cada cambio del aspecto de la locomotora, pagado con la caja de la compañía. Quitar una pieza es gratis.

| Ajuste | El cambio | Por defecto |
| - | - | - |
| `tint` | Pintura de la locomotora | `8.0` |
| `tenderTint` | Pintura del ténder | `5.0` |
| `front` | Color del frente de la locomotora | `3.0` |
| `livery` | Librea de la locomotora | `12.0` |
| `tenderLivery` | Librea del ténder | `8.0` |
| `star` | Estrella de la puerta | `1.5` |
| `candles` | Par de candeleros de latón junto al faro | `3.0` |
| `toolbox` | Caja de herramientas en el ténder | `2.5` |

## Trenes del servidor

Los propios trenes del servidor siguen un horario cuando ningún tren de jugador necesita la línea. Un tren solo existe en el mundo cerca de los jugadores; lejos de todos, su posición se calcula con el horario. Cede la línea a un tren de jugador que la necesite, y se quita si se queda quieto demasiado tiempo.

| Ajuste | Qué hace | Por defecto |
| - | - | - |
| `enabled` | `false` apaga los trenes del servidor | `true` |
| `Speed` | m/s en marcha (`12` = 27 mph), para una ruta sin velocidad propia | `12.0` |
| `Dwell` | Segundos parado en cada parada, para una ruta sin tiempo de parada propio | `45` |
| `SpawnRadius` | Metros: un jugador así de cerca del lugar donde lo pone el horario lo trae al mundo | `300.0` |
| `DespawnRadius` | Metros: sin nadie así de cerca, sale del mundo (el horario sigue) | `450.0` |
| `GraceSeconds` | Parado lejos de una estación este tiempo: se quita y se recoloca | `120` |
| `YieldSeconds` | Después de ceder la línea (o de que lo quiten), se queda fuera del mundo este tiempo | `300` |
| `Fares` | Vende billetes en la taquilla, como la compañía "Railroad" | `true` |
| `FareCompany` | El id de una compañía que recibe los pasajes; `nil` = el dinero no va a ningún sitio | `nil` |

Todos están dentro de `Config.NpcTrain`. `Config.NpcRoutes` lista las rutas: cada una es su propio tren con su propio horario, de parada en parada y de vuelta.

```lua theme={"dark"}
{ name = 'Bayou Express', stops = { 'station_rho', 'station_nb' },
  train = 'steamline', cars = { 'passenger', 'passenger', 'caboose' }, speed = 14.0 },
```

| Ajuste | Qué hace |
| - | - |
| `name` | El nombre del tren, que ven los jugadores |
| `stops` | Ids de patios en orden (`Config.Yards`) |
| `train` | Un id de tren de `Config.Trains` |
| `cars` | Sus vagones en orden (`'passenger'`, `'closed'`, `'flatbed'`): hasta 3, más un `'caboose'` opcional al final |
| `speed` / `dwell` | Opcional: m/s en marcha / segundos en cada parada |

Vienen listas cuatro rutas: Heartland Local (Valentine, Emerald, Rhodes), Lannahechee Line (Saint Denis, Annesburg), Bayou Express (Rhodes, Saint Denis) y Cumberland Line (Riggs, Wallace, Valentine). Una ruta cuyas paradas no une la vía se deja fuera, con un aviso en la consola del servidor.


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