Back to Main Page

Bus lights and dirty cars, the final parts of an unrelated family of mods.

Thought of the day:

Give the worst artist the best brushes and they still won't be able to paint a picture. Give the best artist a piece of chalk and you'll still get a piece of art.

Translation: If you hide behind the tools you use, as a reason for the end result being bad, then maybe the fault is what's holding the tools.

Air Vehicle Effects / Random Dirty Cars / Bus Lights - random dirt and elusive lights

The final two parts of this combo mod came from two sources, the dirty cars was another request on the forums and is probably one of the simpler mods I created. The premise was simple, stop all the cars from looking clean in areas like the city.

What the mod simply did, was to assign a dirt range based on potential usage types of the vehicles and a reflection of how their owners might look after them. High cost sports cars or executive vehicles were likely to be owned by people keen to keep them clean. Mid-range were probably family cars, which meant they could probably go a while before the owner got round to getting them cleaned. Low-range cars were possibly neglected and just driven without care. SUV's were more likely to go off-road, commercial vehicles got heavy usage, that kind of thing.

On top of that, there were also defined dirty zones, where you could specify an additional dirt bias value that was applied to cars on top of the natural dirt value. The end result was a city full of cars that was more like real-life, so that was pretty successful. The only complication was ensuring that you didn't apply dirt to the same vehicle more than once. I originally tried to make unique IDs from components and number plates but that proved a problem when I realised number plates weren't unique. I then discovered that the Vehicle.Handle was unique, so that was my ID. So I simply compared the ID with a collection and if it wasn't in the collection, I applied the dirt and then added that ID to the collection.

Bus Lights was something that came about when I was researching a bus mod. I planned on having defined routes, driver shifts, all kinds of things. But with the AI's inability to drive a bus round a corner properly and the problem of Peds not starting tasks unless they were visible, the plan got scrapped. As part of this mod though, I wanted the buses to have interior lights at night. Buses don't run without interior lights when they have passengers onboard, it would be dangerous for passengers if they did, so adding lights would be more realistic.

My first attempt was by repositioning the neons into the inside, which worked but they were really dull. After the amount of effort it took to even understand how ZM3 worked, just so that I could get them into this position, the result was very disappointing. So I decided to try and use scripted lights along the interior of the bus, that moved with the bus. There was a problem with slight light-leakage on certain buses but overall, the effect worked perfectly and really added to the atmosphere of the game, as you could now see who was on these night buses. The lights didn't need to cast shadows, there were never a huge numbers of buses on screen, so it was ideal.

The buses that had these lights were the normal city bus, the airport bus, coach and the rental bus. Each bus had its own configuration of lights to fit the interior. Here's a short video of how the effect looked.


So I now had three mods, all requiring collections of vehicles to be processed but all being able to share from one single collection process. It was the perfect example of how and when to optimise and I was extremely pleased with the end result. I am always conscious of the amount of performance my mods use, the game isn't there for my mods exclusively, so you have to use and share resources responsibly.

With the recent creation of my Vehicle Effects Pool, the whole process of collection and effects has been further refined.