Greetings!
This thread will teach you how you can add additional AI drivers to a race by simply edit a ghost data file. Want to have more and unique police cars in a Hot Pursuit race? Tired of only having 7 AI opponents? More traffic cars to dodge? How about additional racers and cops in two player mode? All is possible!
What you'll need:
A HEX editor - I'm using HxD
or use Cheat Engine (see below)
Knowledge in HEX numbers.
If you don't know how to use HEX editors, follow Zalcus method on using Cheat Engine instead, which is also much easier. The rest in this post can also be ignored.
First things first:
- Simply launch the game and choose either a normal Race or Hot Pursuit. I recommend that you don't choose Career, Knockout or Tournament modes, because the game might crash later on.
- Start the race. When the lights turn green and the AI starts to drive away, pause the game and exit. A gst file will be created in the SaveData folder. Note: If you want to edit a 2 player race, you need to copy config.dat and rename it into a gst file.
- (Since we can't save a ghost file in Hot Pursuit mode, you need to get it manually.) Navigate to the SaveData folder and locate the ghost.gst file. This is the ghost file that records the latest race you did, even if you didn't complete it. Make a copy and change the name of it. Like: cop_07a.gst. Remember: when you're done with the editing, move it to the SaveData/Saves folder (or move it there before you edit).
- Now open the Hex-editor and start editing, here's the addresses that's possible to change:
00000FEC-00000FEE = XYZ Start Location (Getaway mode only)
00000FF0 = Gamemode
00 = Single Race
01 = Tournament
02 = Knockout
03 = Hot Pursuit
04 = High Stakes (Will crash the game when the race is done. The car upgrades is activated in this mode.)
0000109C = Hot Pursuit Gamemode (only activated if 00000FF0=3)
00 = Classic
01 = Getaway
02 = Time Trap
00001098 = Opponent Skill
00 = Amateur
01 = Pro
02 = Champion
03 = Getaway Mode
000010A4 = Tickets Quota
Number of tickets for the police team. This value should be the total number of tickets for the speeders. I changed my game to have 4 speeders instead of 2, so for me this will be: 4*5=20 (14 in HEX).
NumberOfRacers * MaxTickets = TicketsQuota000010A8 = Max Tickets for each speeder
Since the police team must deliver 20 tickets, each speeder needs to have 5 tickets. So this value must be 05.
000010E8 = Number of Laps: 2, 4 or 8. You can use any number here, but I wouldn't personally recommend it since I don't know how the game will keep any track records.
000010EC = Direction (0=Forward, 1=Backward)
000010F0 = Mirrored (0=Off, 1=On)
000010F4 = Nighttime (0=Off, 1=On)
000010F8 = Weather (0=Off, 1=On)
000010E0 = Track
00 = Celtic Ruins
01 = Landstrasse
02 = Dolphin Cove
03 = Kindiak Park
04 = Route Adonf
05 = Durham Road
06 = Snowy Ridge
07 = Raceway 1
08 = Raceway 2
09 = Raceway 3
0A = Hometown
0B = Redrock Ridge
0C = Atlantica
0D = Rocky Pass
0E = Country Woods
0F = Lost Canyons
10 = Aquatica
11 = The Summit
12 = Empire City
0000112C = Cheat Codes
00 = Deactivated
01 = GOFAST
08 = MOON
0A = MADLAND
14 = SKYVIEW
28 = OUTMYWAY
50 = RESETYA
02 00 00 xx = TR00 - TR15 (00-0F)
To add 2 cheats, simply add the two values together. Example: MOON and MADLAND: 8 + A = 12
0000115C = Enable/Disable Helicopter (0=Disable, 1=Enable)
0000114C = Helicopter Sounds (0=Off, 1=On)
000010AE = Helicopter Lights
and countdown timer (0=Off, 1=On)
00001140 = Number of Cars in total (Max=10)
00001144 = Number of Humans in total (Max=02)
00001148 = Number of Human Drivers (Max=02)
0000114C = Number of Human Cops (Max=02)
00001150 = Number of AI Drivers (Max=0E)
00001154 = Number of AI Cops (Max=08)
00001158 = Number of AI Traffic (Max=0F)
All addresses above is to help the game to spawn the cars correctly. Always double check the AI types for each racer, cop or traffic driver. Otherwise the game crashes or will not spawn them correctly.
The following adresses here is for Player One,
to change for the next player simply add 70 in the address, and another 70 for the next one.
Note: Each player always starts with the name, so it's quite easy to keep them apart.
00001160 is Player One.000011D0 is Player Two.00001160 = Name
Believe 10-12 characters is the max limit. 7 if you want to make it fit the number plate. Note: if you have 9-15 racers at once, their number plate will be blank.
00001170 = Car
This is the cars serial number. To load from the traffic folder, this value must be: FF FF FF FF.
00001174 = Car in your menu list and the traffics
"serial number"Where in the carlist does your car appear? Starts with 0. If your car is selectable in the menu, this value is not required to change. Traffic cars have the following values:
32 00 = Minivan
33 00 = Pickup
34 00 = Sedan 2
35 00 = Stationwagon
36 00 = Sedan 4
37 00 = Hatchback
38 00 = Bus
39 00 = 50's Truck
3A 00 = SUV
3B 00 = European Sedan
3C 00 = European Bus
3D 00 = European Semi
3E 00 = Semi
3F 00 = Snowplow
40 00 = Water Truck
F4 01 = Police Sedan
F5 01 = Police SUV
F6 01 = Police Hatchback
F7 01 = Police Caprice
0000117C = AI Type
This is a very important value to change. Players can't be AI controlled and AI's can't be playable.
Player values: 01=Racer, 09=Cop
AI values: 02=Racer, 04=Traffic, 08=Cop
00001188-0000118B = Primary Color
The color of the car: RGB + Transparency.
00001180 = Transmission (0=Manual, 1=Auto)
00001184 = Convertible Mode (0=Top up, 1=Top down)
000011CC = AI driver ID (Values: 00-47, 71 in total)
This is the AI driver ID, hair color, skin color and I think even their driving style. It's hard to observe their behaviour, but their looks will change however. An example is: 35 - Jammin (from the Career mode), he has cool green hair.
That's all you need to know. I hope you'll get it to work and I bet you'll have more fun with NFS4 as I'm having.
If you want to help me out with this and providing research, you're
more than welcome to do so. This post will be updated with additional information or discoveries.
Big thanks to
Zalcus20 for finding additional addresses! Also big thanks for everyone that have tested and confirmed various values.
Have fun racing!