Quantcast

Jump to content

» «
Photo

[V] How to create a own DLC for

No replies to this topic
Aebian
  • Aebian

    3D Artist

  • Members
  • Joined: 24 Oct 2010
  • Canada

#1

Posted 06 October 2016 - 06:16 PM

dlc_own_gtav.png

Tired of editing multiple DLC archives or game files to change your police car? Want your mods in one archive to have everything handy instead of editing multiple dlcpacks?
Create your own DLC!



1 - What do you need?
 

OpenIV - http://openiv.com/
Notepad ++ (or similar) - https://notepad-plus-plus.org/
7-Zip (or similar) - http://7-zip.org/
ScripthookV - http://www.dev-c.com/gtav/scripthookv/


 
the-line.jpg



2 - Pre-required steps
 

Install ScriptHookV.
Install OpenIV aswell the OpenIV.ASI which adds the ability to load custom archives and adds support to the allmighty "mods" folder. (The installer should then create a mods folder already in your GTA install directory).
Install Notepad++ if you don't have already and finally 7-Zip
 
 
 
the-line.jpg



3 - Copying of default game files
 

We need default files from the game so OpenIV can "virtually" replace them on runtime so that we can load our own mods without modifying base files.

Copy the update.rpf from \Grand Theft Auto V\update\ to Grand Theft Auto V\mods\update\
Then create this folder structure: \Grand Theft Auto V\mods\update\x64\dlcpacks\
2016-10-06_00-18-22.png
You just need the dlcpacks folder. I got more stuff installed thats why I have more files inside mostly on the screenshots...



the-line.jpg



4 - Create the DLC archive and folder structure
 

Create a folder called PATCHDAY20NG in \Grand Theft Auto V\mods\update\x64\dlcpacks\ . The latest patch (as of 10/06/2016) is PATCHDAY12NG. So that we have "enough" room for further updates until R* uses 20 as DLC number.
Once headed to \Grand Theft Auto V\mods\update\x64\dlcpacks\PATCHDAY20NG\ create a Rage Packaging File (RPF) as name enter dlc.
2016-10-06_00-35-38.png

Now you should have a dlc.rpf inside your PATCHDAY20NG where we put our mods and files (like carvations.meta, handling.meta, vehicles.meta and so one) inside.
Now open the dlc.rpf with OpenIV and we will create the folder structure in there. You need to create some folders (note that I use the default R* structure):
dlc.rpf\data\
dlc.rpf\x64\
dlc.rpf\x64\levels\
dlc.rpf\x64\levels\gta5\
dlc.rpf\x64\levels\gta5\vehiclemods\



the-line.jpg



5 - Create dlc files
 

setup2.xml - This file is used so that the dlc will be recognized by GTA V and will be loaded on runtime. [create this file directly in the root of the dlc.rpf]

<?xml version="1.0" encoding="UTF-8"?>
<SSetupData>
  <deviceName>dlc_PATCHDAY20NG</deviceName>
  <datFile>content.xml</datFile>
  <timeStamp>16/09/2016 13:37:00</timeStamp>
  <nameHash>PATCHDAY20NG</nameHash>
  <contentChangeSets />
  <contentChangeSetGroups>
    <Item>
      <NameHash>GROUP_EARLY_ON</NameHash>
      <ContentChangeSets>
        <Item>CCS_PATCHDAY20_NG_INIT</Item>
      </ContentChangeSets>
    </Item>
    <Item>
      <NameHash>GROUP_TITLEUPDATE_STARTUP</NameHash>
      <ContentChangeSets />
    </Item>
    <Item>
      <NameHash>GROUP_UPDATE_STREAMING</NameHash>
      <ContentChangeSets>
        <Item>CCS_PATCHDAY20_NG_STREAMING</Item>
        <Item>CCS_PATCHDAY20_NG_STREAMING_MAP</Item>
      </ContentChangeSets>
    </Item>
    <Item>
      <NameHash>GROUP_UPDATE_TEXT</NameHash>
      <ContentChangeSets>
        <Item>CCS_PATCHDAY20_NG_TEXT</Item>
      </ContentChangeSets>
    </Item>
    <Item>
      <NameHash>GROUP_UPDATE_DLC_PATCH</NameHash>
      <ContentChangeSets />
    </Item>
    <Item>
      <NameHash>GROUP_UPDATE_DLC_METADATA</NameHash>
      <ContentChangeSets />
    </Item>
    <Item>
      <NameHash>GROUP_UPDATE_WEAPON_PATCH</NameHash>
      <ContentChangeSets />
    </Item>
    <Item>
      <NameHash>GROUP_POST_DLC_PATCH</NameHash>
      <ContentChangeSets />
    </Item>
    <Item>
      <NameHash>GROUP_STARTUP</NameHash>
      <ContentChangeSets />
    </Item>
    <Item>
      <NameHash>GROUP_ON_DEMAND</NameHash>
      <ContentChangeSets />
    </Item>
  </contentChangeSetGroups>
  <startupScript />
  <scriptCallstackSize value="0" />
  <type>EXTRACONTENT_LEVEL_PACK</type>
  <order value="22" />
  <minorOrder value="0" />
  <isLevelPack value="true" />
  <dependencyPackHash />
  <requiredVersion />
  <subPackCount value="0" />
</SSetupData>
----------

content.xml - This file is used to define where the vehicles.rpf, carcols.meta, vehicles.meta, carvations.meta ect. is located. [create this file directly in the root of the dlc.rpf]
<?xml version="1.0" encoding="UTF-8"?>
<CDataFileMgr__ContentsOfDataFileXml>
  <disabledFiles />
  <includedXmlFiles />
  <includedDataFiles />
  <dataFiles>
    <Item>
      <filename>dlc_patchday20ng:/data/vehicles.meta</filename>
      <fileType>VEHICLE_METADATA_FILE</fileType>
      <overlay value="true" />
      <disabled value="true" />
      <persistent value="false" />
    </Item>
    <Item>
      <filename>dlc_patchday20ng:/data/carcols.meta</filename>
      <fileType>CARCOLS_FILE</fileType>
      <overlay value="true" />
      <disabled value="true" />
      <persistent value="true" />
    </Item>
    <Item>
      <filename>dlc_patchday20ng:/data/carvariations.meta</filename>
      <fileType>VEHICLE_VARIATION_FILE</fileType>
      <overlay value="true" />
      <disabled value="true" />
      <persistent value="true" />
    </Item>
    <Item>
      <filename>dlc_patchday20ng:/data/dlctext.meta</filename>
      <fileType>TEXTFILE_METAFILE</fileType>
      <overlay value="true" />
      <disabled value="true" />
      <persistent value="true" />
    </Item>
    <Item>
      <filename>dlc_patchday20ng:/data/handling.meta</filename>
      <fileType>HANDLING_FILE</fileType>
      <overlay value="true" />
      <disabled value="true" />
      <persistent value="true" />
    </Item>	
    <Item>
      <filename>dlc_patchDay20NG:/%PLATFORM%/levels/gta5/vehicles.rpf</filename>
      <fileType>RPF_FILE</fileType>
      <overlay value="true" />
      <disabled value="true" />
      <persistent value="true" />
    </Item>
    <Item>
      <filename>dlc_patchDay20NG:/%PLATFORM%/levels/gta5/vehiclemods/vehmods.rpf</filename>
      <fileType>RPF_FILE</fileType>
      <overlay value="true" />
      <disabled value="true" />
      <persistent value="true" />
    </Item>
  </dataFiles>
  <contentChangeSets>
	<Item>
	  <changeSetName>CCS_PATCHDAY20_NG_STREAMING</changeSetName>
	  <filesToDisable />
	  <filesToEnable>
        <Item>dlc_patchDay20NG:/data/handling.meta</Item>
        <Item>dlc_patchDay20NG:/data/vehicles.meta</Item>
        <Item>dlc_patchDay20NG:/data/carcols.meta</Item>
        <Item>dlc_patchDay20NG:/data/carvariations.meta</Item>
        <Item>dlc_patchDay20NG:/data/dlctext.meta</Item>	
        <Item>dlc_patchDay20NG:/%PLATFORM%/levels/gta5/vehicles.rpf</Item>
        <Item>dlc_patchDay20NG:/%PLATFORM%/levels/gta5/vehiclemods/patchDay20NG_mods.rpf</Item>
	  </filesToEnable>
	  <txdToLoad />
	  <txdToUnload />
	  <residentResources />
	  <unregisterResources />
	</Item>
  </contentChangeSets>
  <patchFiles />
</CDataFileMgr__ContentsOfDataFileXml>
----------

Now move into dlc.rpf\data\ and add the carvations.meta, vehicles.meta and so on:

<?xml version="1.0" encoding="UTF-8"?>

<CExtraTextMetaFile>
	<hasGlobalTextFile value="true"/>
	<hasAdditionalText value="false"/>
	<isTitleUpdate value="false"/>
</CExtraTextMetaFile>


<?xml version="1.0" encoding="UTF-8"?>
<CVehicleModelInfo__InitDataList>
  <residentTxd>vehshare</residentTxd>
  <residentAnims />

  
</CVehicleModelInfo__InitDataList>



<?xml version="1.0" encoding="UTF-8"?>
<CVehicleModelInfoVariation>
  <variationData> 
     
  </variationData>
</CVehicleModelInfoVariation>



<?xml version="1.0" encoding="UTF-8"?>
<CVehicleModelInfoVarGlobal> 
  <Kits>
  </Kits>
  <Lights>
  </Lights>
</CVehicleModelInfoVarGlobal>




<?xml version="1.0" encoding="UTF-8"?>

<CHandlingDataMgr>
  <HandlingData>
 
  </HandlingData>
</CHandlingDataMgr>



----------

Now move into dlc.rpf\x64\levels\gta5 and create a Rage Packaging File: vehicles.rpf
2016-10-06_00-35-38.png


Enter the folder dlc.rpf\x64\levels\gta5\vehiclemods\ and create a vehiclemods.rpf inside there.
2016-10-06_19-30-53.png


Once that done you successfully created the files for your DLC to work properly!




the-line.jpg



6 - Tell GTA to load the custom dlc!


Earlier we copied the update.rpf from \Grand Theft Auto V\update\ to Grand Theft Auto V\mods\update\. Now we can move on and edit files inside.
We need to edit two files: dlclist.xml & extratitleupdatedata.meta. They are located in Grand Theft Auto V\mods\update\update.rpf\common\data\.
 

1.) extract the file and edit it. Add the following line to the <Paths> section:

	<item>dlcpacks:\patchday20ng\</item>
	

2.) Save the file and replace the one in Grand Theft Auto V\mods\update\update.rpf\common\data\
As of 10/06/2016 it will look like this:
2016-10-06_20-03-42.png


1.) extract the file and edit it. Add the following code to the Mount section:

			</Item>
		<Item type="SExtraTitleUpdateMount">
		<deviceName>DLC_PATCHDAY20NG:/</deviceName>
		<path>update:/dlc_patch/PATCHDAY20NG/</path>
		</Item> 

2.) Save the file and replace the one in Grand Theft Auto V\mods\update\update.rpf\common\data\
As of 10/06/2016 it will look like this:
2016-10-06_20-06-15.png







the-line.jpg



7 - add car mods and all that!



Thats fairly simple. First download your car mod. It mostly will come with yhft and ytd files

2016-10-06_19-37-18.png

In my case I want to replace the police3 police cruiser. So the steps I do are the following:

1.) extract .yft + .ytd files to a location you prefer.
2.) import the files to the vehicles.rpf dlc.rpf\x64\levels\gta5\vehicles.rpf\
3.) if required: add the vehicles.meta, handling.meta or similiar files to your meta files in dlc.rpf\data\
4.) Once done close the dlc.rpf and start GTA V. You should see the changes instantly after the loading is done.




the-line.jpg



8 - Questions



Drop them below and I will try to answer them as soon as I can.
  • GTA BELGIUM likes this




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users