FS#5137 - Vehicles have a 150% maintenance rate

Attached to Project: OpenTTD
Opened by gramm (gramm) - Wednesday, 04 April 2012, 15:28 GMT
Last edited by Remko Bijker (Rubidium) - Thursday, 14 February 2013, 17:24 GMT
Type Bug
Category Vehicles
Status Closed
Assigned To No-one
Operating System All
Severity Medium
Priority Normal
Reported Version 1.1.5
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


It is possible for the vehicles to (accidentally) have a 150% maintenance rate. In which case they seem to never go to maintenance unless scheduled.

To recreate:

0. Start a new game, look at the Advanced Settings, make sure "Maintenance intervals are in percents" is OFF and "default maintenance interval for road vehicles" is 150 days.
1. Create a road vehicle depot.
2. Buy one truck.
3. Change "Maintenance intervals are in percents" from NO to YES
4. The truck now has a maintenance interval of 150%.

Needless to say, this also happens with trains and other vehicles. Basically, what happens is, if a vehicle is stopped in a depot while the Advanced Setting ""Maintenance intervals are in percents" is switch, then the maintenance interval changes from Days to Percent without being converted. So, 150 days become 150% and a value of let's say 10% will become 10 days.
This task depends upon

Closed by  Remko Bijker (Rubidium)
Thursday, 14 February 2013, 17:24 GMT
Reason for closing:  Fixed
Additional comments about closing:  In r24998
Comment by Ingo von Borstel (planetmaker) - Thursday, 05 April 2012, 09:54 GMT
  • Field changed: Status (New → Confirmed)
What behaviour exactly do you expect and how could or should the values be converted?
Comment by gramm (gramm) - Thursday, 05 April 2012, 14:16 GMT
It is not possible to manually set a vehicle to a maintenance rate superior to 90%. Therefore, when switching from days to percent the maintenance rate should be limited to 90% maximum.

The best solution I see would be to convert between percents and days by calculating the vehicle reliability loss in the "maintenance in days" interval and setting this value as "maintenance interval in percent". So, let's say my train lose 1% of its maximum reliability in 10 days, then a maintenance interval of 70 days would become a interval of 7%. I am not sure, however, that this is how the game mechanics work and how difficult it is to implement.

The 90% limit seems to be a good enough solution. As thing are currently, switching between days and percent mid-game has disastrous consequences - especially because you can't change multiple vehicles' maintenance rate in one click.
Comment by Xiong (xiong) - Saturday, 07 April 2012, 23:15 GMT
I agree with OP. 150% is absurd. gramm is correct to say a conversion of some sort might be made from days to percent. I don't think 90% is a good idea, though; breakdowns are near-continuous at some reliability level < 10%. servint_ispercent = true implies servicing demanded when such a percent has been *lost* from max reliability, just as servint_ispercent = false (intervals in days) imply such a number of days have *gone* since last service. Counter-intuitive but completely logical.

There are settings for "default" maintenance intervals:


I can't personally think of any reason to set the interval for a particular vehicle differently from the rest of its class; any change to these settings should simply propagate to all vehicles immediately. (They don't, of course; they apply only to new vehicles.)

Some would disagree, of course. I suggest a simple "reset" button that sets *all* vehicles to match the so-called "default" settings, however they have been set. No manual approach is feasible for a couple hundred vehicles; nor have I been able to discover how to do it in Console.

Comment by Thijs Marinussen (Yexo) - Friday, 18 May 2012, 20:19 GMT Comment by Peter Nelson (peter1138) - Sunday, 27 January 2013, 20:47 GMT
3 patches to implement per-vehicle settings for default/custom service intervals and days/percentage per vehicle: