• 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

Thank you very much for your hard work DerPopo!
I hope you will continue with this project for a long time. I might as well donate some money to support the project!
You're welcome!

I do consider UABE to be a long term project. However, I don't want to make myself feel obliged to it by accepting donations since it's hard to predict how much time I will have for it in the future. Still, thank you for the offer!

Hello! Thanks for that great tool, but I've got a couple of questions here.It was easy to figure out how export Texture2D as png as well as replace this with my own graphics.

But is there any way how I can easily export all images in a batch? e.g. if I dont know the name of resource and just trying to find him among all the rest of assets. Also, is there any chance to decompile/change monobehaviour script inside asset?

Thanks in advance!
You can select multiple assets either by dragging with the mouse or through ctrl+click / shift+click.

If you're referring to the game assemblies such as Assembly-CSharp, you can either use dnSpy or tools such as ILSpy or JustDecompile with the Reflexil plugin. If you've got a bundle file with .dlls embedded (e.g. some older web builds), you can export and import these files as well.

In case you mean MonoBehaviour assets (these contain default values used to instantiate a MonoBehaviour object), you can export a dump, allow UABE to extract the script information, modify the dump and import it back.

 
You're welcome!I do consider UABE to be a long term project. However, I don't want to make myself feel obliged to it by accepting donations since it's hard to predict how much time I will have for it in the future. Still, thank you for the offer!
Fair point. But I do think people wouldn't mind. It's like paying $50 for a Season Pass and in a few years, no one plays that game anymore. Game won't be supported anymore or have any updates. That's how I see it basically.

 
Is there a way to add more new file into asset?

for example, if my asset file have File ID 0, 1 and 2.

then if i use "File -> Add" and set File ID 3, the app will crash.

any help? :x

 
Need help

files.jpg

Is there a way to add more file into this list?

I try to edit its binary but not work, any idea? :'(

 
One more question: I search for specific keywords (using total commander) and it shows that it's contained in globalmanagers file. I try to extract the resources, but is there any way how can I search for that specific resource? also still not clear is there any chance I can edit monobehaviour script?

 
Missing Save File

Hi Dude... I just found your great tool...

i was trying to edit the image and save them.. ( use 2.2 betta version)

but the result of new file is missing..

this before saved / original file

Image 2.jpg

and this after saved / after edit texture2D

Image 21.jpg

thanks You... and sorry for bad english :(

 
Last edited by a moderator:
Hello
How can i export materiel type ? ps: i can export texture 2d but materiel no :upset:
You can export a dump of materials, and the textures belonging to it. Exporting the materials to a compatible format (which?) would require a new plugin and support for exporting the shader linked to that material (and there are three or more different shader formats across the Unity versions supported by UABE).

Is there a way to add more new file into asset?
for example, if my asset file have File ID 0, 1 and 2.

then if i use "File -> Add" and set File ID 3, the app will crash.

any help? :x
That crash is a bug and will be fixed.

It automatically assigns a Path ID for the new asset (which you can change), and you can enter the File ID from the drop-down list in View->Dependencies.

Note that you can only add a single asset through File->Add, not a new .assets file.

This fileHow to use UABE unzip?

can't open this file

version 2.2
In case you are not the same person, please refer to https://github.com/DerPopo/UABE/issues/169#issuecomment-352243453 .

View attachment 23562
Is there a way to add more file into this list?

I try to edit its binary but not work, any idea? :'(
Currently there is no option to do that in UABE. You could do it with a hex editor (though you need to resize the dependencies list, manually insert the new dependency entry, apply 4-byte alignment for the first asset, then update the metadata size, total file size and first asset offset in the file header) or through the UABE 2.1 API (which still has a bug saving .assets files that might be an issue in some cases). I'll get 2.2 API ready when I find time for it.

One more question: I search for specific keywords (using total commander) and it shows that it's contained in globalmanagers file. I try to extract the resources, but is there any way how can I search for that specific resource? also still not clear is there any chance I can edit monobehaviour script?
You could select all assets in globalgamemanagers (i.e. if you open globalgamemanagers in UABE, select all assets with File ID 0) and do a raw or dump export, and find out which exported asset the search term is in.

I'm not sure what you mean, since there are MonoBehaviour assets and MonoBehaviour type classes. The first one is listed in .assets files and can be edited with UABE (export dump, allow UABE to extract script information or use "Tools->Get script information" first, do whatever you want to the dump file, import dump). The second one is in assembly files which you can edit with tools like dnSpy or ILSpy+Reflexil, or compiled il2cpp on some restrictive platforms such as iOS afaik, which probably are far more complicated to edit.

Hi Dude... I just found your great tool... i was trying to edit the image and save them.. ( use 2.2 betta version)

but the result of new file is missing..

this before saved / original file

and this after saved / after edit texture2D

thanks You... and sorry for bad english :(
Could you be more specific? Which files did you open for the screenshots (if possible, upload it somewhere and send me a link via PM), which texture did you replace (name, file id, path id)? The file in the second screenshot looks like a single .assets file without dependencies, and it doesn't look like anything is missing. The first file looks like a different one.

 
Could you be more specific? Which files did you open for the screenshots (if possible, upload it somewhere and send me a link via PM), which texture did you replace (name, file id, path id)? The file in the second screenshot looks like a single .assets file without dependencies, and it doesn't look like anything is missing. The first file looks like a different one.

Thank's for your reply.. I just send you a PM..

 
When I export a 100KB MonoBehaviour (contains UI strings), edit anything, then attempt to import it, I get a massive memory leak. Causes my system to lock up before the process is killed entirely.

 
When I export a 100KB MonoBehaviour (contains UI strings), edit anything, then attempt to import it, I get a massive memory leak. Causes my system to lock up before the process is killed entirely.
Have you also tried .json export/import? Anyway, could you send me a dump that causes the issue so I can reproduce it?

 
Hmmm....do work properly feature of loading textures with MIP-map now ?

I tried to replace 2Dtexture in asset, but the Game (7DtD A16.4(b8)) crash when trying to load the texture (or asset?).

This happens if the checkbox "Has Mipmap" enabled. If you do not enable this checkbox - then everything works fine, but without the Mip-map of course.

I haven't done any of the settings Utility, do not choose the type of database or type of package.

I something missing?

PS: If i understand correctly, enabling this checkbox causes the generation of MIP-levels from the UABE?

that is - i don't have to load a texture with contains MIP levels?

UPD:


Now it Work!


 
Last edited by a moderator:
Hi!

Great tool, very useful :)

I have a question (or feature request?..):

Is there any way to add "int_plastic_brown" into container "materials\int_plastic_brown (Base)" like others assets on this pic?:



Easier (and more reliable) than manually editing of "unnamed asset-globalgamemanagers-13-ResourceManager"...

 
2.2 beta 2 (Happy New Year edition) is out with Unity 2017.3 support and bug fixes!

______

Is there any way to add "int_plastic_brown" into container "materials\int_plastic_brown (Base)" like others assets on this pic?
Currently, the best way is to edit the json dump of the ResourceManager asset (Export Dump, select json instead of txt). Locate the ResourceManager_Dependency that belongs to the asset with (Base) by searching for the Path ID (make sure it also appears under m_Container with the same m_FileID and the correct name), and add your asset to the container by inserting a new entry to m_Dependencies with your asset's Path ID and the proper File ID.

You can look up the File ID of your asset by looking at the View->Dependencies dialog. The drop down list lists absolute File IDs (matching those in the main dialog) and the matching .assets files. Then look up the relative File ID by selecting globalgamemanagers and adding 1 to the number next to the .assets file name you looked up. Use the relative File ID for the entry in ResourceManager.

Hmmm....do work properly feature of loading textures with MIP-map now ?
PS: If i understand correctly, enabling this checkbox causes the generation of MIP-levels from the UABE?

that is - i don't have to load a texture with contains MIP levels?
There was an issue with crunched texture mip maps. They should be working now.

UABE generates the mip maps on its own from a single texture, always combining four pixels to one for each mip map level. Crunch uses a different filter, I haven't touched the settings for it.

So... Der. Can we get the ability to extract animations? Also, what are the .dat files for? Thanks!
Not yet, but .fbx Mesh & AnimationClip export is on my TODO list.

The .dat files contain the asset data in one of Unity's own asset formats. They are only useful with a hex editor or when copying some assets to another project built with the same Unity version, since they don't have any indication which file format and version they have.

 
2.2 beta 2 (Happy New Year edition) is out with Unity 2017.3 support and bug fixes!Currently, the best way is to edit the json dump of the ResourceManager asset (Export Dump, select json instead of txt). Locate the ResourceManager_Dependency that belongs to the asset with (Base) by searching for the Path ID (make sure it also appears under m_Container with the same m_FileID and the correct name), and add your asset to the container by inserting a new entry to m_Dependencies with your asset's Path ID and the proper File ID.

You can look up the File ID of your asset by looking at the View->Dependencies dialog. The drop down list lists absolute File IDs (matching those in the main dialog) and the matching .assets files. Then look up the relative File ID by selecting globalgamemanagers and adding 1 to the number next to the .assets file name you looked up. Use the relative File ID for the entry in ResourceManager.
"Currently" means it can be enhanced in future? :)

There's no hurry - it can wait for monts easy...

Btw, thanks for detailed explanation, it's very close to my thoughts - not very hard but have a lots of digits and counters to care about.

And my wishes of Happy New Year from Russia! :)

A0fHuAZ.gif


 
2.2 beta 2 (Happy New Year edition) is out with Unity 2017.3 support and bug fixes!
Oh! :) I think I found something under the tree ! :D :D :D

Happy New Year!!!

******************************************************

UPD:

!!! mip-maps work...

I have a already-made list of what I going to do with this! :)

Greatest Gratitude!

******************************************************

UPD:

IgypxwA.jpg


works well with blocks, terrains and zombie models!

 
Last edited by a moderator:
Back
Top