Hello again, Thundersmacker here with another hopefully helpful tutorial for you all.
Have you downloaded a vehicle mod, but it's a race car or some super rare car that no one could possibly drive in traffic? But, you'd rather not have to use a trainer every time you want drive this car and break your immersion in the game world? Well, this is where you need to add this car to a parked spot on the Liberty City map somewhere that you can find out in the game world.
PART 1: What you'll need.
For this tutorial we are going to need a few tools that are essential to adding these spawn points to the map.
Things you'll need:
A trainer that can spawn and save objects OR can tell you the coordinates of a car or spawned object. I will be using Simple Native Trainer for this tutorial.
Notepad
OpenIV
IV Placement Tool by Dageron
Again, like the adding vehicles tutorial I did before. This is covering the 1.0.7.0/1.0.8.0 version of the game, so I have no knowledge of what's available for the Complete Edition of the game. So if you have the CE version, please feel free to comment if there is a trainer or tool that can help people who use that version of the game. It would be much appreciated.
PART 2: Finding the spawn point location and getting the coordinates.
This is the probably the hardest part of this tutorial, and the most tedious. We have to find the location we want to add (or replace) in the game.
So once you get your trainer of choice installed and working in the game, we'll go and find our location.
This spot will work good for a spawn point.

We'll open our Simple Native Trainer and go to the "Object spawning" tab.
Once in that, we'll go all the way down to the "Objects A-B-C"

Use the Numpad keys 4 or 6 to scroll over to find "Cj apple 1" You might find it weird to spawn an old eaten apple to get our spawn point. You don't need to use that specific object, as long as you have an object that is easy to see and will save the coordinates right you're fine.
So anyway once you get the object spawned and can see it clearly go to the "Move Last spawned object menu"
I would recommend slowing the speed at which the object will move so you can be more precise in getting the position right.
Now, move your object to the center of where you think the central point of the car you're wanting to spawn will be.

Since I'm putting GCT's Tulip GT here, I'll leave enough room for the car to fit in this spot.
Alright now with our object moved where we want, we'll go back to the "Object spawning" menu and go to "Save All Spawned Objects to objects.ini" and hit 5 on the Numpad, this will save an ini file to the GTA IV directory that we can open up with Notepad.

The part highlighted in red is what we need, this is the coordinates of our little apple, and the coordinates we need for our car spawn.
Now the hardest part, we gotta find the IMG file with the streaming data with the other spawn points that are close to our new spawn point location.
Since the map is split into many different sections with their own IMG files, the map down below shows how the map is split up and what IMG file goes with each location. Credit goes to Neville for making this map.

Now, the location I picked is an alley behind the China Shop in Dukes where the mission "Bull in a China Shop" takes place.

So here's the location we picked, so we know it's in the "queens_w2" IMG file. Now let's open up um...OpenIV.
Now once OpenIV is up let's go to pc>data>maps>east>queens_w2.img.

Now while the map we used shows us the IMG file we need to find, it doesn't tell us which "stream" file our location is in. That map is for the WBN files which are for the collision models for the map, so the areas on the map where it's split up with different numbers isn't the stream files. So unfortunately we need to open up each stream file and find the car spawn points that already exist that are close to the coordinates we want to add. Open each stream file and scroll all the way the bottom there should be a separate section for parked car spawn points.

This is in "queens_w2_stream7". As we can see a lot of the coordinates listed in this file are very close to the coordinates of our spawned object for our new car spawn. So this will be our file of choice, to add our coordinates too.
Now close out of the WPL viewer and extract the stream7 file to somewhere of your choice. Be sure it exports as a WPL file and nothing else as the next tool we use won't open it correctly.
Now we'll open up the Placement Tool by Dageron. And then go to File>Open and find the WPL file you exported.
Once the file opens and there's no errors (if there is we'll get to that later), go to File>Export to DAT and save that file to a location of choice.
Let's now open up that exported DAT file with Notepad. Again we'll scroll all the way down to the bottom where there is a section with the car spawn points.

Okay now let's break down what some of this stuff means.
Our first 3 numbers are for the coordinates (X,Y and Z.)
The next 2 numbers are for the rotation of the car. This is a tricky one, since in the line it doesn't go by normal rotation values, it uses 2 numbers to determine the rotation.
Using this tool by @MiesThies you can get the correct numbers for rotation. Just enter the rotation value on the far left from 0 to 360 and just hit enter and the other values will appear.
For OpenOffice:
https://www.file-upload.net/download-15083997/Carrotationconverter.ods.html
For Excel:
https://www.file-upload.net/download-15083998/Carrotationconverter.xls.html
But unfortunately you won't know where the car will be rotated until you get the rest of the spawn file set up and in game. So be sure to keep the DAT text file and all your tools open until the car is at the location and rotation you want, that way you can make edits without having to open up all your tools and files again.
Moving on, the "3.284" number I don't know what is for. Maybe another rotation value?
Now our next number "Unknown7" which is a 0 in our text file here is the model ID for the car, so that's the most important number for making our special spawn point.
The next row of numbers (Unknown 8-11) that are all -1, refer to carcols data. So if you want the car to spawn in a specific color, you can set these to the colors you want to use. They work just like the carcols data so the numbers refer to colors 1-4. Example, if you want the car to spawn in all yellow you set it to (127, 127, 127, 127,). Thanks to @Silent Eagle for discovering that info.
Now the next number is another important one. "Unknown12" refers to what car group the spawn point will spawn a car from. So the "1888" number is what I assume is the default value that will spawn a car from the traffic pool and will not always spawn. "1632" is I believe the same thing but if you set a car ID in Unknown7 it'll begin to add that car to the traffic pool, so not a good choice for special cars. The value we'll be using is "1633" which is so the car will not get pulled from or added to the traffic pool and will always spawn at any time of day. So that's what we want for our special car. There will be other values that you'll see that are for police cars or Ambulances and others, but I can't remember the exact meaning for those. So that's something that can be investigated more.
Now the next number I don't know about, so leave that alone too. The final number is actually a helpful one. This is a setting for the door locks on the car, so if you change that number to 200, it'll make it so the doors are always unlocked. And if you set it to -200 it'll make the car always locked. But if you leave it at 0 it'll be locked anyway, so there could be more to that setting.
Alright now we'll go ahead and copy an existing spawn point from our list, copy it to the bottom of the list, and then change the X, Y, and Z coordinates to match the ones in our objects.ini we got earlier.

t's worth nothing that the Dageron Placement Tool does round up the values to 3 numbers before and after the decimal point so keep that in mind when copying the values.
Now before saving, we need to get the Car ID value for the Tulip GT so we can add it to the data line. For that we need to go back to the Placement Tool.
Go to Options>Calculate hash from the name and a little window should pop up.

n the "original" section put the model name of your desired car in the box and hit "Calculate" and some numbers will appear in the other boxes. Now for added cars, both boxes will show the same number but ALWAYS copy the one in the "Hash (Integer) -developers only:" box. That point will come back later.
Now with your generated number copied, go back to the DAT file with the spawn points and copy your number into the "Unknown7" section of your newly added data line.

With that done hit save and go back the Placement Tool.
Now go to FIle>Import from DAT, and select the DAT file you just edited and saved. and you should see the location line you added appear.
After that's done and everything looks good go ahead and save the file. Now we need to go back to OpenIV for the last step.
Now back in OpenIV find the "queens_w2_stream7" WPL file once again and right click and choose "Replace". (Make sure you are in Edit mode for this)
Now just select the new WPL file that you edited with the Placement Editor and that that's it, your done. We can open up that WPL again in OpenIV and see our new line with the added car at the bottom.

It's worth noting that since OpenIV doesn't know what model name goes with the hash value, it'll just say hash:XXXXXXXXX instead of the actual car model name like it does for vanilla vehicles.
Now with your files set up go back in game and go to the location we added that new spawn point.

Well hello beautiful! Our car is now spawning in our desired spot and we can take it and drive it whenever we want without a trainer or having to wait for it to spawn in traffic. And since the owner of the car will just get another exact car (but in a different color and with different parts) right after we take this one, we can go back and get another.
PART 3: Troubleshooting errors and fixing existing vanilla spawn points in a WPL file.
Now while the Placement Tool is fantastic and very helpful, it does have it's share of problems. The biggest issue is that occasionally it will corrupt the WPL file that we've extracted with OpenIV and not show all the data in a file.
To fix that it's a matter of opening the WPL file in OpenIV and replacing the missing data in the exported DAT text file with the data in the WPL viewer in OpenIV. Just be sure you replace the "hash:0" with a "0" so that the Placement Tool will load it correctly.
Now another problem is that if there are any existing vanilla special spawns that have a specific vehicle spawn in the WPL you choose, the Placement Tool will wipe those out when importing WPL for the first time. Usually changing them to 0 or a random batch of numbers. To fix that you'll again need to open the WPL in OpenIV and find the lines that display the model names (or hash numbers with an addon car)

See where it says "ambulance"? While that's helpful for us, we need to replace those lines in our DAT text file that we exported from the Placement Tool with the hash numbers for that model. So as when we were getting the numbers for the Tulip, we can enter "AMBULANCE" in the hash calculator and copy the bottom number generated to our text file. Now when we have all those numbers replaced and fixed we can then import the text file to the Placement Tool and it should import the correct hash numbers, so we can have our new added spawn point and have the vanilla spawn points still be correct in game.
PART 4: Making the new spawn point appear in EFLC Episodes.
Now if you have the EFLC episodes, you'll need to do some extra steps to get your newly created spawn point into the Episodes. You'll need to find the WPL stream file in the respective folder of each DLC folder that again matches with your coordinates that you chose for the spawn point. Usually they are in the same WPL as in default IV, but sometimes they will be in other WPL files since the EFLC episodes add and change things in the Liberty City map. For example say you have a car spawn added to manhat03_stream2.wpl but in TBoGT those similar coordinates will in manhat03_stream0.wpl. So be aware of the changes that the EFLC Episodes make. I highly recommend that even if the WPL files are the same, go through the process of adding your spawn point into each DLC Episode as you would the default IV version. That way you'll have no issues with LOD's or missing props that may have been changed in the DLC.
Conclusion:
So there you go, you now have a more immersive option for obtaining those rare or fun cars that you have added to your game.
Credit goes to LOKIOLR on Se7enSins gaming community for the original tutorial on how to edit object and vehicle spawn points.
Also credit goes to the creators of OpenIV and Dageron for the Placement Tool, without those tools this wouldn't be possible.
If you haven't already, be sure to check out my tutorial on adding new cars to IV. (which you should have done before reading this)
Hopefully this tutorial helps, and good luck!
If there are any things that can be improved or streamlined or if there is anything I left out, please be sure to add them to the comments and I can edit this tutorial later with those new findings.
Have you downloaded a vehicle mod, but it's a race car or some super rare car that no one could possibly drive in traffic? But, you'd rather not have to use a trainer every time you want drive this car and break your immersion in the game world? Well, this is where you need to add this car to a parked spot on the Liberty City map somewhere that you can find out in the game world.
PART 1: What you'll need.
For this tutorial we are going to need a few tools that are essential to adding these spawn points to the map.
Things you'll need:
A trainer that can spawn and save objects OR can tell you the coordinates of a car or spawned object. I will be using Simple Native Trainer for this tutorial.
Notepad
OpenIV
IV Placement Tool by Dageron
Again, like the adding vehicles tutorial I did before. This is covering the 1.0.7.0/1.0.8.0 version of the game, so I have no knowledge of what's available for the Complete Edition of the game. So if you have the CE version, please feel free to comment if there is a trainer or tool that can help people who use that version of the game. It would be much appreciated.
PART 2: Finding the spawn point location and getting the coordinates.
This is the probably the hardest part of this tutorial, and the most tedious. We have to find the location we want to add (or replace) in the game.
So once you get your trainer of choice installed and working in the game, we'll go and find our location.
This spot will work good for a spawn point.

We'll open our Simple Native Trainer and go to the "Object spawning" tab.
Once in that, we'll go all the way down to the "Objects A-B-C"

Use the Numpad keys 4 or 6 to scroll over to find "Cj apple 1" You might find it weird to spawn an old eaten apple to get our spawn point. You don't need to use that specific object, as long as you have an object that is easy to see and will save the coordinates right you're fine.
So anyway once you get the object spawned and can see it clearly go to the "Move Last spawned object menu"
I would recommend slowing the speed at which the object will move so you can be more precise in getting the position right.
Now, move your object to the center of where you think the central point of the car you're wanting to spawn will be.

Since I'm putting GCT's Tulip GT here, I'll leave enough room for the car to fit in this spot.
Alright now with our object moved where we want, we'll go back to the "Object spawning" menu and go to "Save All Spawned Objects to objects.ini" and hit 5 on the Numpad, this will save an ini file to the GTA IV directory that we can open up with Notepad.

The part highlighted in red is what we need, this is the coordinates of our little apple, and the coordinates we need for our car spawn.
Now the hardest part, we gotta find the IMG file with the streaming data with the other spawn points that are close to our new spawn point location.
Since the map is split into many different sections with their own IMG files, the map down below shows how the map is split up and what IMG file goes with each location. Credit goes to Neville for making this map.

Now, the location I picked is an alley behind the China Shop in Dukes where the mission "Bull in a China Shop" takes place.

So here's the location we picked, so we know it's in the "queens_w2" IMG file. Now let's open up um...OpenIV.
Now once OpenIV is up let's go to pc>data>maps>east>queens_w2.img.

Now while the map we used shows us the IMG file we need to find, it doesn't tell us which "stream" file our location is in. That map is for the WBN files which are for the collision models for the map, so the areas on the map where it's split up with different numbers isn't the stream files. So unfortunately we need to open up each stream file and find the car spawn points that already exist that are close to the coordinates we want to add. Open each stream file and scroll all the way the bottom there should be a separate section for parked car spawn points.

This is in "queens_w2_stream7". As we can see a lot of the coordinates listed in this file are very close to the coordinates of our spawned object for our new car spawn. So this will be our file of choice, to add our coordinates too.
Now close out of the WPL viewer and extract the stream7 file to somewhere of your choice. Be sure it exports as a WPL file and nothing else as the next tool we use won't open it correctly.
Now we'll open up the Placement Tool by Dageron. And then go to File>Open and find the WPL file you exported.
Once the file opens and there's no errors (if there is we'll get to that later), go to File>Export to DAT and save that file to a location of choice.
Let's now open up that exported DAT file with Notepad. Again we'll scroll all the way down to the bottom where there is a section with the car spawn points.

Okay now let's break down what some of this stuff means.
Our first 3 numbers are for the coordinates (X,Y and Z.)
The next 2 numbers are for the rotation of the car. This is a tricky one, since in the line it doesn't go by normal rotation values, it uses 2 numbers to determine the rotation.
Using this tool by @MiesThies you can get the correct numbers for rotation. Just enter the rotation value on the far left from 0 to 360 and just hit enter and the other values will appear.
For OpenOffice:
https://www.file-upload.net/download-15083997/Carrotationconverter.ods.html
For Excel:
https://www.file-upload.net/download-15083998/Carrotationconverter.xls.html
But unfortunately you won't know where the car will be rotated until you get the rest of the spawn file set up and in game. So be sure to keep the DAT text file and all your tools open until the car is at the location and rotation you want, that way you can make edits without having to open up all your tools and files again.
Moving on, the "3.284" number I don't know what is for. Maybe another rotation value?
Now our next number "Unknown7" which is a 0 in our text file here is the model ID for the car, so that's the most important number for making our special spawn point.
The next row of numbers (Unknown 8-11) that are all -1, refer to carcols data. So if you want the car to spawn in a specific color, you can set these to the colors you want to use. They work just like the carcols data so the numbers refer to colors 1-4. Example, if you want the car to spawn in all yellow you set it to (127, 127, 127, 127,). Thanks to @Silent Eagle for discovering that info.
Now the next number is another important one. "Unknown12" refers to what car group the spawn point will spawn a car from. So the "1888" number is what I assume is the default value that will spawn a car from the traffic pool and will not always spawn. "1632" is I believe the same thing but if you set a car ID in Unknown7 it'll begin to add that car to the traffic pool, so not a good choice for special cars. The value we'll be using is "1633" which is so the car will not get pulled from or added to the traffic pool and will always spawn at any time of day. So that's what we want for our special car. There will be other values that you'll see that are for police cars or Ambulances and others, but I can't remember the exact meaning for those. So that's something that can be investigated more.
Now the next number I don't know about, so leave that alone too. The final number is actually a helpful one. This is a setting for the door locks on the car, so if you change that number to 200, it'll make it so the doors are always unlocked. And if you set it to -200 it'll make the car always locked. But if you leave it at 0 it'll be locked anyway, so there could be more to that setting.
Alright now we'll go ahead and copy an existing spawn point from our list, copy it to the bottom of the list, and then change the X, Y, and Z coordinates to match the ones in our objects.ini we got earlier.

t's worth nothing that the Dageron Placement Tool does round up the values to 3 numbers before and after the decimal point so keep that in mind when copying the values.
Now before saving, we need to get the Car ID value for the Tulip GT so we can add it to the data line. For that we need to go back to the Placement Tool.
Go to Options>Calculate hash from the name and a little window should pop up.

n the "original" section put the model name of your desired car in the box and hit "Calculate" and some numbers will appear in the other boxes. Now for added cars, both boxes will show the same number but ALWAYS copy the one in the "Hash (Integer) -developers only:" box. That point will come back later.
Now with your generated number copied, go back to the DAT file with the spawn points and copy your number into the "Unknown7" section of your newly added data line.

With that done hit save and go back the Placement Tool.
Now go to FIle>Import from DAT, and select the DAT file you just edited and saved. and you should see the location line you added appear.
After that's done and everything looks good go ahead and save the file. Now we need to go back to OpenIV for the last step.
Now back in OpenIV find the "queens_w2_stream7" WPL file once again and right click and choose "Replace". (Make sure you are in Edit mode for this)
Now just select the new WPL file that you edited with the Placement Editor and that that's it, your done. We can open up that WPL again in OpenIV and see our new line with the added car at the bottom.

It's worth noting that since OpenIV doesn't know what model name goes with the hash value, it'll just say hash:XXXXXXXXX instead of the actual car model name like it does for vanilla vehicles.
Now with your files set up go back in game and go to the location we added that new spawn point.

Well hello beautiful! Our car is now spawning in our desired spot and we can take it and drive it whenever we want without a trainer or having to wait for it to spawn in traffic. And since the owner of the car will just get another exact car (but in a different color and with different parts) right after we take this one, we can go back and get another.
PART 3: Troubleshooting errors and fixing existing vanilla spawn points in a WPL file.
Now while the Placement Tool is fantastic and very helpful, it does have it's share of problems. The biggest issue is that occasionally it will corrupt the WPL file that we've extracted with OpenIV and not show all the data in a file.
To fix that it's a matter of opening the WPL file in OpenIV and replacing the missing data in the exported DAT text file with the data in the WPL viewer in OpenIV. Just be sure you replace the "hash:0" with a "0" so that the Placement Tool will load it correctly.
Now another problem is that if there are any existing vanilla special spawns that have a specific vehicle spawn in the WPL you choose, the Placement Tool will wipe those out when importing WPL for the first time. Usually changing them to 0 or a random batch of numbers. To fix that you'll again need to open the WPL in OpenIV and find the lines that display the model names (or hash numbers with an addon car)

See where it says "ambulance"? While that's helpful for us, we need to replace those lines in our DAT text file that we exported from the Placement Tool with the hash numbers for that model. So as when we were getting the numbers for the Tulip, we can enter "AMBULANCE" in the hash calculator and copy the bottom number generated to our text file. Now when we have all those numbers replaced and fixed we can then import the text file to the Placement Tool and it should import the correct hash numbers, so we can have our new added spawn point and have the vanilla spawn points still be correct in game.
PART 4: Making the new spawn point appear in EFLC Episodes.
Now if you have the EFLC episodes, you'll need to do some extra steps to get your newly created spawn point into the Episodes. You'll need to find the WPL stream file in the respective folder of each DLC folder that again matches with your coordinates that you chose for the spawn point. Usually they are in the same WPL as in default IV, but sometimes they will be in other WPL files since the EFLC episodes add and change things in the Liberty City map. For example say you have a car spawn added to manhat03_stream2.wpl but in TBoGT those similar coordinates will in manhat03_stream0.wpl. So be aware of the changes that the EFLC Episodes make. I highly recommend that even if the WPL files are the same, go through the process of adding your spawn point into each DLC Episode as you would the default IV version. That way you'll have no issues with LOD's or missing props that may have been changed in the DLC.
Conclusion:
So there you go, you now have a more immersive option for obtaining those rare or fun cars that you have added to your game.
Credit goes to LOKIOLR on Se7enSins gaming community for the original tutorial on how to edit object and vehicle spawn points.
Also credit goes to the creators of OpenIV and Dageron for the Placement Tool, without those tools this wouldn't be possible.
If you haven't already, be sure to check out my tutorial on adding new cars to IV. (which you should have done before reading this)
Hopefully this tutorial helps, and good luck!
If there are any things that can be improved or streamlined or if there is anything I left out, please be sure to add them to the comments and I can edit this tutorial later with those new findings.
Last edited: