Back to Main Page


A page about the development of the Driver Information System, a feature filled vehicle system that adds many real-life car features and functions to GTAV.

 

Driver Information System - is what DIS is.


It's sometimes said that the biggest things grow from the smallest seeds, "Tall trees from small acorns grow" is the actual saying. But this mod was a result of a couple of questions from Tobsi Cred and a small amount of research into a seemingly missing piece of vehicle status information. The original idea solely belongs to Tobsi Cred as he already had some of the functionality in his own mods a Hacker Remote mod and a Guide Me Home Lights mod. I got intrigued by the ideas, tempted by the investigation and then overwhelmed by the potential I could see... and so the Driver Information System (DIS) was born.

So what started this? Tobsi was hunting for vehicle alarm information, there was a native SET_VEHICLE_ALARM but seemingly, there was no GET_VEHICLE_ALARM. Something had to say if there was an alarm on the vehicle or not, so I did some hex-dumping. A small-mod later and I could dump out a hex-based text file of 8192 bytes of data from the vehicle memory address. So it was simple, set the alarm on, dump the data, set the alarm off, dump the data and compare the dumps. This is what I saw with Trevor's Bodhi:

Here’s the Bodhi with no alarm:
09E0 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Here’s the Bodhi with an alarm:
09E0 - 00 00 00 00 FF FF 00 00 00 00 00 00 00 00 00 00

Those were the only changes between the two dumps, so that gave me an offset for game version 1032. I can run every version of GTAV, so a short while and several dumps later, I had the offsets for all versions from 877 to 1365. As a result of this, I was able to create a small test mod that gave this output.

 

A bit crude but as a proof of concept, crude is how things usually are. But big cone markers are not going to blend into the game world and that's what indicators need to do, they need to convey information in a clear, yet unintrusive fashion. So that's what I made them do... before I link to the next video, there was one other aspect that I had to consider. Getting into a locked vehicle required a hacking process, the player used their phone as part of Tosbi's original idea and I wanted an indication that something was going on with the car.

The result was this:

 

The indicators show two aspects, the inner ring shows the Alarm state, Red = Armed, Green = Off. The outer ring shows the Lock state, Red = Locked, Green = Unlocked. The arrow is meant as an association with door pull pins. Anyone with an older car will know of the plastic pins in the door that you pull or push to manually operate the locks. With those, Up = Unlocked, Down = Locked... like the arrow directions.

The one thing that annoyed me about the markers, is the number of cars in the game that have visible door handles but no handle_dside_f or handle_pside_f dummies to place them onto. In those instances, I have had to use the door dummies instead. Then of course there are the cars with no doors. For those I used a position slightly forward and upwards of the origin, at the width of the model. It's not ideal but it means they can still show the alarm state, even though they can't be locked... it's all about consistency breeding familiarity.

So that was how things started... but of course, nothing I start ever finishes that simple and so it grew. I put the idea to Tobsi about me writing a complete system that had the functions he wanted and wrapped them all in a big bundle of vehicle related functionality, so that's what I did. I created a base HackedCar class that allowed me to bolt on functionality. So pretty quickly, functions started to pile up. The next two videos describe some of those functions.

 

This first video is all about things that happen as a result of physical interactions. Parking sensors that react to nearby objects, doors that lock when you drive above a certain speed and an alarm system that activates when you walk a certain distance away.

Parking sensors were troublesome to say the least and the end result isn't 100% accurate, there are gaps between the sensors that small things can creep between. But under normal conditions, they work really well. The only problem I had with the auto-lock system, was trying to find a sound effect for the mechanical locks. The internet seems to think that a "car lock" sound, is the sound the alarm makes. So the solution was me, my iPhone 4S and my Nissan Qashqai. I recorded the sounds in voice memo and then processed them in SoundForge, my go-to audio tool. The hacking sounds and the key-fob sounds had already been provided by Tobsi, they were fine.

 

The second video is all about lighting. Ambient lighting to enhance your car interior and Guide Me Home Lights to offer extra security... ideal when you've just drawn your life savings out of the bank in Harmony and are faced with a band of drooling Hillbillies. You gotta be able to see what you're punchin'... right?

Ambient lights was another... "how the heck do I place these?" kinds of problems but the solution was the car seat. All vehicles need the car seat dummies, for the layouts. So I used those as an origin and then applied an offset to put the lights ahead of the seats. Some cars have a problem with shine-through but then again, GTA V headlights already shine through the road (watch cars go over the bridge near the Zancudo Wetlands), so it goes with the territory.

So all these features were mounting up and all had to be fully configurable. Not just configurable on a global basis but on an individual car basis. So a DIS Computer System was added to each HackedCar, that managed all settings on a vehicle level. Global settings could be managed in an ini file but even now, it was starting to get messy with all the features... so a solution was required... a familiar solution to anyone who has seen my World Guide System videos.

Thus, the Bro-Tec Driver Information System was born... (continued here)