D3FEKT
Bewbs
Hey fellow sinners, been a while since i've made any useful topics, so here is a nice one for
the forza modding community
OK lets get started.
Things you will need:
SQLite database browser - download
xbdm.xex (to transfer the mods unless running iso on forza 4)
Any hex editor
notepad
Quick BMS + forza zip script
My mod releases:
http://www.se7ensins.com/forums/thr...oject-underground-iso-jtag-mods.711188/unread
http://www.se7ensins.com/forums/threads/release-forza-horizon-project-underground.859211/
My basic tutorial thread:
http://www.se7ensins.com/forums/threads/tut-forza-4-modding-the-basics-jtag-flashed.674677/
Other peoples mods:
http://www.se7ensins.com/forums/threads/forza-horizon-exclu-neons-mods-iso-team-drs.891144/ - Team drs
http://www.se7ensins.com/forums/threads/forza-horizon-mods.803066/ - grizzrh
http://www.se7ensins.com/forums/threads/forza-motorsport-4-mod-release.795594/ - jimmynine120
http://www.se7ensins.com/forums/threads/release-forza-4-iso-mods.691419/ - booternet
-Tutorials-
Gamedb.slt editing-
[How to modify engine power]
First, open up SQLite dbrowser then when in the program, open up your gamedb. When that is done,
click on "browse data" tab. There will be a drop down box with various different tables. Now, go
ahead and click the down arrow, and scroll till it says "data_engine" It will look like this.
Now click the magnify glass icon. It will have 2 drop boxes and one typing box. Set the first drop
box to be "mediaName", and the second box to be "contains" like bellow. As for what you type, put
in the name of the car you want to modify. For example, I will use skyline.
Then once up to this step, click on the one you need to edit. It will look like such.
Once you got that, you can get the engineID (this tut can be used to get the carID also. Go to
the tab "data_car" instead)
Now back to the tab drop down. Click it, and scroll up till there is tables called
"list_upgradeengine*****". Choose any you want to edit. In my case, the pistons. When in a table,
scroll down or use the search function again to find your engineID. When located, there will be
a bunch of columns. Usually the last one is the one we want to edit "torqueScale". When you found
it, you now double click the box like bellow, and edit the number to whatever power you want.
[Engine redline RPM]
Using from what you learnt on the tutorial above, get your engineID from the car you desire, then
go to the table "List_upgradeEngineCamshaft". Locate your EngineId. Once done that, it will have a
tab called "redlineRPM" and "TorqueCurveMaxRPM". Now where it says "ID" it will have your engine number + 00* meaning the part number. 003 meaning the highest upgrade. Choose one of them and double click on the "redlineRPM". Change the number to what you want. Then for torquecurve, add about 700 or w/e you wish onto the redlineRPM number and save it. Bellow my skyline will redline at 12k RPM with torquecurve at 13k.
[Wider tires]
Open up your gamedb, then head over to the table drop box. Using the tutorial above, grab your carbodyID from "Data_car". When you have that, head over to the drop box, and find "List_upgradecarbodytirewidth*****". Choose which ever end you are wanting to edit. For example i'll use rear. Find your CarbodyID then after that, count 5 columns (reartirewidth or fronttirewidth) across. As i stated before, the ID will have extra numbers meaning upgrade level. Choose which upgrade part you want to edit, then double click the tirewidth, then go ahead and change the number to what ever you wish.
[Tire grip]
Open your gamedb, head over to the table "List_TireCompound". There will be 9 records for each of all the tires. Choose which tire you want to modify. In my case, the drag tires. After the column "DisplayName", the next 4 columns will be what you edit. Change all 4 columns to be what ever grip level you want. example bellow.
Hit save and you're done.
[Purchasable Unicorns]
Open your gamedb, then go to the table "data_car". Go across till you find the column "IsUnicorn". If the value is 0, the car is purchasable. If the value is 1, the car is hidden. scroll till you find a record saying "1" and change it to 0. When you find all, every unicorn will be purchasable at the car shop.
[Wheel spacers]
Go open the gamedb, head to the table "data_carbody". Find what car you want to modify, then the 2nd, and 3rd column across is what you'll be editing (modelfronttrackouter, modelreartrackouter) Edit the number to be like .5 more than the default number. Hit save and go test. Keep repeating until it looks good.
[Remove body parts #1]
(Note, this method only leaves the parts gone on the modified game. If you want to use it for online, read the tutorial bellow this one) Open the gamedb, head to the drop box, and choose what part you want to remove. Example "List_Upgradecarbodyhood". Choose which car you want to edit, and find the column "PartsStringID". Set it to like 1337 and hit save. Now that specific part will be gone.
[Remove body parts #2]
This way works online. Open your gamedb, and head to data_car. Get your desired carID. For example, the s13 = id 439. Now head to the body part you want to remove (List_upgradeCarbody****). Now create a new row and put it as shown.
It doesn't exactly have to be that, but you get the message. As long as the partsID is a random
number, it will disappear the part. Apply the new upgrade and it will work also online.
[All manufacturer rims purchasable]
Open you db, head over to the table "List_wheels". Choose what rim you want to edit, then put a display name, the true part manufacturer ID (you can find it from finding the stock
"List_upgradeengine***" parts), then the price to 1 (if 0, it wont show up), IsStock to = 0, Type = street. It will look like this.
Repeat for all car rims and every one will be purchasable minus dlc.
If you're lazy, then
[Backfire Levels]
Go to the table, "BackfireLevels". The last column "backfirelevel, set all to 3. Now your car will spit flames stock.
[Rim size]
Go to the table "List_upgradeRimSize****". The 5th column across, change the number to what ever you disire for what rim upgrade.
[Free parts]
Go to any table that is to do with a upgrade part, then on the desired record, go across till you find "price". Change it to w/e you please.
[Engine swaps]
First things first, find the "engineID" of the engine you want to use as a conversion (Data_Engine). For example, I will use the RB26. Now find the ID of the car you want to add the engine into (data_car). Once you got the IDs, go to the table "List_upgradecarengine". To the right of the screen, there will be a button called "New Record". Click it.
It will create a new engine slot. Now For ordinal, add in the CarID, for level add in 3, then put in your engineID.
Now the next box (IsStock) put 0. The next box, you can put any number but if you're realistic, find the true manufacturerID number and put it in. For the next boxes, just copy the numbers from the engines above like so.
If you want to go more overboard with engine swaps, you can create your own engine, though it would take forever to type up on how to, so I won't include how to do so.
[lower / slam your car]
Find your carID, then head over to the table "List_SpringDamperPhysics". Locate your carID (Ordinal). There will be lots of rows per car. for example ***000, ***001,***002, ***100, ***101. 00 being the front, 10 being the rear. Go across to the column "MinRideHeight" after you chose which part you're going to edit.
[Remove event class restriction]
Go to the table "events". Go to column "target class". Set it to 10 on every line then save. Now go to the table "eventRestrictions". Set the bucketID and value to 0 on all and save. Now x class is max on every event.
[Win CR scalar]
Go to the table "Tracks". Then head across to "WinningScalar". Set all lines to e.g. 1000 like so.
[Fast affinity level up]
Open the gamedb and the first table Affinityleveldef. Set the xp to low numbers like 1,2,3,4,5,6,7. Mess with the bonus credits if you want to also.
[Fast driver level up]
Go to table "playerleveldef". Set the xp to low numbers.
[Drivetrain swaps]
Go to Data_car. Grab the car id of the car you want to mod and the car to grab the drivtrain from
and head over to List_upgradeDrivetrain. Go to the ID of the car you want the drivetrain from and copy its drivetrainID and remember the powertrainID. Find the ID of the car you want and replace with the new numbers.
example of mini w/ veyron power/drivetrain.
with stock drivetrain
XEX editing / poking-
[Forza 2,3 and horizon gamedb check bypass]
First grab your default.xex. Then decrypt / decompress with xextool. After that, open in any hex editor
and search "gamedb". the last result change it to i.e. potato.slt from gamedb.slt. save, encrypt and
go have fun modding
[Forza 4 poking - no TU]
Hud Transparency 82000D30 float. Default value= 0.0039215689
Backfire time (can give a nos effect) 82000EFC float. Default value= 1000.0
gravity 820CF794 float.Default value= 9.8066502
[Horizon poking]
I had a pile of floats named, but lost the file that i saved them on.
[DLL]
CraigChrist8239 's dll code / offsets <3
http://www.se7ensins.com/forums/threads/forza-motorsports-patch-offsets.810219/
XML's / INI's-
camber - PhysicsSettings.ini,
CarTuning\TuneCamberMin -20
CarTuning\TuneCamberMax 20
Lound turbo/SC - AudioEngineConfig.xml,
maxSupercharger="10"
maxTurbo="10"
gameSuperCharger="5.5"
gameTurbo="5.5"
Neon - trackSettings.xml,
<ShadowColor r="0.000000" g="0.000000" b="0.000000" a="1.000000"/>. Set the rgb to your please.
Car sell price max money - gametunablesettings.ini,
CarValueScales\RewardCarsValue 999999999
CarValueScales\SellValueScale 999999999
Remove backfire timer - BackfireTimerConfig.xml,
SilenceWeighting="0"
Here is some pre-modded ones:
forza 4 smoke -
forza horizon smoke -
backfire timer -
rain + neon - http://pastebin.com/WR1K0YNW
Forza textures-
Forza uses a extension called "XDS" for it's textures. From what i know, the first 52 bytes are the
header/dimensions etc, every 4 bytes is a pixel, 4th byte being alpha enable / disable.
The games also runs tga files fine thus allowing custom textures.
Extract zips-
Locate the zip you want to extract and place it in a folder. Download quickbms (http://aluigi.altervista.org/quickbms.htm).
Place quickbms in the same folder as the zip. Copy the zip code bellow. Save it as a text document. Run quickbms. It will ask you to choose the script so select it, locate the zip to extract, then choose the extraction directory.
Quick bms zip script- (to allow extraction of method 21 zips)
rezip with quickbms-
To rezip, use same method as above but use a shortcut to the program with this command line. Z:\quickbms.exe -r -w
Note: make sure the files you're rezipping are no byte bigger nor smaller otherwise it will mess the zip up.
Gamesave modding-
I generally don't care for gamesave modding but thats all most people can do so here is a video (not mine) for a way to mod forza 4 saves for free.
There is also a good service for modding saves.
http://www.se7ensins.com/forums/threads/forza-horizon-and-forza-4-modded-gamesave-service.899895/
[Videos of mods in action]
This thread most likely (like all forza posts) will be only noticed / used by a few people, but still worth typing it all up in the end
Shoutout to
Chr0m3 x MoDz
CraigChrist8239
TXR Frosty
<3
the forza modding community
OK lets get started.
Things you will need:
SQLite database browser - download
xbdm.xex (to transfer the mods unless running iso on forza 4)
Any hex editor
notepad
Quick BMS + forza zip script
My mod releases:
http://www.se7ensins.com/forums/thr...oject-underground-iso-jtag-mods.711188/unread
http://www.se7ensins.com/forums/threads/release-forza-horizon-project-underground.859211/
My basic tutorial thread:
http://www.se7ensins.com/forums/threads/tut-forza-4-modding-the-basics-jtag-flashed.674677/
Other peoples mods:
http://www.se7ensins.com/forums/threads/forza-horizon-exclu-neons-mods-iso-team-drs.891144/ - Team drs
http://www.se7ensins.com/forums/threads/forza-horizon-mods.803066/ - grizzrh
http://www.se7ensins.com/forums/threads/forza-motorsport-4-mod-release.795594/ - jimmynine120
http://www.se7ensins.com/forums/threads/release-forza-4-iso-mods.691419/ - booternet
-Tutorials-
Gamedb.slt editing-
[How to modify engine power]
First, open up SQLite dbrowser then when in the program, open up your gamedb. When that is done,
click on "browse data" tab. There will be a drop down box with various different tables. Now, go
ahead and click the down arrow, and scroll till it says "data_engine" It will look like this.
Now click the magnify glass icon. It will have 2 drop boxes and one typing box. Set the first drop
box to be "mediaName", and the second box to be "contains" like bellow. As for what you type, put
in the name of the car you want to modify. For example, I will use skyline.
Then once up to this step, click on the one you need to edit. It will look like such.
Once you got that, you can get the engineID (this tut can be used to get the carID also. Go to
the tab "data_car" instead)
Now back to the tab drop down. Click it, and scroll up till there is tables called
"list_upgradeengine*****". Choose any you want to edit. In my case, the pistons. When in a table,
scroll down or use the search function again to find your engineID. When located, there will be
a bunch of columns. Usually the last one is the one we want to edit "torqueScale". When you found
it, you now double click the box like bellow, and edit the number to whatever power you want.
[Engine redline RPM]
Using from what you learnt on the tutorial above, get your engineID from the car you desire, then
go to the table "List_upgradeEngineCamshaft". Locate your EngineId. Once done that, it will have a
tab called "redlineRPM" and "TorqueCurveMaxRPM". Now where it says "ID" it will have your engine number + 00* meaning the part number. 003 meaning the highest upgrade. Choose one of them and double click on the "redlineRPM". Change the number to what you want. Then for torquecurve, add about 700 or w/e you wish onto the redlineRPM number and save it. Bellow my skyline will redline at 12k RPM with torquecurve at 13k.
[Wider tires]
Open up your gamedb, then head over to the table drop box. Using the tutorial above, grab your carbodyID from "Data_car". When you have that, head over to the drop box, and find "List_upgradecarbodytirewidth*****". Choose which ever end you are wanting to edit. For example i'll use rear. Find your CarbodyID then after that, count 5 columns (reartirewidth or fronttirewidth) across. As i stated before, the ID will have extra numbers meaning upgrade level. Choose which upgrade part you want to edit, then double click the tirewidth, then go ahead and change the number to what ever you wish.
[Tire grip]
Open your gamedb, head over to the table "List_TireCompound". There will be 9 records for each of all the tires. Choose which tire you want to modify. In my case, the drag tires. After the column "DisplayName", the next 4 columns will be what you edit. Change all 4 columns to be what ever grip level you want. example bellow.
Hit save and you're done.
[Purchasable Unicorns]
Open your gamedb, then go to the table "data_car". Go across till you find the column "IsUnicorn". If the value is 0, the car is purchasable. If the value is 1, the car is hidden. scroll till you find a record saying "1" and change it to 0. When you find all, every unicorn will be purchasable at the car shop.
[Wheel spacers]
Go open the gamedb, head to the table "data_carbody". Find what car you want to modify, then the 2nd, and 3rd column across is what you'll be editing (modelfronttrackouter, modelreartrackouter) Edit the number to be like .5 more than the default number. Hit save and go test. Keep repeating until it looks good.
[Remove body parts #1]
(Note, this method only leaves the parts gone on the modified game. If you want to use it for online, read the tutorial bellow this one) Open the gamedb, head to the drop box, and choose what part you want to remove. Example "List_Upgradecarbodyhood". Choose which car you want to edit, and find the column "PartsStringID". Set it to like 1337 and hit save. Now that specific part will be gone.
[Remove body parts #2]
This way works online. Open your gamedb, and head to data_car. Get your desired carID. For example, the s13 = id 439. Now head to the body part you want to remove (List_upgradeCarbody****). Now create a new row and put it as shown.
It doesn't exactly have to be that, but you get the message. As long as the partsID is a random
number, it will disappear the part. Apply the new upgrade and it will work also online.
[All manufacturer rims purchasable]
Open you db, head over to the table "List_wheels". Choose what rim you want to edit, then put a display name, the true part manufacturer ID (you can find it from finding the stock
"List_upgradeengine***" parts), then the price to 1 (if 0, it wont show up), IsStock to = 0, Type = street. It will look like this.
Repeat for all car rims and every one will be purchasable minus dlc.
If you're lazy, then
[Backfire Levels]
Go to the table, "BackfireLevels". The last column "backfirelevel, set all to 3. Now your car will spit flames stock.
[Rim size]
Go to the table "List_upgradeRimSize****". The 5th column across, change the number to what ever you disire for what rim upgrade.
[Free parts]
Go to any table that is to do with a upgrade part, then on the desired record, go across till you find "price". Change it to w/e you please.
[Engine swaps]
First things first, find the "engineID" of the engine you want to use as a conversion (Data_Engine). For example, I will use the RB26. Now find the ID of the car you want to add the engine into (data_car). Once you got the IDs, go to the table "List_upgradecarengine". To the right of the screen, there will be a button called "New Record". Click it.
It will create a new engine slot. Now For ordinal, add in the CarID, for level add in 3, then put in your engineID.
Now the next box (IsStock) put 0. The next box, you can put any number but if you're realistic, find the true manufacturerID number and put it in. For the next boxes, just copy the numbers from the engines above like so.
If you want to go more overboard with engine swaps, you can create your own engine, though it would take forever to type up on how to, so I won't include how to do so.
[lower / slam your car]
Find your carID, then head over to the table "List_SpringDamperPhysics". Locate your carID (Ordinal). There will be lots of rows per car. for example ***000, ***001,***002, ***100, ***101. 00 being the front, 10 being the rear. Go across to the column "MinRideHeight" after you chose which part you're going to edit.
[Remove event class restriction]
Go to the table "events". Go to column "target class". Set it to 10 on every line then save. Now go to the table "eventRestrictions". Set the bucketID and value to 0 on all and save. Now x class is max on every event.
[Win CR scalar]
Go to the table "Tracks". Then head across to "WinningScalar". Set all lines to e.g. 1000 like so.
[Fast affinity level up]
Open the gamedb and the first table Affinityleveldef. Set the xp to low numbers like 1,2,3,4,5,6,7. Mess with the bonus credits if you want to also.
[Fast driver level up]
Go to table "playerleveldef". Set the xp to low numbers.
[Drivetrain swaps]
Go to Data_car. Grab the car id of the car you want to mod and the car to grab the drivtrain from
and head over to List_upgradeDrivetrain. Go to the ID of the car you want the drivetrain from and copy its drivetrainID and remember the powertrainID. Find the ID of the car you want and replace with the new numbers.
example of mini w/ veyron power/drivetrain.
with stock drivetrain
XEX editing / poking-
[Forza 2,3 and horizon gamedb check bypass]
First grab your default.xex. Then decrypt / decompress with xextool. After that, open in any hex editor
and search "gamedb". the last result change it to i.e. potato.slt from gamedb.slt. save, encrypt and
go have fun modding
[Forza 4 poking - no TU]
Hud Transparency 82000D30 float. Default value= 0.0039215689
Backfire time (can give a nos effect) 82000EFC float. Default value= 1000.0
gravity 820CF794 float.Default value= 9.8066502
[Horizon poking]
I had a pile of floats named, but lost the file that i saved them on.
[DLL]
CraigChrist8239 's dll code / offsets <3
http://www.se7ensins.com/forums/threads/forza-motorsports-patch-offsets.810219/
XML's / INI's-
camber - PhysicsSettings.ini,
CarTuning\TuneCamberMin -20
CarTuning\TuneCamberMax 20
Lound turbo/SC - AudioEngineConfig.xml,
maxSupercharger="10"
maxTurbo="10"
gameSuperCharger="5.5"
gameTurbo="5.5"
Neon - trackSettings.xml,
<ShadowColor r="0.000000" g="0.000000" b="0.000000" a="1.000000"/>. Set the rgb to your please.
Car sell price max money - gametunablesettings.ini,
CarValueScales\RewardCarsValue 999999999
CarValueScales\SellValueScale 999999999
Remove backfire timer - BackfireTimerConfig.xml,
SilenceWeighting="0"
Here is some pre-modded ones:
forza 4 smoke -
forza horizon smoke -
backfire timer -
rain + neon - http://pastebin.com/WR1K0YNW
Forza textures-
Forza uses a extension called "XDS" for it's textures. From what i know, the first 52 bytes are the
header/dimensions etc, every 4 bytes is a pixel, 4th byte being alpha enable / disable.
The games also runs tga files fine thus allowing custom textures.
Extract zips-
Locate the zip you want to extract and place it in a folder. Download quickbms (http://aluigi.altervista.org/quickbms.htm).
Place quickbms in the same folder as the zip. Copy the zip code bellow. Save it as a text document. Run quickbms. It will ask you to choose the script so select it, locate the zip to extract, then choose the extraction directory.
Quick bms zip script- (to allow extraction of method 21 zips)
Code:
set ZIP_PASSWORD string "" # put the password here (only ZipCrypto supported at the moment)
set ZIP_SIGN short 0x0403
goto 2
get ZIP_SIGN short
goto 0
get zip_filesize asize
for offset = 0 < zip_filesize
#idstring "PK\x03\x04"
get PK_sign short # so it works also with modified ZIP files!
get sign short
if sign == ZIP_SIGN # Local file header
get ver short
get flag short
get method short
get modtime short
get moddate short
get crc long
get comp_size long
get uncomp_size long
get name_len short
get extra_len short
getdstring name name_len
getdstring extra extra_len
savepos offset
# zip64
if extra_len >= 20
getvarchr extra_id extra 0 short
if extra_id == 0x0001
if comp_size == -1
getvarchr uncomp_size 4 longlong
getvarchr comp_size 12 longlong
endif
endif
endif
# possible lame tricks used by games
if comp_size < 0
if comp_size u> zip_filesize
math comp_size ~= comp_size
math uncomp_size ~= uncomp_size
endif
endif
if name_len < 0
math name_len ~= name_len
endif
if extra_len < 0
math extra_len ~= extra_len
endif
if flag & 1
if ZIP_PASSWORD == ""
print "the file is encrypted, you must set ZIP_PASSWORD in the script"
#cleanexit
endif
encryption zipcrypto ZIP_PASSWORD 1
endif
if method == 0
Log name offset uncomp_size
else
if method == 8
ComType deflate
elif method == 1
ComType unshrink
elif method == 6
ComType explode
elif method == 9
ComType deflate64
elif method == 12
ComType bzip2
elif method == 14
ComType lzmaefs
elif method == 21
ComType XMemDecompress
elif method == 64
ComType darksector
elif method == 98
ComType ppmd
elif method == 99
print "this script doesn't support AES encryption"
cleanexit
else
print "unsupported compression method %method%"
cleanexit
endif
CLog name offset comp_size uncomp_size
endif
if flag & 1
encryption "" ""
endif
math offset += comp_size
goto offset
elif sign == 0x0806 # Archive extra data record
get extra_len long
getdstring extra extra_len
elif sign == 0x0201 # Central directory structure
get ver_made short
get ver_need short
get flag short
get method short
get modtime short
get moddate short
get crc long
get comp_size long
get uncomp_size long
get name_len short
get extra_len short
get comm_len short
get disknum short
get int_attr short
get ext_attr long
get rel_offset long
getdstring name name_len
getdstring extra extra_len
getdstring comment comm_len
elif sign == 0x0505 # Digital Signature
get sign_len long
getdstring sign sign_len
elif sign == 0x0606 # Zip64 end of central directory record
get dir_record longlong
get ver_made short
get ver_need short
get num_disk long
get num_disk2 long
get tot_entries longlong
get tot_entries2 longlong
get central_size longlong
get central_offset longlong
print "Error: zip64 extensible data sector not implemented, contact me"
cleanexit
elif sign == 0x0706 # Zip64 end of central directory locator
get start_central long
get end_central longlong
get disks long
elif sign == 0x0605 # End of central directory record
get disk_num short
get disk_start short
get central_entries short
get central_entries short
get central_size long
get central_offset long
get comm_len short
getdstring comment comm_len
elif sign == 0x0807 # Data Descriptor
get crc long
get comp_size long
get uncomp_size long
elif sign == 0x3030 # disk spanning
# nothing?
else
print "\nError: unknown ZIP signature %sign% at offset %offset%\n if the other files have been extracted correctly it's all ok"
cleanexit
endif
savepos offset
next
rezip with quickbms-
To rezip, use same method as above but use a shortcut to the program with this command line. Z:\quickbms.exe -r -w
Note: make sure the files you're rezipping are no byte bigger nor smaller otherwise it will mess the zip up.
Gamesave modding-
I generally don't care for gamesave modding but thats all most people can do so here is a video (not mine) for a way to mod forza 4 saves for free.
There is also a good service for modding saves.
http://www.se7ensins.com/forums/threads/forza-horizon-and-forza-4-modded-gamesave-service.899895/
[Videos of mods in action]
This thread most likely (like all forza posts) will be only noticed / used by a few people, but still worth typing it all up in the end
Shoutout to
Chr0m3 x MoDz
CraigChrist8239
TXR Frosty
<3
Last edited: