Skip to content

Passengers, Fares and Ratings

noteMASTER11 edited this page Jul 14, 2026 · 2 revisions

Passengers, Fares and Ratings

This page describes passenger work. Cargo deliveries use separate weight premiums, collision-only damage, and delivery ratings documented in Cargo Deliveries.

Passenger identity and chat

Passenger names are formed by independently selecting one of 32 first names and one of 32 surnames from identity.lua.

After an offer is accepted, the UI may schedule one to three messages during the toPickup phase. Each session selects one emoji theme—cheerful, sad, excited, sleepy, dreamy, or grumpy—and avoids immediately repeating the same message. Chat exists only in the phone UI and is not sent to the global BeamNG notification tray.

Dynamic mood

The runtime field remains named passengerCalmness for compatibility, but the UI presents it as Passenger mood.

  • Initial value: random integer from 0 to 100.
  • Maximum positive recovery: initial mood + 40 percentage points, capped at 100.
  • Perfect passenger-route progress can contribute up to 40 total mood points.
  • Positive changes reduce accumulated passenger stress.
  • Negative events temporarily block good-driving recovery.

The UI uses passengerMoodChangeId and alternates animation names so every individual change restarts the green or red border animation.

Mood losses

Event Base effect
First late-pickup event −4
Additional 20 seconds late −2
Speeding episode −2 plus up to 4 for excess speed
Continued speeding −1 per additional 8 seconds
Collision −10 plus up to 15 based on damage delta
Harsh manoeuvre −4 plus up to 4 based on threshold excess
Rush expiry −6
Passenger fuel stop approximately −2 to −6

Mood-dependent penalty disposition

Each eligible penalty episode receives a disposition when it starts.

ignore chance = 0.70 × (mood / 100)^1.15

For mood below 50:

sensitivity = (50 − mood) / 50
multiplier  = 1 + sensitivity^1.25

At mood 100, ignore chance reaches 70%. At mood 0, ignore chance is zero and the multiplier reaches 2. The disposition is retained for a continuous speeding or collision episode so a single event cannot randomly change treatment every update.

Passenger stress and early exit

Stress sensitivity decreases as mood improves:

sensitivity = 1.35 − 0.70 × moodRatio
stress threshold = 72 + 23 × moodRatio

When accumulated stress reaches the threshold, the passenger demands an immediate stop. The vehicle telemetry extension forces braking, the GE extension freezes the vehicle after it nearly stops, and a five-second exit sequence begins.

No fare is paid. The persistent rating is multiplied by:

Difficulty Rating reduction
Elementary 10%
Easy 20%
Standard 30%
Professional 45%

Fare formula

ETA uses 40 km/h:

ETA minutes = distanceKm / 40 × 60 + scheduledStopSeconds / 60
base fare   = $3.25 + distanceKm × $1.55 + ETA minutes × $0.20

Amounts are rounded to cents.

Driver-rating bonus

Ratings at or below 3.99 receive no bonus. Between 3.99 and 5.00 the rate increases linearly to 15%:

progress = clamp(rating − 3.99, 0, 1.01) / 1.01
rating bonus rate = progress × 0.15

The rating-adjusted fare is calculated before any rush bonus.

Rush bonus

Rush rides add a random 22–42% to the rating-adjusted fare. Their time limit is 72–86% of the normal ETA, with a minimum of 75 seconds.

If the timer expires, only the rush bonus is removed. The base fare and driver-rating bonus remain eligible.

Fare penalties

The final payable fare is:

eligible fare × (1 − combined penalty)

Combined penalty is capped at 50%. Components include speeding, collision damage, harsh manoeuvres, late pickup, and passenger fuel stops.

Speeding

The active threshold is the greater of a fixed km/h allowance and a percentage of the road speed limit. The episode must remain above the threshold for the configured grace period. Sustained penalty growth depends on excess speed and dtSim.

Collision

Vehicle telemetry reports total beam damage. A collision is recognized from a damage increase above the difficulty threshold. A three-second cooldown groups continued damage from the same impact and prevents duplicate event counting.

Harsh manoeuvre

Longitudinal and lateral g-force thresholds use hysteresis: a higher trigger threshold and a lower release threshold. This prevents one manoeuvre from being counted repeatedly while the signal oscillates.

Difficulty

Difficulty changes tolerances and caps, not the route itself. Elementary has the largest speed/g-force tolerances and smallest penalty rates; Professional has the strictest values.

Ride rating and reviews

For a completed ride:

ride rating = clamp(5 − penalty × 8 − ratedCollisions × 0.15, 1, 5)

The overall driver rating is the arithmetic mean of completed ride ratings. Passenger reviews use an emoji selected from the ride rating. Early passenger exit and driver abandonment record negative review outcomes with zero fare.

Clone this wiki locally