Big Forza modding thread (TUT's+DL's)

Discussion in 'Miscellaneous Game Modding' started by D3FEKT, Apr 30, 2013 with 1,147 replies and 98,655 views.

  1. D3FEKT

    D3FEKT Bewbs

    Messages:
    3,423
    Ratings:
    1,742
    Hey fellow sinners, been a while since i've made any useful topics, so here is a nice one for
    the forza modding community :wink:


    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.
    [​IMG]
    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.
    [​IMG]
    Then once up to this step, click on the one you need to edit. It will look like such.
    [​IMG]
    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.
    [​IMG]

    [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.
    [​IMG]

    [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.
    [​IMG]

    [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.
    [​IMG]
    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.
    [​IMG]

    [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.
    [​IMG]

    [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.
    [​IMG]
    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.
    [​IMG]
    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.
    [​IMG]
    It will create a new engine slot. Now For ordinal, add in the CarID, for level add in 3, then put in your engineID.
    [​IMG]
    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.
    [​IMG]
    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.
    [​IMG]

    [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.
    [​IMG]

    [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.
    [​IMG]
    with stock drivetrain
    [​IMG]

    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 :wink:

    [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 :wink:


    Shoutout to
    Chr0m3 x MoDz
    CraigChrist8239
    TXR Frosty

    <3
     
    • Like Like x 18
    Last edited: Jan 17, 2018
  2. jimmynine120

    jimmynine120 Enthusiast

    Messages:
    698
    Ratings:
    73
    Great tutorial, hopefully will end some of the PM's... Thanks for the tag!
     
  3. OP
    D3FEKT

    D3FEKT Bewbs

    Messages:
    3,423
    Ratings:
    1,742
    Too much pm's..

    Too bad it looks like no one will even notice this thread lol.
     
  4. jimmynine120

    jimmynine120 Enthusiast

    Messages:
    698
    Ratings:
    73
    You never know, post it on some YouTube videos of the mods. Maybe I'll do that too, on my old videos.
     
  5. FederalGOKU

    FederalGOKU Enthusiast

    Messages:
    104
    Ratings:
    40
    Thanks man this will make me get more into the Forza modding hopefully....question though can i do same thing u do with gamedb.slt file to all the other files?? cus i try to edit on forza 2 and i get disc read error when game starts..
     
  6. OP
    D3FEKT

    D3FEKT Bewbs

    Messages:
    3,423
    Ratings:
    1,742
    I put a tutorial above to bypass the check on any forza.

     
  7. fat pat 666

    fat pat 666 Lucifixture

    Messages:
    10,580
    Ratings:
    4,168
    i love your mods. and thanks for the tut
     
  8. FederalGOKU

    FederalGOKU Enthusiast

    Messages:
    104
    Ratings:
    40
    not what i meant lol i meant like to bypass files like gametunablesettings.ini and stuff lol but i already figured out that u can lol by giving it a try....thanks anyways :smile:
     
  9. OP
    D3FEKT

    D3FEKT Bewbs

    Messages:
    3,423
    Ratings:
    1,742
    oh misread what ya wrote lol.
     
  10. OP
    D3FEKT

    D3FEKT Bewbs

    Messages:
    3,423
    Ratings:
    1,742
  11. r3l4x

    r3l4x Newbie

    Messages:
    8
    Ratings:
    0
    hi great tut but the engine swap doesent work for me. i dont have the List_upgradecarengine value in my db, only as List_upgradeengine that also as engine values but does nothing in the game. ive added and deleted values from List_upgradeengine and they dont change anything, added engines dont appear and deleted engines dont desapear. so any clue on what is going on? is my game diferent or im i messing it up somehow?

    im running iso mod on xk3y
     
  12. OP
    D3FEKT

    D3FEKT Bewbs

    Messages:
    3,423
    Ratings:
    1,742

    It actually is List_upgradeengine not list_upgradecarengine. Little error of mine.
     
  13. r3l4x

    r3l4x Newbie

    Messages:
    8
    Ratings:
    0
    thanks for your reply but ive already tryed to add new values for cars that dont have engine conversion and its not soing up in the game. if i delete or replace a car that as a conversion in the game that works but adding new doesnt. for exemple if i replace or delete rhe reault 5 gt turbo conversion engine it works but if i add a engine to a fiat punto sport evo it wont show any conversion in game
     
  14. OP
    D3FEKT

    D3FEKT Bewbs

    Messages:
    3,423
    Ratings:
    1,742
    take a screenshot of what you've done and i'll see if you have done something wrong.
     
  15. r3l4x

    r3l4x Newbie

    Messages:
    8
    Ratings:
    0
  16. OP
    D3FEKT

    D3FEKT Bewbs

    Messages:
    3,423
    Ratings:
    1,742
    Looks fine.. Try giving it a price of like 1 or something. With rims it requires atleast 1 or more cr to make it show up and maybe it is acting the same way for engines though i doubt it is that because i always put 0 and works fine...
     
  17. r3l4x

    r3l4x Newbie

    Messages:
    8
    Ratings:
    0
    well its acting like the rims as with the price it shows up. maybe thats because its iso mod or TU or something, when my jtag arrives im gonna try my game there to see if its game that needs the price or if its because on iso mod


    thx alot :smile:
     
  18. r3l4x

    r3l4x Newbie

    Messages:
    8
    Ratings:
    0
    hi again. afer making a few swap mods i went to play with my frinds on privete match but the is a problem when the tracks loads they xbox crashes and i stay alone in the track. do you know what makes they xbox crash? they use unmoded game
     
  19. OP
    D3FEKT

    D3FEKT Bewbs

    Messages:
    3,423
    Ratings:
    1,742

    Because you're using a car with an engine that it isn't suppose to have. Their game tries loading your car, engine doesn't exist for that car and it crashes.
     
  20. SnYpZz

    SnYpZz Enthusiast

    Messages:
    315
    Ratings:
    24
    Can I use these on my retail without iso just using my jtag/rgh
     

Share This Page