Skip to main content

Vehicle Health and Maintenance

archived
  • All vehicles has vehicle condition that has a range from 0% to 100%. Every brand new vehicle starts at 100%.
  • new vehicle starts at 100.
  • As you use them, their health declines with steady rate.
  • You are required to maintain the car at Car Mechanic or Car Dealership after every 2500 km amount of kilometres.
  • Every car will have a total lifetime distance of 20,000 km.
  • You can drive a car without maintaining it, but its health declines quicker (can make its rate increase the more appointments you miss).
  • After  vehicle health hits 0.0%:
    • Car breaks down and gets sent off to scrapyard (removed from player).

Scrapped these:

  • Certain factors cause the vehicle health to decline further:
    • Hit metal or concrete objects.
    • Hit other players.

Vehicle Condition System

Condition Range

  • Stored as condition_value (int): 0 = 100% (brand new), 100,000 = 0% (destroyed).
  • Display formula: 100 - (condition_value / 1000.0) → shows as percentage.

Degradation Rate

  • Base rate: 100,000 points over 25,000 km1 point per 250 meters. 
  • Service interval: every 2,500 km. 
  • Each properly-maintained 2,500 km costs ~10,000 points (10% condition).
  • Missed services increase the degradation rate (each missed appointment stacks further).

Servicing

  • Location: Car Mechanic only.only
  • Cost: €5,000 flat feefee.
    • In the case that a player has missed multiple appointments, the formula will be: (€5,000 * missed_appointments)
  • Restores: 2.5% condition (2,500 points off condition_value)
  • Resets: missed appointment counter back to 0. 
  • RecordsUpdates newthe last_service_distance on the vehicle.vehicle

Car Breakdown (0% condition)

  • Player is force-spectated.spectated
  • Server-wide announcement in chat.chat
  • Vehicle removed from player (registration deletedis or scrapped).
  • DB record: still TBD - keep or delete?nulled)

New DB Columns Needed on VehicleRegistration.

Column

Data Type

Purpose

condition_value

int

Already added, needs migration

missed_services

int

Tracks skipped 2,500 km checkpoints

last_service_distance

double

Odometer at last service


Still Open

- DB record on scrap: hard delete or keep with a scrapped flag?

- Warning at low condition (e.g. 10%)? Not discussed yet