La app de Ajustes dentro de la carrera es una pantalla deliberadamente pequeña: tres secciones — Idioma, Unidades, Escala de la interfaz — a las que llegas sin salir de una partida guardada. Existe para que puedas corregir las dos cosas que más suelen molestar a mitad de carrera (texto demasiado pequeño en alta resolución, unidad de velocidad equivocada) sin volver al menú principal. Cada control escribe en las mismas claves de config.db que usan los Ajustes del menú principal, así que ambas pantallas siempre coinciden.
Cómo abrirla
- Barra lateral → Ajustes (icono 19, justo encima de Cerrar sesión). Disponible en todas las fases y durante la temporada.
- Escape, B, o el botón Atrás de la cabecera la cierra.
No hay botón Guardar ni botón Aplicar. Cada clic escribe en disco y surte efecto de inmediato.
Idioma
Una fila de botones con banderas, uno por idioma disponible. El activo aparece relleno en antracita con borde ámbar; al pasar el ratón por cualquiera se muestra el nombre del idioma en su propia lengua, en un globo de ayuda. Un idioma cuya imagen de bandera falte recurre a su código en mayúsculas.
Seis idiomas integrados vienen con el juego:
| Código | Nombre | Bandera |
|---|---|---|
en | English | gb |
fr | Français | fr |
es | Español | es |
it | Italiano | it |
de | Deutsch | de |
pt-BR | Português (BR) | br |
Además de estos, la lista se escanea desde mods/lang/*.txt en el momento en que se abre la pantalla: cualquier paquete de idioma de la comunidad encontrado ahí también se ofrece, usando las líneas de cabecera #name: y #flag: del archivo para su etiqueta y su bandera. Un paquete no puede eclipsar a un idioma integrado — un mods/lang/fr.txt se ignora en favor del francés incluido. En la build de demostración del Steam Next Fest el soporte de mods está desactivado en tiempo de compilación y solo se listan los seis idiomas integrados.
El cambio es en caliente — sin reinicio, sin recargar la partida:
- Se carga el diccionario del nuevo código.
- Se incrementa un contador global de época de traducción, lo que invalida todas las plantillas analizadas en caché del juego (las cachés de plantillas mezclan la época en su hash de variables).
- Se escribe
ui/languageenconfig.db. - Esta pantalla descarta su propia plantilla en caché para redibujarse en el nuevo idioma en el mismo fotograma.
Seleccionar un código desconocido recurre silenciosamente a en.
Una excepción deliberada: la voz en off del tutorial está indexada por identificador de paso, así que las indicaciones habladas siguen en inglés en todos los idiomas, aunque el texto en pantalla sí se traduzca.
Unidades
Dos botones de alternancia.
| Botón | Valores | Se aplica a |
|---|---|---|
| Velocidad | km/h ⟷ mph | «Unidad de velocidad usada en todo el juego (HUD, datos del coche, perfiles).» |
| Temperatura | °C ⟷ °F | «Unidad de temperatura para neumáticos, motor y lecturas meteorológicas.» |
Cada clic invierte el valor, lo empuja a los ayudantes de formato Win95 compartidos (set_speed_unit_kmh / set_temp_unit_c) para que cada pantalla se redibuje en la nueva unidad, y escribe la clave al instante. Son solo conversiones de visualización — nada cambia en la simulación.
Escala de la interfaz
Tres preajustes para el zoom de la interfaz de carrera Win95: 100 %, 125 %, 150 %. El activo aparece entre corchetes ([125%]). Texto al pasar el ratón: «Zoom de toda la interfaz de carrera. Se aplica de inmediato.»
Hacer clic en un preajuste llama a markup::set_ui_scale, escribe la clave y descarta la plantilla en caché — como el diseño cambia de tamaño, la plantilla analizada debe reconstruirse.
Esta es la solución para el texto pequeño en una pantalla de alta densidad, y también el ajuste con más probabilidades de hacer que una lista desborde su ventana. Está contemplado: todas las pantallas de la barra lateral salvo el Escritorio se acogen al desplazamiento de página genérico, cuyo rango se mide a partir de la altura real del contenido maquetado. Si algo sigue pareciendo cortado al 150 %, la línea [app-scroll] que se escribe en debug.log cada vez que se abre una app contiene ui_scale, viewport_h, content_h, overflow y max_scroll — esa es la línea que necesita un informe de error. Véase Escritorio y barra lateral de carrera.
Lo que esta app no cubre
Los Ajustes de carrera son un subconjunto. En particular, la escala del HUD de carrera no está aquí — vive en Ajustes → Pantalla del menú principal, etiquetada como «Escala del HUD de carrera» con los mismos preajustes 100 / 125 / 150, y escribe hud.race_hud_scale. Como el HUD de carrera solo existe durante una sesión en vivo, la vía práctica es el menú de pausa en carrera: Escape → Ajustes durante una sesión abre la pantalla completa de Ajustes como superposición, y la carrera vuelve a leer la escala del HUD al cerrarla.
Todo lo demás también permanece en la pantalla completa de Ajustes: Pantalla (vsync, límite de fps, pantalla completa, resolución, grabación de repeticiones), Audio (volúmenes de motor / radio / piloto / música), deslizadores de Simulación, deslizadores de Carrera (bolsas de premios, inteligencia financiera de la IA, multiplicadores de equilibrio), Atajos de teclado, Eventos (acciones automáticas por evento en sesiones en vivo) y la pestaña Dev exclusiva del modo --dev.
Las claves que escribe
| Control | Ámbito | Clave | Valor escrito |
|---|---|---|---|
| Idioma | ui | language | el código de idioma, p. ej. fr, pt-BR |
| Unidad de velocidad | hud | speed_unit_kmh | 1 = km/h, 0 = mph |
| Unidad de temperatura | hud | temp_unit_c | 1 = °C, 0 = °F |
| Escala de la interfaz | hud | ui_scale | 1.00 / 1.25 / 1.50 |
| (solo Ajustes del menú principal) | hud | race_hud_scale | 1.00 / 1.25 / 1.50 |
config.db es un archivo SQLite con una única tabla config(scope, key, value), con clave primaria en (scope, key). Las lecturas que no encuentran nada recurren a un valor por defecto: ui_scale → 1.0, ambos indicadores de unidad → verdadero (km/h y °C).
Para profundizar
-
Desde la 0.5.1 el
config.dbde ejecución vive en tu directorio de datos de usuario, ya no en la carpeta del juego. Los ajustes son datos del jugador, y una actualización del depósito de Steam solía sobrescribir tus valores ajustados en cada parche.Plataforma Ubicación Linux $XDG_DATA_HOME/TheUndercut/si no~/.local/share/TheUndercut/Windows %APPDATA%\TheUndercut\macOS ~/Library/Application Support/TheUndercut/Una variable de entorno
UNDERCUT_DATA_DIRtiene prioridad, y un archivo marcador «portable» junto al ejecutable fuerza la carpeta del juego. Elconfig.dbincluido en el directorio de instalación es solo la semilla: editarlo consqlite3no cambia lo que lee una partida en marcha. -
La app de carrera escribe al hacer clic; los Ajustes del menú principal escriben al guardar. Ambas aplican sus cambios en vivo, pero la pantalla completa de Ajustes solo persiste cuando confirmas. Si fijas las unidades desde el menú principal y sales sin guardar, se revierten. La app de carrera no tiene esa trampa.
-
Los guardados de ajustes se fusionan, no se sobrescriben. Las claves que tú (o un mod) añadisteis a mano se conservan.
-
Las escrituras en
config.dbusansynchronous=NORMALbajo WAL. Es seguro frente a corrupción, y significa que un cambio de ajuste no hace fsync por clave. La ruta de guardado de la carrera mantiene deliberadamentesynchronous=FULL— aquí solo se trata de preferencias. -
Las migraciones forzadas pueden sobrescribir una clave que ajustaste. Las filas
CONFIG_MIGRATIONSse ejecutan exactamente una vez porconfig.db, indexadas por un identificador de migración, y existen para que una corrección de equilibrio llegue a todos los jugadores existentes. Si un valor que fijaste se revierte tras una actualización, es por eso; una línea[config_db] migration <id> applied: …endebug.logla identifica. -
En Steam, una actualización del depósito sobrescribe la semilla
config.dbincluida, no tu copia de usuario.display_config.txtestá deliberadamente excluido del empaquetado por la misma razón — sobrescribir el vsync/límite de fps de un jugador en cada actualización sería grosero. -
Los paquetes de idioma son contenido, no datos guardados. Permanecen en el
mods/lang/de la carpeta del juego, así que no se sincronizan en la nube ni entran en conflicto con el Workshop. -
Toda la interfaz está escrita en inglés como clave de traducción. Cualquier cadena añadida al juego se entrega con su pareja
lang/fr.txt, yfr.txtes el archivo de referencia desde el que se propagan los otros cinco. Una build de lanzamiento debe reportar 0 MISSING en todos los idiomas integrados.
Errores frecuentes
- Editar el
config.dbde la carpeta de instalación. Desde la 0.5.1 eso es solo la semilla. Cambia los ajustes en el juego, o edita la copia en tu directorio de datos de usuario. - Buscar aquí la escala del HUD de carrera. Está en Ajustes → Pantalla del menú principal, o en la superposición Escape → Ajustes durante la carrera.
- Buscar aquí los volúmenes, las bolsas de premios o los deslizadores de IA. Están en las pestañas Audio / Carrera de la pantalla completa de Ajustes.
- Fijar unidades desde el menú principal y salir sin guardar. La pantalla del menú principal persiste al guardar; la app de carrera persiste al hacer clic.
- Esperar que la escala al 150 % rompa las listas. No lo hace — el desplazamiento de página mide el contenido real. Si algo sí queda cortado, coge la línea
[app-scroll]dedebug.logpara el informe. - Instalar un paquete de idioma con el nombre de uno integrado.
mods/lang/de.txtsimplemente se ignorará; usa un código sin usar. - Esperar que la voz en off del tutorial se traduzca. Está indexada por identificador de paso y sigue en inglés por diseño.
Véase también
- Escritorio y barra lateral de carrera — cómo interactúa la escala de la interfaz con el desplazamiento de página
- Hub de carrera — la pantalla más afectada por un cambio de escala
- Ajustes → Pantalla — vsync, límite de fps, grabación de repeticiones, escala del HUD de carrera
- Ajustes → Audio — los deslizadores de volumen
- Ajustes → Carrera — bolsas de premios, inteligencia financiera de la IA, deslizadores de equilibrio
- Ajustes → Simulación — los deslizadores de física e IA
- Telemetría — dónde aparecen los ajustes de unidades en las vistas de datos