- 1 BEFORE WE BEGIN!!!!!
- 1.1 Requirements and tools
- 1.2 Step 1 : Copy-Paste bundles
- 1.3 Step 2 : Extracting Resources
- 1.4 Step 3 : Retexture
- 1.5 Step 4 : AssetBundle and CABID edits
- 1.6 Step 5 : Building server-side mod
- 1.7 Step 6 : Test and debug
BEFORE WE BEGIN!!!!!
Please, please backup your original files. The purpose of this tutorial is to show how retexture is done properly without modifying any stock bundles.
Tutorial is written by Toxic#8402 and retr0#3244.
Edit : please watch this video instead : 
Requirements and tools
- UABE and/or AssetStudioGUI
- Basic IDE (please for the love of god use IDE.)
- Any graphic manipulation software (Photoshop/GIMP)
- A bit of common sense and logic
Step 1 : Copy-Paste bundles
Yes. As the step suggests, copy paste the bundles that you want to edit into another folder ; preferably into an empty folder on your desktop.
- So as example we take this foregrip_all_magpul_afg.bundle to "nen" in desktop
- Since it uses another bundles as textures, we gonna copy foregrip_all_magpul_afg_textures.bundle as well.
Step 2 : Extracting Resources
You can choose to edit the textures with or without the 3D models (or meshes for cool guys B) )
- Without 3D mesh :
- Open the bundles using UABE/AssetStudioGUI that contains textures (incase of our AFG is foregrip_all_magpul_afg_textures.bundle).
- Take note that some attachments' textures maybe in their bundles itself. Other note is for weapons, the textures are in weapon_name/textures/client_assets.bundle
- Extract the "__diff" at "Edit->Export as .tga or .png/Export Selected Assets", save it into "nen" also.
- You are now ready for edit.
- With 3D mesh :
- Same process as above, but in this case we gonna extract the meshes.
- This time, using AssetStudioGUI, open up the main bundle that contain meshes and filter "meshes"
- In weapons' case it's in weapon_name/client_assets.bundle
- Now, extract the LOD0 mesh, save it to "nen".
- You are now ready for edit.
Step 3 : Retexture
Well go on with your creativity. It's just editing the file directly without mesh. For editing with mesh :
- Open up Blender and Import the LOD0.obj and the diff that you extracted.
- Select shading at the top -> select your model -> drag the texture to the bottom are where you see nodes -> connect your image with the base color
- Click "Texture Edit" and continue with your creativity.
- Once you're happy with the design go to Texture Edit -> Image -> Save as -> name your texture to anything
Last but not least, put it back into the .bundle by replacing LOD0.diff with above steps using UABE's Edit.
Step 4 : AssetBundle and CABID edits
This is the step that most people skip. I want y'all to learn from this step and so on so that you dont mess up your original game files.
- Scroll and find AssetBundle in the main bundles.
- In weapons' case you have to edit every single bundles that it uses ; textures/client_assets.bundles, client_assets.bundle and the weapon_container.bundle
- Extract the AssetBundle as dump.
- Find 1 string m_Name = and feel free to edit to whatever name you want so in our AFG case ; "foregrip_afg_red.bundle". Note that it has to end with .bundle
- Import dump and save as (any_name).bundle
- This process is relatively simple if not for most bundles, as some may have a different bundle's structure.
- Open up TarkovBundleHelper and open your bundle
- In weapons' case, you have to add the other bundles ; textures/client_assets.bundles, client_assets.bundle, animcontrollerdata.bundle in Modded dependencies. This is also the same case for attachments bundles with their textures is outside their main bundle.
- Click "Generate new cabIDs" and you are done.
Example below is changing the cabID for our AFG
Step 5 : Building server-side mod
In this step you need your logic sense. There are also rules to apply here.
First , create a new folder in user/mods with authorname-modname-modversion ; for example retr0-AFGGRIP-1.0.0
Second, create a folder structure like this :
- your assort goes here...
- your items goes here...
- your locales goes here...
- your templates go here...
- your modloader.js goes here...
Each section's description
- assort is how much item is available on flea
- item is the item's properties
- locales is the translation in-game
- templates is where the item is in the flea's category
Server-side Mod's rules
- filenames should be same as ID name; so for example our item's ID is afg_red so the name should be afg_red.json
- always change their _id, _name, Name, ShortName and Desc. in the items
- _tpl in templates corresponds to db/templates/items.json (try to search the tpl for the original item)
- modname and authorname should be same in mod's folder name and in mod.config.json.
- Find the original item in server's db and paste it into items. In our case, the afg_red, is from the Magpul AFG foregrip.
- Remember the second rule? Go ahead and check.
- After that, remember the AssetBundle edit? replace the stock ".bundle" in the prefab path with the one we edited.
- Last, feel free to modify almost every aspect from ergo to recoil and weight and etc...
- Replace accordingly with picture below; obviously the price is customizable, but not below or equal to 0.
- So this is the example of afg_red that is done :
Step 6 : Test and debug
- Try to load into game and if you encounter any error, try recheck your server-side mod for any error.
- If the item isn't coming out, try check your prefab path and check if you edit the dump correctly.
- Traces.log and server logs can help you to debug any errors. (if not all)
Contact me at #modification-chat if you need help.