-
Notifications
You must be signed in to change notification settings - Fork 3
Settings, Localization and Audio
| Setting | Values | Effect |
|---|---|---|
| Language |
en, ru, de, fr, es, pl, uk
|
Selects all phone UI strings |
| Remember language | Boolean | Persists a non-default language; English is otherwise used initially |
| Text size | 0–5 | Selects a phone font-scale class without resizing the UI App |
| App sound volume | 0.00–1.00 | Applies an additional multiplier to all TaxiDriver-managed sounds |
| Difficulty | Elementary, Easy, Standard, Professional | Applies speed, damage, g-force, and penalty parameters |
| Road guidance | Boolean | Controls ground markers/arrows; phone map remains available |
| Silent mode | Boolean | Mutes all TaxiDriver-managed sounds |
| Realistic mode | Boolean | Enables paid refueling on the next shift |
Saving settings closes the page and returns to the previous screen. If a route is active, navigation is reapplied so guidance visibility changes immediately.
All UI strings live in:
ui/modules/apps/TaxiDriverHUD/locales.json
The UI loads the document once when app.js is evaluated. English is the fallback language. Every locale must contain the same key set; version 2.18.0 has 229 keys per locale.
Phone notifications contain a localization key and value map rather than pre-rendered text:
{
id: 42,
key: "notify_rideComplete",
values: { fare: "$12.85" },
severity: "success"
}The UI performs placeholder replacement. Notifications remain inside the phone and are not sent through the global game notification tray.
Passenger emoji chat deliberately contains no words and does not require locale variants.
- Add the key to all seven objects in
locales.json. - Use
t("key")ort("key", values)from the Angular scope. - Keep placeholders identical across locales.
- Validate that every locale has exactly the English key set.
Do not insert user-visible English or Russian strings directly into app.html when a localization key can be used.
| Pool ID | File | Typical event |
|---|---|---|
click |
taxidriver_ui_click.mp3 |
Button, input, or selector interaction |
newRide |
taxidriver_new_ride.mp3 |
Each newly displayed floating offer |
offline |
taxidriver_offline.mp3 |
Taxi mode goes offline |
online |
taxidriver_online.mp3 |
Taxi mode goes online |
violation |
taxidriver_violation_ping.mp3 |
New penalty event |
message |
taxidriver_passenger_message.mp3 |
Passenger emoji message |
Audio elements are pooled so repeated events can restart promptly without waiting for a previous player object.
The UI reads settings.getValue("AudioUiVol") and listens for SettingsChanged. Effective sound volume is:
pool base volume × BeamNG AudioUiVol × TaxiDriver appVolume
The settings page applies appVolume immediately while the slider is moved. The adjacent localized Test button selects one of the six audio pools at random and plays it with the current effective volume. Its click is excluded from the generic click handler so the test produces one sound rather than two.
Silent mode prevents both normal and test playback before a pool player is selected. Refueling itself also uses BeamNG career petrol/electric UI events through Engine.Audio.playOnce.
Older UI versions stored settings in browser localStorage under taxiDriverHUD.settings.v1. If the Lua settings file is missing, the UI offers the legacy data to saveSettings, then removes the local-storage entry after the backend confirms canonical settings.
TaxiDriver Reloaded documentation · Version 4.0.3 · BeamNG.drive 0.39
- Installation and Quick Start
- Gameplay and Ride Lifecycle
- Order Generation and Routing
- Passengers, Fares and Ratings
- Cargo Deliveries
- Realistic Refueling
- Driver Profile and Persistence
- Settings, Localization and Audio
- Navigation and Map Controls
- External Web UI
- Driver UI Design
- AI Driver Engine 0.39
- AI Driver and Recovery
- Fleet Operations
- Troubleshooting and Compatibility