Die Einstellungen-App in der Karriere ist bewusst klein gehalten: drei Bereiche — Sprache, Einheiten, UI-Skalierung —, die du erreichst, ohne den Spielstand zu verlassen. Sie existiert, damit du die beiden Dinge korrigieren kannst, die mitten in der Karriere am ehesten stören (zu kleiner Text bei hoher Auflösung, falsche Geschwindigkeitseinheit), ohne den Umweg über das Hauptmenü. Jedes Bedienelement schreibt in dieselben config.db-Schlüssel wie die Einstellungen im Hauptmenü — die beiden Bildschirme sind also immer einer Meinung.
So öffnest du sie
- Seitenleiste → Einstellungen (Symbol 19, direkt über Abmelden). In jeder Phase und in der Saison verfügbar.
- Escape, B oder die Zurück-Schaltfläche in der Kopfzeile schließt sie.
Es gibt weder eine Speichern- noch eine Übernehmen-Schaltfläche. Jeder Klick schreibt auf die Festplatte und wirkt sofort.
Sprache
Eine Reihe von Flaggen-Schaltflächen, eine pro verfügbarer Sprache. Die aktive ist anthrazit gefüllt mit bernsteinfarbenem Rand; beim Überfahren erscheint der Name der Sprache in ihrer eigenen Schreibweise als Hilfe-Blase. Eine Sprache ohne Flaggenbild fällt auf ihr Kürzel in Großbuchstaben zurück.
Sechs eingebaute Sprachen werden mit dem Spiel ausgeliefert:
| Kürzel | Name | Flagge |
|---|---|---|
en | English | gb |
fr | Français | fr |
es | Español | es |
it | Italiano | it |
de | Deutsch | de |
pt-BR | Português (BR) | br |
Zusätzlich wird beim Öffnen des Bildschirms mods/lang/*.txt eingelesen: jedes dort gefundene Community-Sprachpaket wird ebenfalls angeboten und nutzt die Kopfzeilen #name: und #flag: aus der Datei für Beschriftung und Flagge. Ein Paket kann keine eingebaute Sprache überschreiben — eine mods/lang/fr.txt wird zugunsten des mitgelieferten Französisch ignoriert. Im Steam-Next-Fest-Demo-Build ist die Mod-Unterstützung zur Kompilierzeit deaktiviert, es werden nur die sechs eingebauten Sprachen gelistet.
Der Wechsel erfolgt im laufenden Betrieb — kein Neustart, kein Neuladen des Spielstands:
- Das Wörterbuch für das neue Kürzel wird geladen.
- Ein globaler Übersetzungs-Epochenzähler wird erhöht, was jede zwischengespeicherte geparste Vorlage im Spiel ungültig macht (die Vorlagen-Caches mischen die Epoche in ihren Variablen-Hash).
ui/languagewird inconfig.dbgeschrieben.- Dieser Bildschirm verwirft seine eigene zwischengespeicherte Vorlage und zeichnet sich im selben Frame in der neuen Sprache neu.
Die Auswahl eines unbekannten Kürzels fällt stillschweigend auf en zurück.
Eine bewusste Ausnahme: die Tutorial-Sprachausgabe ist über die Schritt-ID adressiert, die gesprochenen Hinweise bleiben also in jeder Sprache englisch, auch wenn der Bildschirmtext übersetzt ist.
Einheiten
Zwei Umschalt-Schaltflächen.
| Schaltfläche | Werte | Gilt für |
|---|---|---|
| Geschwindigkeit | km/h ⟷ mph | „Geschwindigkeitseinheit im gesamten Spiel (HUD, Fahrzeugdaten, Profile).” |
| Temperatur | °C ⟷ °F | „Temperatureinheit für Reifen, Motor und Wetteranzeigen.” |
Jeder Klick kippt den Wert, schiebt ihn in die gemeinsamen Win95-Formatierungshelfer (set_speed_unit_kmh / set_temp_unit_c), damit sich jeder Bildschirm in der neuen Einheit neu zeichnet, und schreibt den Schlüssel sofort. Das sind reine Anzeigeumrechnungen — an der Simulation ändert sich nichts.
UI-Skalierung
Drei Voreinstellungen für den Zoom der Win95-Karriereoberfläche: 100 %, 125 %, 150 %. Die aktive steht in eckigen Klammern ([125%]). Hilfetext: „Zoom der gesamten Karriereoberfläche. Wirkt sofort.”
Ein Klick auf eine Voreinstellung ruft markup::set_ui_scale auf, schreibt den Schlüssel und verwirft die zwischengespeicherte Vorlage — weil sich die Größe des Layouts ändert, muss die geparste Vorlage neu aufgebaut werden.
Das ist die Lösung für zu kleinen Text auf einem hochauflösenden Bildschirm und zugleich die Einstellung, die am ehesten eine Liste über ihr Fenster hinauslaufen lässt. Dafür ist gesorgt: jeder Seitenleisten-Bildschirm außer dem Desktop nutzt den generischen Seiten-Scroll, dessen Bereich aus der tatsächlich gelayouteten Inhaltshöhe gemessen wird. Wirkt bei 150 % trotzdem etwas abgeschnitten, enthält die Zeile [app-scroll], die bei jedem App-Start in debug.log geschrieben wird, ui_scale, viewport_h, content_h, overflow und max_scroll — genau diese Zeile braucht ein Fehlerbericht. Siehe Karriere-Desktop & Seitenleiste.
Was diese App nicht abdeckt
Die Karriere-Einstellungen sind eine Teilmenge. Insbesondere ist die Renn-HUD-Skalierung nicht hier — sie liegt im Hauptmenü unter Einstellungen → Anzeige, beschriftet als „Renn-HUD-Skalierung” mit denselben Voreinstellungen 100 / 125 / 150, und schreibt hud.race_hud_scale. Da das Renn-HUD nur während einer laufenden Session existiert, ist der praktische Weg das Pausenmenü im Rennen: Escape → Einstellungen während einer Session öffnet den vollständigen Einstellungen-Bildschirm als Overlay, und das Rennen liest die HUD-Skalierung beim Schließen neu ein.
Alles Weitere bleibt ebenfalls im vollständigen Einstellungen-Bildschirm: Anzeige (VSync, FPS-Limit, Vollbild, Auflösung, Replay-Aufzeichnung), Ton (Motor- / Funk- / Fahrer- / Musiklautstärke), Simulations-Regler, Karriere-Regler (Preisgelder, finanzielle Intelligenz der KI, Balancing-Multiplikatoren), Tastenbelegung, Ereignisse (Auto-Aktionen pro Ereignis in laufenden Sessions) und der nur mit --dev verfügbare Dev-Reiter.
Die Schlüssel, die sie schreibt
| Bedienelement | Bereich | Schlüssel | Geschriebener Wert |
|---|---|---|---|
| Sprache | ui | language | das Sprachkürzel, z. B. fr, pt-BR |
| Geschwindigkeitseinheit | hud | speed_unit_kmh | 1 = km/h, 0 = mph |
| Temperatureinheit | hud | temp_unit_c | 1 = °C, 0 = °F |
| UI-Skalierung | hud | ui_scale | 1.00 / 1.25 / 1.50 |
| (nur Hauptmenü-Einstellungen) | hud | race_hud_scale | 1.00 / 1.25 / 1.50 |
config.db ist eine SQLite-Datei mit einer einzigen Tabelle config(scope, key, value), primärschlüsselnd auf (scope, key). Lesevorgänge, die nichts finden, fallen auf einen Standardwert zurück: ui_scale → 1.0, beide Einheiten-Flags → wahr (km/h und °C).
Für Fortgeschrittene
-
Seit 0.5.1 liegt die zur Laufzeit genutzte
config.dbin deinem Benutzerdatenverzeichnis, nicht mehr im Spielordner. Einstellungen sind Spielerdaten, und ein Steam-Depot-Update hat deine angepassten Werte früher bei jedem Patch überschrieben.Plattform Ort Linux $XDG_DATA_HOME/TheUndercut/sonst~/.local/share/TheUndercut/Windows %APPDATA%\TheUndercut\macOS ~/Library/Application Support/TheUndercut/Eine Umgebungsvariable
UNDERCUT_DATA_DIRhat Vorrang, und eine Portable-Marker-Datei neben der ausführbaren Datei erzwingt den Spielordner. Die im Installationsverzeichnis mitgelieferteconfig.dbist nur die Saat: sie mitsqlite3zu bearbeiten ändert nichts an dem, was ein laufendes Spiel liest. -
Die Karriere-App schreibt beim Klick, die Hauptmenü-Einstellungen beim Speichern. Beide wenden ihre Änderungen live an, aber der vollständige Einstellungen-Bildschirm speichert nur, wenn du bestätigst. Stellst du die Einheiten im Hauptmenü ein und beendest ohne zu speichern, sind sie wieder weg. Die Karriere-App hat diese Falle nicht.
-
Gespeicherte Einstellungen werden zusammengeführt, nicht überschrieben. Schlüssel, die du (oder ein Mod) von Hand ergänzt hast, bleiben erhalten.
-
Schreibvorgänge in
config.dblaufen mitsynchronous=NORMALunter WAL. Das ist sicher gegen Datenverlust und bedeutet, dass eine Einstellungsänderung nicht pro Schlüssel ein fsync auslöst. Der Karriere-Speicher-Pfad behält bewusstsynchronous=FULL— hier geht es nur um Voreinstellungen. -
Erzwungene Migrationen können einen von dir angepassten Schlüssel überschreiben.
CONFIG_MIGRATIONS-Zeilen laufen genau einmal proconfig.db, adressiert über eine Migrations-ID, und existieren, damit ein Balancing-Fix jeden bestehenden Spieler erreicht. Springt ein von dir gesetzter Wert nach einem Update zurück, ist das der Grund; eine Zeile[config_db] migration <id> applied: …indebug.logbenennt sie. -
Auf Steam überschreibt ein Depot-Update die mitgelieferte
config.db-Saat, nicht deine Benutzerkopie.display_config.txtist aus demselben Grund bewusst vom Packen ausgenommen — die VSync-/FPS-Limit-Einstellung eines Spielers bei jedem Update zu überschreiben, wäre unhöflich. -
Sprachpakete sind Inhalte, keine Spielstanddaten. Sie bleiben im
mods/lang/des Spielordners, werden also nicht cloud-synchronisiert und geraten nicht mit dem Workshop in Konflikt. -
Die gesamte Oberfläche ist auf Englisch als Übersetzungsschlüssel geschrieben. Jede dem Spiel hinzugefügte Zeichenkette wird mit ihrem
lang/fr.txt-Gegenstück ausgeliefert, undfr.txtist die Referenzdatei, aus der die anderen fünf fortgeschrieben werden. Ein Auslieferungs-Build muss in jeder eingebauten Sprache 0 MISSING melden.
Häufige Fehler
- Die
config.dbim Installationsordner bearbeiten. Seit 0.5.1 ist das nur noch die Saat. Ändere die Einstellungen im Spiel oder bearbeite die Kopie in deinem Benutzerdatenverzeichnis. - Hier nach der Renn-HUD-Skalierung suchen. Sie liegt im Hauptmenü unter Einstellungen → Anzeige oder im Escape → Einstellungen-Overlay im Rennen.
- Hier nach Lautstärken, Preisgeldern oder KI-Reglern suchen. Die stehen in den Reitern Ton / Karriere des vollständigen Einstellungen-Bildschirms.
- Einheiten im Hauptmenü setzen und ohne Speichern beenden. Der Hauptmenü-Bildschirm speichert beim Speichern, die Karriere-App beim Klick.
- Erwarten, dass 150 % UI-Skalierung Listen zerlegt. Tut sie nicht — der Seiten-Scroll misst den tatsächlichen Inhalt. Ist doch etwas abgeschnitten, hol die
[app-scroll]-Zeile ausdebug.logfür den Bericht. - Ein Sprachpaket nach einer eingebauten Sprache benennen.
mods/lang/de.txtwird schlicht ignoriert; nimm ein unbenutztes Kürzel. - Erwarten, dass die Tutorial-Sprachausgabe übersetzt wird. Sie ist über die Schritt-ID adressiert und bleibt bewusst englisch.
Siehe auch
- Karriere-Desktop & Seitenleiste — wie die UI-Skalierung mit dem Seiten-Scroll zusammenspielt
- Karriere-Hub — der Bildschirm, den eine Skalierungsänderung am stärksten trifft
- Einstellungen → Anzeige — VSync, FPS-Limit, Replay-Aufzeichnung, Renn-HUD-Skalierung
- Einstellungen → Ton — die Lautstärkeregler
- Einstellungen → Karriere — Preisgelder, finanzielle Intelligenz der KI, Balancing-Regler
- Einstellungen → Simulation — die Physik- und KI-Regler
- Telemetrie — wo die Einheiteneinstellungen in den Datenansichten auftauchen