Jeremy Pritts cc12727d18 Fix #82
2021-11-26 21:09:38 -05:00

2.5 KiB

Common Issues

Why doesn't AssetRipper export Mono Scripts from my bundle?

Except in extremely rare and special cases, there are no mono scripts stored in asset bundles.

Mono scripts are stored in C# assemblies, ie .dll files. The contents of these assemblies can be viewed in ILSpy.

Note: C++ assemblies also use the .dll extension. If C# code can't be viewed after opening a .dll file in ILSpy, then it's not a C# assembly.

In order to export mono scripts with asset bundle assets, the relevant assemblies must be included in the import. You can do this by:

  1. Place all the assemblies in a folder.
  2. Select that folder and the assetbundle(s) being ripped.
  3. Drag those into AssetRipper at the same time.

If it worked, you'll get this line in the log:

Import : Files use the 'Mono' scripting backend.

If it didn't work, there will be this line:

Import : Files use the 'Unknown' scripting backend.

For IL2Cpp games, use Cpp2IL to generate assemblies. Unhollowed assemblies used in modding will not work.

Duplicate Assemblies

This has a signature error in the log file.

Could not add pe assembly to name dictionary!

It is almost always caused by having two assemblies with the same name in the Managed folder or any subfolders. Note that the "name" in this case is the assembly name shown in a decompiler not the file name.

Modified Assemblies

This can include publicized assemblies and/or unhollowed assemblies.

Modified assemblies almost always cause read errors when used in AssetRipper. Here are some common changes that are known to cause lots of problems:

  • Publicizing an assembly changes field deserialization on Monobehaviours.
  • Attribute removal can also change field deserialization.
  • Modified method bodies can cause decompiler errors.

Game ripped without errors, but Unity crashes on launch

The most common cause of this is not upgrading your project's Unity version. Currently, AssetRipper exports everything as a 2017.3.0 project, but if the game used a newer Unity version, this needs to be upgraded in UnityHub before launching the editor.

You should be prompted with confirmation box beginning with Your project was last saved with a different version of Unity.. Click Continue.

Other possible causes of this issue include:

  • Exporting engine assets as normal assets
  • Including engine dll assemblies in the project
  • Bugged YAML export