Skip to content

Settings, Localization and Audio

noteMASTER11 edited this page Jul 14, 2026 · 17 revisions

Settings, Localization and Audio

Settings reference

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

Localization architecture

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.14.1 has 199 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.

Adding or changing a string

  1. Add the key to all seven objects in locales.json.
  2. Use t("key") or t("key", values) from the Angular scope.
  3. Keep placeholders identical across locales.
  4. 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.

Audio groups

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.

BeamNG Interface Volume

The UI reads settings.getValue("AudioUiVol") and listens for SettingsChanged. Effective sound volume is:

pool base volume × BeamNG AudioUiVol

Silent mode prevents playback before a pool player is selected. Refueling itself also uses BeamNG career petrol/electric UI events through Engine.Audio.playOnce.

Legacy settings import

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.

Clone this wiki locally