• If you have a mod, tool or prefab, please use the Resources section. Click Mods at the top of the forums.

UABE - Asset Bundle Extractor

Hey DerPopo :) can you add more function ?

Unity Assets Bundle Extractor

Support extract all assets one time :)

And Considered images directly on tools :)

Can you support more ???

 
Extracting Terrain with Textures

The minibike is created from the GameObject "entities/vehicles/minibike_prefab" (if you open globalgamemanagers through UABE, you can search for that path without " of course). It contains a Transform component (in View Data, expand m_Component, Array, 0, data, second and view asset) that has all minibike parts linked as children Transform (they contain a reference to the according GameObject).There are two options :

1) Extending one of the minibike's part meshes by the whip antenna, which requires adding your texture to an existing one (I'm not sure if that's easily doable).

You can find the mesh location in GameObject->m_Component->Array->(usually 1)->data->second->view asset->Base->m_Mesh, the file id in brackets is the one you're looking for.

You can find the texture location in GameObject->m_Component->Array->(usually 1)->data->second->view asset->Base->m_Materials->Array->0->data->view asset->Base->m_SavedProperties->m_TexEnvs->Array->5->data->second->m_Texture.

UABE can't export rigged meshes and can't import meshes at all so far. As far as I know, all the minibike parts have bones though so it likely won't work good. The only way to import a mesh is through the .assets of a built custom Unity project with that mesh in a scene.

2) Adding another part to the minibike.

While it should work in theory, I haven't found a way not crashing the game even though I have created a new Transform, GameObject and SkinnedMeshRenderer and added all necessary dependencies to the ResourceManager assets. The game crashes because it somehow doesn't load my assets properly but tries to access them, so either the assets themselves are wrong or I am missing another dependency tree.

I'll report back if I find a way to fix it.

In case you store your texture in a bundle file, there should be an unnamed asset of type AssetBundle (path id always is 1 afaik) in at least one of the bundle's .assets that contains the names in the m_Container array. Export a dump, copy the last entry in m_PreloadTable and adjust it so it e.g. looks like this :

Code:
 0 Array Array (144 items)
  [b][size=3]0 int size = 145[/size][/b]
... (entries 0-142)
  [143]
   0 PPtr<Object> data
    0 int m_FileID = 0
    0 SInt64 m_PathID = 45
  [b][size=3][144][/size]
   [size=3]0 PPtr<Object> data[/size]
    [size=3]0 int m_FileID = 0[/size]
    [size=3]0 SInt64 m_PathID = 46[/size][/b]
The changed lines are marked in bold font.

You don't need to fix the index in the brackets. It's important that the new entry is at the end and that you fix the size. Adjust the file id and path id to match your asset.

Perform similarly on m_Container. Copy one item (you can use any in this case), increase the size, enter the new name, set preloadIndex to the index of the entry in m_PreloadTable, preloadSize to 1 and also modify the PPtr to match your asset.

In .assets files, the ResourceManager asset in the mainData or globalgamemanagers file (depends on the Unity version of the game) has all the names. Copy the first entry (or any other entry) in m_Container, set your name and file/path ID and adjust the size. The file id here isn't the same one as in the list UABE shows, you need to look for other named assets in the same .assets file to find the correct one.
Is it possible to extract the terrain with the textures if so please let me know thank you so much. :tears_of_joy:

 
Extracting Terrain with Textures

Anyone know how to do this or if it's possible? If so please let me know thanks. :kiwi-fruit:

 
Mac version?

Is it possible to make a Mac version of UABE, maybe one that would run under Mono? Or maybe release src code to enable porting to Mac?

 
Hi. This is such a great tool because it support 64 bit an all, but it can only read .asset files. HOw about associated file like .asset.resS?

Please add support to extract .resS files.

 
Uhm

Hi. This is such a great tool because it support 64 bit an all, but it can only read .asset files. HOw about associated file like .asset.resS?Please add support to extract .resS files.
Is dev dead ??

 
Is dev dead ??
No, I'm fine :D

I'm relatively busy at the moment so it can sometimes take a bit longer for me to respond.

Hi. This is such a great tool because it support 64 bit an all, but it can only read .asset files. HOw about associated file like .asset.resS?Please add support to extract .resS files.
.resS and .resource files only contain raw data used by the .assets file, such as for Texture2D and AudioClip assets. The data from these files can be exported with plugins from the opened .assets file.

Is it possible to make a Mac version of UABE, maybe one that would run under Mono? Or maybe release src code to enable porting to Mac?
UABE is written in native C++ so Mono doesn't work. Maybe it works with the Win32 compatibility layer Wine (at least older versions of UABE work on Linux with Wine). There are some well-written instructions on how to install Wine on OSX.

A native Linux version (maybe also OSX) is on my long ToDo-list, even if it becomes a console version.

Is it possible to extract the terrain with the textures if so please let me know thank you so much. :tears_of_joy:
If you use View Data on the TerrainData asset, you can look for texture references in m_SplatDatabase->m_Splats and m_DetailDatabase->m_DetailPrototypes. Note down the File ID in brackets and the Path ID for each of the textures you want to export and locate the textures to export them as with other textures.

Hey DerPopo :) can you add more function ?Unity Assets Bundle Extractor

Support extract all assets one time :)

And Considered images directly on tools :)

Can you support more ???
I'm not completely sure what you mean. In an opened .assets file, you can select multiple assets of the same type (e.g. all Texture2Ds) by sorting for the type first and export them like you would do with a single asset. You can't export all Texture2Ds and AudioClips at the same time

If you need to export from multiple .assets files at the same time, you can easily select multiple .assets files in the file open dialog.

 
Last edited by a moderator:
No, I'm fine :D I'm relatively busy at the moment so it can sometimes take a bit longer for me to respond.

.resS and .resource files only contain raw data used by the .assets file, such as for Texture2D and AudioClip assets. The data from these files can be exported with plugins from the opened .assets file.

UABE is written in native C++ so Mono doesn't work. Maybe it works with the Win32 compatibility layer Wine (at least older versions of UABE work on Linux with Wine). There are some well-written instructions on how to install Wine on OSX.

A native Linux version (maybe also OSX) is on my long ToDo-list, even if it becomes a console version.

If you use View Data on the TerrainData asset, you can look for texture references in m_SplatDatabase->m_Splats and m_DetailDatabase->m_DetailPrototypes. Note down the File ID in brackets and the Path ID for each of the textures you want to export and locate the textures to export them as with other textures.

I'm not completely sure what you mean. In an opened .assets file, you can select multiple assets of the same type (e.g. all Texture2Ds) by sorting for the type first and export them like you would do with a single asset. You can't export all Texture2Ds and AudioClips at the same time

If you need to export from multiple .assets files at the same time, you can easily select multiple .assets files in the file open dialog.
Wow. it works flawless now :D I couldn't get it to work with version 2.0

Also, does this tool support say...replacing contents in the .asset or .resS files.

 
Hi guys, I have a question, if the files have a cab compression and it has the cache as it is extracted automatically?

I have more than 200 hundred files and model split it in parts ...

Unpack each individually and look of the model, I will spend a lot of time :nightmare:

Is it possible to automatically make the decompression of all cache files in a folder?

 
Hi!

I have the same problem as black_racer. Lots of .cache files (mobile game content), for every single of them i do these steps:

Open 6aac84fc825dabe02c89c9ece79241ce_assetbundle.cache file in UABE, copying it's name to clipboard in the open dialogue window. UABE says "This bundle file is compressed! Do you wish to unpack it?", i press "Yes", save dialogue window pops up (without any suggestion for name), paste copied name, change it to 6aac84fc825dabe02c89c9ece79241ce.assetbundle by replacing "_" with ".", save. Then i have to press [Export] button and save again as 6aac84fc825dabe02c89c9ece79241ce.assets

Any help with automate of this process would be great.

Something like command line batch extract, then batch export. Or maybe export to .assets from .cache in one step?..

Sample is uploaded here.

 
LOL, i got it to work! :glee:

I tried before existing batch functions and got only errors here.

Now i test it with all stages of file (cache, CAB, asset) - no luck.

Then i convert my text file with "+DIR y:\Cache" text inside to encoding "UTF-8 without BOM" in terms of Notepad++ and it works now!

Succesfully converted all .cache files in this folder to .assets!

Command is: AssetBundleExtractor.exe batchexport batch.txt

(there's also typo in Usage text AssetsBundleExtractor)

batch.txt have only path to directory inside: +DIR y:\Cache

 
Hello! Cool tool dude!

I'm trying to change menu_music_long_lp.

I have the latest version afaik (from front page(?)) and both fix's for it, im using x64 bit version.

Anyway, I can view and export dump data to a .txt lovely. I open sharedassets0.assets with UABE.

I edit the exported dump .txt changing these;

this:

1 string m_Source = "sharedassets0.resource"

0 UInt64 m_Offset = 0

0 UInt64 m_Size = 2262240

to this:

1 string m_Source = "sharedassetsTWD.resource"

0 UInt64 m_Offset = 0

0 UInt64 m_Size = 8327000

AND then I import dump it back into the sharedassets0.assets , hit ok, UABE asks if I want to save, i hit yes, i save the file BUT when I open the saved file to see if it worked all most all of the data is missing :(

am I doing somthing wrong here? i dont see it. thanks.

fyi, Following this post instructions: https://7daystodie.com/forums/showthread.php?32600-Overriding-vanilla-files-(assets-)&p=314195&viewfull=1#post314195

 
Last edited by a moderator:
Hello! Cool tool dude!
I'm trying to change menu_music_long_lp.

I have the latest version afaik (from front page(?)) and both fix's for it, im using x64 bit version.

Anyway, I can view and export dump data to a .txt lovely. I open sharedassets0.assets with UABE.

I edit the exported dump .txt changing these;

this:

1 string m_Source = "sharedassets0.resource"

0 UInt64 m_Offset = 0

0 UInt64 m_Size = 2262240

to this:

1 string m_Source = "sharedassetsTWD.resource"

0 UInt64 m_Offset = 0

0 UInt64 m_Size = 8327000

AND then I import dump it back into the sharedassets0.assets , hit ok, UABE asks if I want to save, i hit yes, i save the file BUT when I open the saved file to see if it worked all most all of the data is missing :(

am I doing somthing wrong here? i dont see it. thanks.

fyi, Following this post instructions: https://7daystodie.com/forums/showthread.php?32600-Overriding-vanilla-files-(assets-)&p=314195&viewfull=1#post314195
hmmm....I also use this method to replace the music, on A15.1 - it works.

Try my files - they checked.

You open the asset through globalgamemanagers ?

 
To be honest I am probably doing something wrong.

I was opening resources.assets, as far as I remember, selecting the item mentioned in it, then hitting 'export dump', changing the details as mentioned previously then I was attempting to 'import dump' the new information in. I tried the same thing by opening globalgamemanagers instead but I'm getting the same result. Does it matter that I am only selecting the file in the list I want to edit to export/import or must I somehow select the whole list?

Must I also not move the filed from the 7d2d directory to gt this done? as I like to copy to desktop first so im not wrecking the original files ect.

Thanks for taking the time to help me, i notice your .txt file has the same name as the item im trying to edit, mine does too, but when I export it originally there are some numbers, menu_music_long_lp_6_6.txt ..I thought it best to not change them, but idk.

 
To be honest I am probably doing something wrong.
I was opening resources.assets, as far as I remember, selecting the item mentioned in it, then hitting 'export dump', changing the details as mentioned previously then I was attempting to 'import dump' the new information in. I tried the same thing by opening globalgamemanagers instead but I'm getting the same result. Does it matter that I am only selecting the file in the list I want to edit to export/import or must I somehow select the whole list?

Must I also not move the filed from the 7d2d directory to gt this done? as I like to copy to desktop first so im not wrecking the original files ect.

Thanks for taking the time to help me, i notice your .txt file has the same name as the item im trying to edit, mine does too, but when I export it originally there are some numbers, menu_music_long_lp_6_6.txt ..I thought it best to not change them, but idk.
In case you're trying to overwrite the opened .assets file, try another file name. It won't work otherwise.

 
The program works pretty well, however I was not able to open some script files. I'm receiving "Unable to read bundle file! (Invalid file or unknown version?)" error.

This is the link for the files. I really need to get the .txt files inside for translation purposes. Any help is greatly appreciated

https://www.mediafire.com/?ld8pq30rn04ak8k

 
Back
Top