GithubHelp home page GithubHelp logo

assetripper / assetripper Goto Github PK

View Code? Open in Web Editor NEW
3.1K 43.0 435.0 440.89 MB

GUI Application to work with engine assets, asset bundles, and serialized files

Home Page: https://assetripper.github.io/AssetRipper/

License: GNU General Public License v3.0

C# 99.81% CSS 0.03% JavaScript 0.16%
unity unity3d csharp reverse-engineering games decompiler

assetripper's Introduction

AssetRipper

AssetRipper is a tool for extracting assets from Unity serialized files (CAB-*, *.assets, *.sharedAssets, etc.) and asset bundles (*.unity3d, *.bundle, etc.) and converting them into the native Unity engine format.

Donations

Thank you for considering to support me. I have normal expenses like food, electric, internet, and rent. Your donations help to ensure that I can continue to afford developing this project. Anyone currently donating is entitled to the Donator role on the Discord server.

GitHub Sponsors

Patreon

Paypal

Supported Versions

Unity 3.5.0 to 2023.3.X

Links

Website

Downloads

Road Map

Discord

The development of this project has a dedicated Discord server.

Legal Disclaimers

AssetRipper is licensed under the GNU General Public License v3.0.

Please be aware that using or distributing the output from this software may be against copyright legislation in your jurisdiction. You are responsible for ensuring that you're not breaking any laws.

The full list of licensed works can be found on the Credits page.

This software is not sponsored by or affiliated with Unity Technologies or its affiliates. "Unity" is a registered trademark of Unity Technologies or its affiliates in the U.S. and elsewhere.

assetripper's People

Contributors

akx avatar aldelaro5 avatar barehsolok avatar dependabot[bot] avatar ds5678 avatar facs01-01 avatar jannify avatar johncorby avatar kiruyamomochi avatar lbmaian avatar luxurypanda avatar mafaca avatar marshmello0 avatar masonleeback avatar meb-do-stuff avatar mf-patino avatar nesrak1 avatar oldsportsgit avatar panthr75 avatar pyroglyph avatar redworkde avatar reveillark avatar saharsh1223 avatar samboycoding avatar spacehamster avatar thecatontheceiling avatar trouger avatar utkugarip avatar weblate avatar weblate-samboy-dev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

assetripper's Issues

[Bug]: Shader Blob Decompression is incorrect for Unity 2020

Are you on the latest version of AssetRipper?

Yes, I'm on the latest alpha-build of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which Unity version did this occur on?

2020.2 at least, probably 2020.1 too.

Is the game Mono or IL2Cpp?

Not Applicable

Describe the issue.

The method Shader.UnpackSubProgramBlobs incorrectly separates blobs on Unity 2020. The output is too long and has incorrect offsets, resulting in this sort of problem.
image
Pictured is the input to the Smol-V decoder, which contains two "SMOL" header magic numbers, neither of which are actually at the start of the input. Presumably there is a third prior to where the data starts in this image.

It's possible that the format of the compressed blob has changed somehow, or, more probably (considering that valid text is present in the result data, both the SMOL header and the GLSL version) the offsets and lengths no longer behave as they used to, resulting in a failure to divide the blob into sub-programs correctly.

Relevant log output

No response

[Bug]: Missing MonoBehaviour script on prefab

Are you on the latest version of AssetRipper?

Yes, I'm on the latest release of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which Unity version did this occur on?

2019.4.20f1

Is the game Mono or IL2Cpp?

Mono

Describe the issue.

Game Totally Accurate Battle Simulator
clipboard(1)
left file is export from UtinyRipper, right is from AssetRipper

ProjectSettings/ProjectVersion.txt show m_EditorVersion: 2017.3.0f3,the unity version should be 2019.4.20f1

Relevant log output

AssetRipper.log

Bug: Crash On Asset Load -> Valeheim Unity 2019.4.24

Describe the bug
Load Asset files into AssetRipper in same method I would use UTiny, Instant crash

To Reproduce
Steps to reproduce the behavior:

  1. Open Program
  2. drop game folder where it directs
  3. watch crash

Expected behavior
AssetRipper to export the unity project version of my assets in similar manner to Utiny

Error Message
There is no saved logoutput and i am unable to copy the logoutput from the app

Information (please complete the following information):
Windows 10 home
Unity 2019.4.24

Additional context
Add any other context about the problem here.

[Bug]: Crashed on android game.

Are you on the latest version of AssetRipper?

Yes, I'm on the latest release of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which Unity version did this occur on?

i think it was the 2020 unity or 2019 I can't find the version using UABE software

Is the game Mono or IL2Cpp?

Not Applicable

Describe the issue.

I just converted the .apk to .zip and dragged the folder in asset ripper and this error came.

Relevant log output

Game name: (please, specify the game name)
Engine version: (specify engine version, if known)
Platform: (specify platform, if known)

Error message: Some data left

Stack trace: at AssetRipper.Lz4.Lz4DecodeStream.ReadBuffer(Stream stream, Int64 count)
at AssetRipper.Parser.Files.BundleFile.BundleFileScheme.ReadFileStreamMetadata(Stream stream, Int64 basePosition)
at AssetRipper.Parser.Files.BundleFile.BundleFileScheme.ReadScheme(Stream stream)
at AssetRipper.Parser.Files.BundleFile.BundleFileScheme.ReadScheme(Stream stream, String filePath, String fileName)
at AssetRipper.Parser.Files.BundleFile.BundleFile.ReadScheme(Stream stream, String filePath, String fileName)
at AssetRipper.Structure.GameCollection.ReadScheme(SmartStream stream, String filePath, String fileName)
at AssetRipper.Structure.GameCollection.LoadScheme(String filePath, String fileName)
at AssetRipper.Structure.GameStructure.GameStructure.ProcessPlatformStructure(GameStructureProcessor processor, PlatformGameStructure structure)
at AssetRipper.Structure.GameStructure.GameStructure.Load(List1 paths, LayoutInfo layinfo) at AssetRipper.Structure.GameStructure.GameStructure.Load(IEnumerable1 paths, LayoutInfo layinfo)
at AssetRipper.Structure.GameStructure.GameStructure.Load(IEnumerable`1 paths)
at AssetRipperGUI.MainWindow.LoadFiles(Object data)

[Enhancement]: Genshin Impact 2.0 Version Update support

Describe the new feature or enhancement

With the newest update releasing (version 2.1) of Genshin Impact, do you think it would be possible to add support to Genshin Impact 2.0?
There's an edited assetstudio version support Genshin Impact 2.0 and I am wondering if AssetRipper will at some point support it too.

[Bug]: Script Export Error

Are you on the latest version of AssetRipper?

Yes, I'm on the latest release of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which Unity version did this occur on?

Unity 2020.3.7f1

Is the game Mono or IL2Cpp?

Mono

Describe the issue.

Failed to export game content: The given key 'T' was not present in the dictionary.
AssetRipper.log

Relevant log output

No response

[Bug]: Error during reading of asset type Shader

Are you on the latest version of AssetRipper?

Yes, I'm on the latest release of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which Unity version did this occur on?

2020.3.11f1

Is the game Mono or IL2Cpp?

Mono

Describe the issue.

Thank you @ds5678 and @SamboyCoding for the 2020 support. I had a go at it today and there seems to be an issue with reading a shader from the unity default resources file.

unity default resources.zip

Relevant log output

AssetRipper.log

Monoscripts and Monobehavious still missing

Are you on the latest version of AssetRipper?

  • Yes, I'm on the latest version of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which game did this occur on?

Game: MEGAMAN X DiVE( US Ver.)
Engine Ver: Unity 2018.4.27f1
Platform: Android/iOS

Is the game Mono or IL2Cpp?

IL2Cpp

Describe the issue.

I've already tested the pre-release version of your ripper in safe mode because of my RAM memory and i have some few problems about the monoscripts and monobehaviours again, when it had finished exporting, it gave me empty scripts
Scripts.zip

...also some of the script components are missing from the extracted project, yet i have every script dumped from ill2cpp dumper and also ill2cpp inspector, and still it's not detecting anything.

Is there anything wrong?

P.S I extracted the whole bunch of C.A.B files including the folders with ill2cpp dumped scripts(except for some dragonbones, ui and jsondatas from the assets cause it almost took 15.5 GB of my hard drive)which took over 5.9 GB RAM memory.

Relevant log output

Uploading AssetRipper.log…

[Bug]: Non-Release Games

Are you on the latest version of AssetRipper?

Yes, I'm on the latest release of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which Unity version did this occur on?

Not applicable

Is the game Mono or IL2Cpp?

Not Applicable

Describe the issue.

Some games are compiled in Non-Release mode. This changes their data structure slightly, causing read failures.

Relevant log output

The errors for this bug can vary widely. The most common errors linked to this bug are:

General [Error] : System.Exception: SerializedFile with index _ was not found in dependencies
Message: Read _ but expected _ for asset type _________

However, the presence of these examples does not necessarily indicate that the game was compiled as non-release.

[Other]: Project decompiled fine but..

Describe the issue

AssetRipping a project went fine but, almost all scripts are missing their "insides", like there'd be a script that's supposed to have hundreds of lines, but is empty. Only "usings" and inheritance is there. Is this a bug, or just a limitation?

Project I was trying to rip was IL2CPP compiled, does that make it not work?

[Bug]: Doesnt Load Uncompressed bundles

Are you on the latest version of AssetRipper?

Yes, I'm on the latest release of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which Unity version did this occur on?

2019.4.29f1

Is the game Mono or IL2Cpp?

Not Applicable

Describe the issue.

i used https://github.com/Perfare/AssetStudio which sucessfully ripped the assets from the bundle but didnt include scenes so i though this one would work but it greeted with me message "Some data" when trying to decompile my bundle has no compression to begin but the program thinks it has compression which causes this issue.

Relevant log output

image

[Bug]: Vrchat Data avatar folder

Are you on the latest version of AssetRipper?

Yes, I'm on the latest release of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which Unity version did this occur on?

5.x.x 2019.4.29f1

Is the game Mono or IL2Cpp?

IL2Cpp

Describe the issue.

I'm trying to rip the vrcat avatar files that have the name _data
File Example:
__data.zip

Relevant log output

AssetRipper.log

[Enhancement]: Implement a Decompiler

Describe the new feature or enhancement

Currently, AssetRipper uses a rudimentary script generator to generate dummy scripts from loaded Mono.Cecil assembly definitions. The addition of a decompiler should clean up code and enable some new features.

  • More stripping options
    • Currently, AssetRipper strips everything but serializable fields
    • One new option, for example, could be to strip only methods
  • Full decompilation

One good package is the ICSharpCode.Decompiler used in ILSpy.

[Bug]: Culture Error

Are you on the latest version of AssetRipper?

  • Yes, I'm on the latest version of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which Unity version did this occur on?

no games, when the program is first started

Is the game Mono or IL2Cpp?

Not Applicable

Describe the issue.

image

When I click on the console output here or the text output in the bug report, the program freezes and crashes.

image

When I open the project file and click on the output part, it gives a culture error like this.
image

Relevant log output

The log file does not exist, because the program crashes immediately.

Crash on load Blade and Sorcery bundles

Game name: Blade & Sorcery U9.3
Engine version: 2019.4
Platform: PC/VR
Error message: Read 24 but expected 7993

Stack trace: at AssetRipper.BundleFileScheme.ReadMetadata(Stream stream, Int32 metadataSize)
at AssetRipper.BundleFileScheme.ReadFileStreamMetadata(Stream stream, Int64 basePosition)
at AssetRipper.BundleFileScheme.ReadScheme(Stream stream)
at AssetRipper.BundleFileScheme.ReadScheme(Stream stream, String filePath, String fileName)
at AssetRipper.BundleFile.ReadScheme(Stream stream, String filePath, String fileName)
at AssetRipper.GameCollection.ReadScheme(SmartStream stream, String filePath, String fileName)
at AssetRipper.GameCollection.LoadScheme(String filePath, String fileName)
at AssetRipper.GameStructure.ProcessPlatformStructure(GameStructureProcessor processor, PlatformGameStructure structure)
at AssetRipper.GameStructure.Load(List1 pathes, LayoutInfo layinfo) at AssetRipper.GameStructure.Load(IEnumerable1 pathes, LayoutInfo layinfo)
at AssetRipper.GameStructure.Load(IEnumerable`1 pathes)
at AssetRipperGUI.MainWindow.LoadFiles(Object data)

[Enhancement]: Debug support

Describe the new feature or enhancement

What I mean with this is, if you decompile it, the program checks for any errors in the .CS files.

[Bug]:

Are you on the latest version of AssetRipper?

Yes, I'm on the latest release of AssetRipper.

Which release are you using?

Console Version Windows x64

Which Unity version did this occur on?

2020.3.0f2

Is the game Mono or IL2Cpp?

Mono

Describe the issue.

Couldn't uncompile any file

Relevant log output

Import : Files use the 'Unknown' scripting backend.
General : SerializedFileException: v:2020.3.3f1 p:StandaloneWin64Player t:Shader n:unity default resources
Path:Resources\unity default resources
Message: Error during reading of asset type Shader
Inner: System.Exception: End of stream. Read 2414746, expected 318799111 elements
   at AssetRipper.Core.IO.Endian.EndianReader.ReadUInt16Array()
   at AssetRipper.Core.Classes.Shader.SerializedShader.SerializedSubProgram.Read(AssetReader reader)
   at AssetRipper.Core.IO.Asset.AssetReader.ReadAssetArray[T]()
   at AssetRipper.Core.Classes.Shader.SerializedShader.SerializedProgram.Read(AssetReader reader)
   at AssetRipper.Core.Classes.Shader.SerializedShader.SerializedPass.Read(AssetReader reader)
   at AssetRipper.Core.IO.Asset.AssetReader.ReadAssetArray[T]()
   at AssetRipper.Core.IO.Asset.AssetReader.ReadAssetArray[T]()
   at AssetRipper.Core.Classes.Shader.SerializedShader.SerializedShader.Read(AssetReader reader)
   at AssetRipper.Core.Classes.Shader.Shader.Read(AssetReader reader)
   at AssetRipper.Core.Parser.Files.SerializedFiles.SerializedFile.ReadAsset(AssetReader reader, AssetInfo assetInfo, Int64 offset, Int32 size)
StackTrace:    at AssetRipper.Core.Parser.Files.SerializedFiles.SerializedFile.ReadAsset(AssetReader reader, AssetInfo assetInfo, Int64 offset, Int32 size)
   at AssetRipper.Core.Parser.Files.SerializedFiles.SerializedFile.ReadAsset(AssetReader reader, ObjectInfo& info)
   at AssetRipper.Core.Parser.Files.SerializedFiles.SerializedFile.ReadData(Stream stream)
   at AssetRipper.Core.Structure.GameStructure.GameProcessorContext.ReadFile(SerializedFile file)
   at AssetRipper.Core.Structure.GameStructure.GameProcessorContext.ReadFile(SerializedFile file)
   at AssetRipper.Core.Structure.GameStructure.GameProcessorContext.ReadFile(SerializedFile file)
   at AssetRipper.Core.Structure.GameStructure.GameProcessorContext.ReadSerializedFiles()
   at AssetRipper.Core.Structure.GameStructure.GameStructureProcessor.ProcessSchemes(GameCollection fileCollection)
   at AssetRipper.Core.Structure.GameStructure.GameStructure.Load(List`1 paths, LayoutInfo layinfo)
   at AssetRipper.Core.Structure.GameStructure.GameStructure.Load(IEnumerable`1 paths, LayoutInfo layinfo)
   at AssetRipper.Core.Structure.GameStructure.GameStructure.Load(IEnumerable`1 paths)
   at AssetRipper.Library.Ripper.Load(IReadOnlyList`1 paths)
   at AssetRipper.Console.Program.Run(Options options)


[Enhancement]: Optimize Script Export

Describe the new feature or enhancement

Recently, the ICSharpCode.Decompiler package was implemented for exporting scripts (#65). This offers durable and efficient decompiling without maintaining a decompiler. However, the package was hastily implemented into the new exporter for early testing. As a result, it exports slowly and needs optimized for performance.

[Bug]: Shader Export Problem

Are you on the latest version of AssetRipper?

Yes, I'm on the latest release of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which Unity version did this occur on?

by unity 2019.2.13

Is the game Mono or IL2Cpp?

Mono

Describe the issue.

Export no problem,but the first 4 shaders content is empty, other shader properties are different, the content of the sub-shader is the same.
Pls help me!

Relevant log output

no log

does not rip

Are you on the latest version of AssetRipper?

Yes, I'm on the latest release of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which Unity version did this occur on?

Unity 2019.4.29f1 (64-bit)

Is the game Mono or IL2Cpp?

IL2Cpp

Describe the issue.

does not rip

Relevant log output

Game name: (please, specify the game name)
Engine version: (specify engine version, if known)
Platform: (specify platform, if known)

Error message: Read 24 but expected 219

Stack trace: at AssetRipper.Core.Parser.Files.BundleFile.BundleFileScheme.ReadMetadata(Stream stream, Int32 metadataSize) in E:\repos\AssetRipper\AssetRipperCore\Parser\Files\BundleFile\BundleFileScheme.cs:line 182
at AssetRipper.Core.Parser.Files.BundleFile.BundleFileScheme.ReadFileStreamMetadata(Stream stream, Int64 basePosition) in E:\repos\AssetRipper\AssetRipperCore\Parser\Files\BundleFile\BundleFileScheme.cs:line 161
at AssetRipper.Core.Parser.Files.BundleFile.BundleFileScheme.ReadScheme(Stream stream) in E:\repos\AssetRipper\AssetRipperCore\Parser\Files\BundleFile\BundleFileScheme.cs:line 63
at AssetRipper.Core.Parser.Files.BundleFile.BundleFileScheme.ReadScheme(Stream stream, String filePath, String fileName) in E:\repos\AssetRipper\AssetRipperCore\Parser\Files\BundleFile\BundleFileScheme.cs:line 34
at AssetRipper.Core.Structure.SchemeReader.ReadScheme(SmartStream stream, String filePath, String fileName) in E:\repos\AssetRipper\AssetRipperCore\Structure\SchemeReader.cs:line 51
at AssetRipper.Core.Structure.SchemeReader.LoadScheme(String filePath, String fileName) in E:\repos\AssetRipper\AssetRipperCore\Structure\SchemeReader.cs:line 19
at AssetRipper.Core.Structure.GameStructure.GameStructure.ProcessPlatformStructure(GameStructureProcessor processor, PlatformGameStructure structure) in E:\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 176
at AssetRipper.Core.Structure.GameStructure.GameStructure.Load(List1 paths, LayoutInfo layinfo) in E:\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 59 at AssetRipper.Core.Structure.GameStructure.GameStructure.Load(IEnumerable1 paths, LayoutInfo layinfo) in E:\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 37
at AssetRipper.Core.Structure.GameStructure.GameStructure.Load(IEnumerable`1 paths) in E:\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 26
at AssetRipper.GUI.MainWindow.LoadFiles(Object data) in E:\repos\AssetRipper\AssetRipperGUI\MainWindow.xaml.cs:line 98

[Bug]: Cpp2IL.Core.Cpp2IlApi.InitializeLibCpp2Il

Are you on the latest version of AssetRipper?

Yes, I'm on the latest release of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which Unity version did this occur on?

Not sure

Is the game Mono or IL2Cpp?

Not Applicable

Describe the issue.

Game name: (please, specify the game name)
Engine version: (specify engine version, if known)
Platform: (specify platform, if known)

Error message: Fatal Exception initializing LibCpp2IL!

Stack trace: at Cpp2IL.Core.Cpp2IlApi.InitializeLibCpp2Il(String assemblyPath, String metadataPath, Int32[] unityVersion, Boolean allowUserToInputAddresses)
at AssetRipper.Core.Structure.Assembly.Managers.Il2CppManager.Initialize(PlatformGameStructure gameStructure) in C:\Users\Jeremy\source\repos\AssetRipper\AssetRipperCore\Structure\Assembly\Managers\Il2CppManager.cs:line 24
at AssetRipper.Core.Structure.GameStructure.GameStructure.Load(List1 paths, LayoutInfo layinfo) in C:\Users\Jeremy\source\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 85 at AssetRipper.Core.Structure.GameStructure.GameStructure.Load(IEnumerable1 paths, LayoutInfo layinfo) in C:\Users\Jeremy\source\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 36
at AssetRipper.Core.Structure.GameStructure.GameStructure.Load(IEnumerable`1 paths) in C:\Users\Jeremy\source\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 26
at AssetRipper.GUI.MainWindow.LoadFiles(Object data) in C:\Users\Jeremy\source\repos\AssetRipper\AssetRipperGUI\MainWindow.xaml.cs:line 98

Relevant log output

No response

Magic number doesn't match

Are you on the latest version of AssetRipper?

  • Yes, I'm on the latest commit from master branch.

Which release are you using?

Console Version Windows x64

Which game did this occur on?

Game: Unturned
Game's Unity version: 2019.4.28

Is the game Mono or IL2Cpp?

Mono

Describe the issue.

Crashes when exporting Framework/SpeedTree Billboard shader.

You can use this file to try yourself:
unity_builtin_extra.zip

Relevant log output

AssetRipperConsole.log

[Bug]: Crashes on Unity 2020 + and some 2019 games

Are you on the latest version of AssetRipper?

  • Yes, I'm on the latest version of AssetRipper.

Which release are you using?

Not Applicable

Which game did this occur on?

This bug occurs on Unity 2020+ games.

It can also occur on Unity 2019 games if the developer has the Addressable system enabled.

Describe the issue.

This bug occurs because AssetRipper has not yet implemented support for the Addressable system.

Relevant log output

Stack traces for this bug usually look similar to this:

General [Error]: System.Exception: Some data left
   at AssetRipper.Lz4.Lz4DecodeStream.ReadBuffer(Stream stream, Int64 count) in E:\repos\AssetRipper\AssetRipperCore\Lz4\Lz4DecodeStream.cs:line 233
   at AssetRipper.Parser.Files.BundleFile.BundleFileScheme.ReadFileStreamMetadata(Stream stream, Int64 basePosition) in E:\repos\AssetRipper\AssetRipperCore\Parser\Files\BundleFile\BundleFileScheme.cs:line 160
   at AssetRipper.Parser.Files.BundleFile.BundleFileScheme.ReadScheme(Stream stream) in E:\repos\AssetRipper\AssetRipperCore\Parser\Files\BundleFile\BundleFileScheme.cs:line 66
   at AssetRipper.Structure.GameCollection.ReadScheme(SmartStream stream, String filePath, String fileName) in E:\repos\AssetRipper\AssetRipperCore\Structure\GameCollection.cs:line 119
   at AssetRipper.Structure.GameCollection.LoadScheme(String filePath, String fileName) in E:\repos\AssetRipper\AssetRipperCore\Structure\GameCollection.cs:line 75
   at AssetRipper.Structure.GameStructure.GameStructure.ProcessPlatformStructure(GameStructureProcessor processor, PlatformGameStructure structure) in E:\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 325
   at AssetRipper.Structure.GameStructure.GameStructure.Load(List`1 paths, LayoutInfo layinfo) in E:\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 139
   at AssetRipper.Structure.GameStructure.GameStructure.Load(IEnumerable`1 paths, LayoutInfo layinfo) in E:\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 38
   at AssetRipper.Structure.GameStructure.GameStructure.Load(IEnumerable`1 paths) in E:\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 26
   at AssetRipperLibrary.Ripper.Load(IReadOnlyList`1 paths) in E:\repos\AssetRipper\AssetRipperLibrary\Ripper.cs:line 21
   at UnitTester.Program.RunTests() in E:\repos\AssetRipper\UnitTester\Program.cs:line 65

[Bug]:

Are you on the latest version of AssetRipper?

Yes, I'm on the latest release of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which Unity version did this occur on?

unity 2019.4.29f1

Is the game Mono or IL2Cpp?

IL2Cpp

Describe the issue.

wanted to unpack the .vrca file

Relevant log output

Game name: (please, specify the game name)
Engine version: (specify engine version, if known)
Platform: (specify platform, if known)

Error message: Some data left

Stack trace:    at AssetRipper.Core.Lz4.Lz4DecodeStream.ReadBuffer(Stream stream, Int64 count) in E:\repos\AssetRipper\AssetRipperCore\Lz4\Lz4DecodeStream.cs:line 225
   at AssetRipper.Core.Parser.Files.BundleFile.IO.BundleFileBlockReader.ReadEntry(Node entry) in E:\repos\AssetRipper\AssetRipperCore\Parser\Files\BundleFile\IO\BundleFileBlockReader.cs:line 90
   at AssetRipper.Core.Parser.Files.BundleFile.BundleFileScheme.ReadFileStreamData(Stream stream, Int64 basePosition, Int64 headerSize) in E:\repos\AssetRipper\AssetRipperCore\Parser\Files\BundleFile\BundleFileScheme.cs:line 210
   at AssetRipper.Core.Parser.Files.BundleFile.BundleFileScheme.ReadScheme(Stream stream) in E:\repos\AssetRipper\AssetRipperCore\Parser\Files\BundleFile\BundleFileScheme.cs:line 64
   at AssetRipper.Core.Parser.Files.BundleFile.BundleFileScheme.ReadScheme(Stream stream, String filePath, String fileName) in E:\repos\AssetRipper\AssetRipperCore\Parser\Files\BundleFile\BundleFileScheme.cs:line 34
   at AssetRipper.Core.Structure.SchemeReader.ReadScheme(SmartStream stream, String filePath, String fileName) in E:\repos\AssetRipper\AssetRipperCore\Structure\SchemeReader.cs:line 51
   at AssetRipper.Core.Structure.SchemeReader.LoadScheme(String filePath, String fileName) in E:\repos\AssetRipper\AssetRipperCore\Structure\SchemeReader.cs:line 19
   at AssetRipper.Core.Structure.GameStructure.GameStructure.ProcessPlatformStructure(GameStructureProcessor processor, PlatformGameStructure structure) in E:\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 176
   at AssetRipper.Core.Structure.GameStructure.GameStructure.Load(List`1 paths, LayoutInfo layinfo) in E:\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 59
   at AssetRipper.Core.Structure.GameStructure.GameStructure.Load(IEnumerable`1 paths, LayoutInfo layinfo) in E:\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 37
   at AssetRipper.Core.Structure.GameStructure.GameStructure.Load(IEnumerable`1 paths) in E:\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 26
   at AssetRipper.GUI.MainWindow.LoadFiles(Object data) in E:\repos\AssetRipper\AssetRipperGUI\MainWindow.xaml.cs:line 98

[Bug]:

Are you on the latest version of AssetRipper?

  • Yes, I'm on the latest version of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which game did this occur on?

Play store URL : https://play.google.com/store/apps/details?id=com.pixpop.musical.videoeditor
Unity version : 2019.4.18f1
Got this Error :
image

Is the game Mono or IL2Cpp?

IL2Cpp

Describe the issue.

Please have a look into this SS.
Let me know if you want to know anything else.

Relevant log output

No response

.unity3d file importing Error (Unturned game)

Are you on the latest version of AssetRipper?

Yes, I'm on the latest release of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which Unity version did this occur on?

With FMTV.unity3d model. I bundle it with Unity 2019.4.28f1

Is the game Mono or IL2Cpp?

Not Applicable

Describe the issue.

Error then i import .unity3d model.

https://drive.google.com/file/d/1SQe-BBjcTc7vSYlOJUzkpS1GqJj7f2ZN/view?usp=sharing model here

Relevant log output

System: AssetRipper GUI Version
System: System Version: Microsoft Windows NT 10.0.19043.0
System: Operating System: Windows x64
System: AssetRipper Version: 0.1.3.1
System: AssetRipper Build Type: Release x64
System: AssetRipper Process: x64
Import: Game file 'FMTV.unity3d' has been found
Import: Mixed game structure has been found for 1 path(s)
Import [Error]: System.Exception: Read 24 but expected 219
at AssetRipper.Parser.Files.BundleFile.BundleFileScheme.ReadMetadata(Stream stream, Int32 metadataSize)
at AssetRipper.Parser.Files.BundleFile.BundleFileScheme.ReadFileStreamMetadata(Stream stream, Int64 basePosition)
at AssetRipper.Parser.Files.BundleFile.BundleFileScheme.ReadScheme(Stream stream)
at AssetRipper.Parser.Files.BundleFile.BundleFileScheme.ReadScheme(Stream stream, String filePath, String fileName)
at AssetRipper.Parser.Files.BundleFile.BundleFile.ReadScheme(Stream stream, String filePath, String fileName)
at AssetRipper.Structure.GameCollection.ReadScheme(SmartStream stream, String filePath, String fileName)
at AssetRipper.Structure.GameCollection.LoadScheme(String filePath, String fileName)
at AssetRipper.Structure.GameStructure.GameStructure.ProcessPlatformStructure(GameStructureProcessor processor, PlatformGameStructure structure)
at AssetRipper.Structure.GameStructure.GameStructure.Load(List1 paths, LayoutInfo layinfo) at AssetRipper.Structure.GameStructure.GameStructure.Load(IEnumerable1 paths, LayoutInfo layinfo)
at AssetRipper.Structure.GameStructure.GameStructure.Load(IEnumerable`1 paths)
at AssetRipperGUI.MainWindow.LoadFiles(Object data)

Trees in Unity 2019

There is interest in adding an exporter for the Tree Component.

The source code from Visual Studio looks like this:

using UnityEngine.Bindings;

namespace UnityEngine
{
    //
    // Summary:
    //     Tree Component for the tree creator.
    [NativeHeader("Modules/Terrain/Public/Tree.h")]
    public sealed class Tree : Component
    {
        public Tree();

        //
        // Summary:
        //     Data asociated to the Tree.
        [NativeProperty("TreeData")]
        public ScriptableObject data { get; set; }
        //
        // Summary:
        //     Tells if there is wind data exported from SpeedTree are saved on this component.
        public bool hasSpeedTreeWind { get; }
    }
}

Parts of the Tree.prefab looks like this:

Tree:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 4317327013210407872}
  m_SpeedTreeWindAsset: {fileID: 0}
  m_TreeData: {fileID: -2861458992197153078}

MonoBehaviour:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_GameObject: {fileID: 0}
  m_Enabled: 1
  m_EditorHideFlags: 0
  m_Script: {fileID: 12106, guid: 0000000000000000e000000000000000, type: 0}
  m_Name: Tree Data
  m_EditorClassIdentifier: 
  _uniqueID: 5
  materialHash: 31d6cfe0d16ae931b73c59d7e0c089c0-583008256
  root:

And the hex of this Tree component in Windows standard alone build looks like this:

00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

The size is 24 which could only contain one Ptr property (instead of two), and is zero. So they couldn't get the TreeData property from it. According to Asset Studio, the solo property is m_SpeedTreeWindAsset.

Another problem is that the MonoBehaviour with name Tree Data has failed to export its script and properties.

In summary, there are issues with exporting the TreeData property of the Tree Component and the TreeData it self.

[Bug] Issue extracting game scripts on Android IL2Cpp

Hi,

can you make the tool also decompile scripts and then also import them to Unity project just like DevX Game Recovery, MagicStudio and UnpackerTools? (They always do that using some different decompiler such as dnSpy and DecompilerFi then they import it to a Unity Project)

[Bug]: Split serialized files added separately

Are you on the latest version of AssetRipper?

  • Yes, I'm on the latest version of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which game did this occur on?

Metin 2 Mobile

Is the game Mono or IL2Cpp?

IL2Cpp

Describe the issue.

I think the same error exists here :)

### workaround:
uTinyRipperCode project:

Class Name: PlatformGameStructure.cs //Line: 239

if (!files.ContainsKey(name))
{
files.Add(name, path);
}

Logger.Log(LogType.Info, LogCategory.Import, $"Game file '{name}' has been found");
uTinyRipperCode project:

Class Name: GameCollection.cs //Line: 245

if (!m_resources.ContainsKey(file.Name))
{
m_resources.Add(file.Name, file);
}
Note:
I hope the developer will fix this problem as soon as possible, these codes were added just for my work, so I opened the functions right away and solved the problem without knowing it, you may have the problem of extracting files missing.

Relevant log output

This is the error I get when I try to extract and import a mobile game from apk with winrar.
image

[Enhancement]: Allow dummy shaders conversion back to ShaderLab for Unity Editor (also allow support of CAB 'decompressed' files from AssetStudio to AssetRipper)

Are you on the latest version of AssetRipper?

  • Yes, I'm on the latest version of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which game did this occur on?

Game: ROCKMAN X DiVE
Engine: Unity 2018.4.27f1
Platform: Android/iOS (soon to be ported to PC/Steam cause of some news from the rockman corner)

Is the game Mono or IL2Cpp?

Mono

Describe the issue.

Well i tried to extract the game assets using your tool, but it dosent seem to detect the decompressed CAB files that i used using AssetStudio from the assets(even when i drag 'n' dropped the folder). Is there something oddly missing, are the CAB files misplaced, is the base apk split?

I mean
image
these are the CAB files that i decompressed from the assets using Perfare's AssetStudio, but in AssetRipper, it doesn't show anything except the base apk ones
image

their size is 1.88 GB decompressed from the game's server:
image

Also, about the shaders that i extracted with your tool:
image

....still happening. Is there any way to convert them back to shaderlab(or maybe some dummy unity shaders to shaderlab)

Relevant log output

No response

[Bug]: Hokai Impact Rip

Are you on the latest version of AssetRipper?

Yes, I'm on the latest release of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which Unity version did this occur on?

2017.4.18f1

Is the game Mono or IL2Cpp?

Not Applicable

Describe the issue.

The problem usually happens when it arrives at unity defaut resorces

Relevant log output

AssetRipper.log

[Enhancement]: Texgenpack Textures

Describe the new feature or enhancement

#50 was recently resolved enabling platform independent texture export for the vast majority of textures. However, a small minority of textures are encoded by texgenpack. Unfortunately, we only have one Windows binary file inherited from uTinyRipper. As a result, textures that use this encoding are exported with a backup decoder from Texture2DDecoder on Mac and Linux.

In the interest of investigating the suitability of Texture2DDecoder as a replacement, a comparison has been implemented that logs information about the texgenpack export. They look like this:

: Uses texgenpack!
: KTXBaseInternalFormat: RGB
: Fix alpha: False
: Byte array length: 65536 Width: 128 Height: 128
: Performing alternate decoding for BC6H
: Byte arrays were equal at all indices!
: Uses texgenpack!
: KTXBaseInternalFormat: RGBA
: Fix alpha: False
: Byte array length: 1048576 Width: 1024 Height: 256
: Performing alternate decoding for BC7
: Byte arrays were inequal in 2387/1048576 places!

A few things of note:

  • BC6H seems to be perfectly matched by the alternate decoder.
  • Although BC7 output appears visually the same, there is a small percentage of bytes that get decoded differently.
  • I have never seen any textures that use BC4 or BC5 in my testing. Fix alpha should be true for them.
  • Both uTinyRipper and AssetStudio used custom builds of texgenpack. I could not find source code for either of these.
  • AssetStudio removed texgenpack in this commit. This was the last version where it used texgenpack.

Open Questions:

  • How are the alternate BC7 decoded bytes different from the ones decoded by texgenpack? Why does the output look identical even though it's not?
  • Is there source code available for those builds of texgenpack?
  • Does the AssetStudio texgenpack produce different output from the uTinyRipper texgenpack?
  • Do BC4 and BC5 textures exist? Does the alternate decoder decode them differently from texgenpack?

[Enhancement]: Two-Sided Dummy Shaders

Describe the new feature or enhancement

Here is the current dummy shader being used:

	//DummyShader
	SubShader{
		Tags { ""RenderType"" = ""Opaque"" }
		LOD 200
		CGPROGRAM
#pragma surface surf Standard fullforwardshadows
#pragma target 3.0
		sampler2D _MainTex;
		struct Input
		{
			float2 uv_MainTex;
		};
		void surf(Input IN, inout SurfaceOutputStandard o)
		{
			fixed4 c = tex2D(_MainTex, IN.uv_MainTex);
			o.Albedo = c.rgb;
		}
		ENDCG
	}

Although it works reasonably well, there have been complaints about it causing nasty visual annoyances as the camera shifts in the editor. A two-sided version should solve this.

[Bug]: The program is terminated as soon as the export button is clicked

Are you on the latest version of AssetRipper?

Yes, I'm on the latest release of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which Unity version did this occur on?

During Il2Cpp initialization, found Unity version: 2019.2.19

Is the game Mono or IL2Cpp?

IL2Cpp

Describe the issue.

The program is terminated as soon as the export button is clicked.

Relevant log output

No response

[Enhancement]: Mac Texture Support

Describe the new feature or enhancement

Currently, texture export is limited to Windows and Linux because there is an issue with compiling Texture2DDecoder on MacOS.

malloc.h is depreciated and does not exist on MacOS, so it needs to be replaced with a standard library in order to support texture export.

[Bug]: Android IL2Cpp Error

Describe the issue

This issue is most common on IL2Cpp Android games, but can occur on other platforms too. It has a signature stack trace:

General [Error] : Cpp2IL.Core.Exceptions.LibCpp2ILInitializationException: Fatal Exception initializing LibCpp2IL!
 ---> System.Exception: Pre-24.2 support for non-ARM ELF lookup is not yet implemented.
   at LibCpp2IL.Elf.ElfFile.FindCodeAndMetadataRegDefaultBehavior() in LibCpp2IL.dll:token 0x600016b+0xee
   at LibCpp2IL.Elf.ElfFile.FindCodeAndMetadataReg() in LibCpp2IL.dll:token 0x6000169+0xaf
   at LibCpp2IL.LibCpp2IlMain.Initialize(Byte[] binaryBytes, Byte[] metadataBytes, Int32[] unityVersion) in LibCpp2IL.dll:token 0x600007d+0x11d
   at LibCpp2IL.LibCpp2IlMain.LoadFromFile(String pePath, String metadataPath, Int32[] unityVersion) in LibCpp2IL.dll:token 0x600007e+0x7
   at Cpp2IL.Core.Cpp2IlApi.InitializeLibCpp2Il(String assemblyPath, String metadataPath, Int32[] unityVersion, Boolean allowUserToInputAddresses) in Cpp2IL.Core.dll:token 0x600004d+0x12
   --- End of inner exception stack trace ---
   at Cpp2IL.Core.Cpp2IlApi.InitializeLibCpp2Il(String assemblyPath, String metadataPath, Int32[] unityVersion, Boolean allowUserToInputAddresses) in Cpp2IL.Core.dll:token 0x600004d+0x35
   at AssetRipper.Core.Structure.Assembly.Managers.Il2CppManager.Initialize(PlatformGameStructure gameStructure) in E:\repos\AssetRipper\AssetRipperCore\Structure\Assembly\Managers\Il2CppManager.cs:line 24
   at AssetRipper.Core.Structure.GameStructure.GameStructure.Load(List`1 paths, CoreConfiguration configuration, LayoutInfo layinfo) in E:\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 91
   at AssetRipper.Core.Structure.GameStructure.GameStructure.Load(IEnumerable`1 paths, CoreConfiguration configuration, LayoutInfo layinfo) in E:\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 46
   at AssetRipper.Core.Structure.GameStructure.GameStructure.Load(IEnumerable`1 paths, CoreConfiguration configuration) in E:\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 38
   at AssetRipper.Library.Ripper.Load(IReadOnlyList`1 paths) in E:\repos\AssetRipper\AssetRipperLibrary\Ripper.cs:line 31
   at UnitTester.Program.RunTests() in E:\repos\AssetRipper\UnitTester\Program.cs:line 70

This error occurs because support for analyzing that type of assembly has not yet been implemented in Cpp2IL.

There are plans to catch this error and switch to not exporting scripts, which would allow users to export these games that they previously could not. However, the catch has not yet been implemented into AssetRipper.

[Bug]: not same Export file

Are you on the latest version of AssetRipper?

Yes, I'm on the latest release of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which Unity version did this occur on?

2019.4.29f1

Is the game Mono or IL2Cpp?

Not Applicable

Describe the issue.

This on on asets ripper had mesh 31
image

but when export only 17
image

and folder not same like assets ripper view
image

Relevant log output

No response

[Bug]: Nintendo Switch Game Error

Are you on the latest version of AssetRipper?

Yes, I'm on the latest alpha-build of AssetRipper.

Which release are you using?

Console Version Windows x64

Which Unity version did this occur on?

2019.4.16f1

Is the game Mono or IL2Cpp?

IL2Cpp

Describe the issue.

Specified method is not supported appears when it starts bulding files for ProjectSettings folder.
Game is NEO Twewy for Nintendo Switch.

Relevant log output

AssetRipperConsole.log

[Bug]: Vrchat data ripping error

Are you on the latest version of AssetRipper?

Yes, I'm on the latest release of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which Unity version did this occur on?

2019.4.29f1

Is the game Mono or IL2Cpp?

IL2Cpp

Describe the issue.

I'm trying to rip the Vrchat avatar file, but I get an error.
Since Vrchat is now in Unity 2019, I'm getting errors.
Files that cannot be ripped:
Uploading __data.zip…

Relevant log output

Game name: (VRChat)
Engine version: (Unity2019.4.29f1)
Platform: (Windows x64)

Error message: Some data left

Stack trace: at AssetRipper.Core.Lz4.Lz4DecodeStream.ReadBuffer(Stream stream, Int64 count) in E:\repos\AssetRipper\AssetRipperCore\Lz4\Lz4DecodeStream.cs:line 225
at AssetRipper.Core.Parser.Files.BundleFile.IO.BundleFileBlockReader.ReadEntry(Node entry) in E:\repos\AssetRipper\AssetRipperCore\Parser\Files\BundleFile\IO\BundleFileBlockReader.cs:line 90
at AssetRipper.Core.Parser.Files.BundleFile.BundleFileScheme.ReadFileStreamData(Stream stream, Int64 basePosition, Int64 headerSize) in E:\repos\AssetRipper\AssetRipperCore\Parser\Files\BundleFile\BundleFileScheme.cs:line 210
at AssetRipper.Core.Parser.Files.BundleFile.BundleFileScheme.ReadScheme(Stream stream) in E:\repos\AssetRipper\AssetRipperCore\Parser\Files\BundleFile\BundleFileScheme.cs:line 64
at AssetRipper.Core.Parser.Files.BundleFile.BundleFileScheme.ReadScheme(Stream stream, String filePath, String fileName) in E:\repos\AssetRipper\AssetRipperCore\Parser\Files\BundleFile\BundleFileScheme.cs:line 34
at AssetRipper.Core.Structure.SchemeReader.ReadScheme(SmartStream stream, String filePath, String fileName) in E:\repos\AssetRipper\AssetRipperCore\Structure\SchemeReader.cs:line 51
at AssetRipper.Core.Structure.SchemeReader.LoadScheme(String filePath, String fileName) in E:\repos\AssetRipper\AssetRipperCore\Structure\SchemeReader.cs:line 19
at AssetRipper.Core.Structure.GameStructure.GameStructure.ProcessPlatformStructure(GameStructureProcessor processor, PlatformGameStructure structure) in E:\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 176
at AssetRipper.Core.Structure.GameStructure.GameStructure.Load(List1 paths, LayoutInfo layinfo) in E:\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 59 at AssetRipper.Core.Structure.GameStructure.GameStructure.Load(IEnumerable1 paths, LayoutInfo layinfo) in E:\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 37
at AssetRipper.Core.Structure.GameStructure.GameStructure.Load(IEnumerable`1 paths) in E:\repos\AssetRipper\AssetRipperCore\Structure\GameStructure\GameStructure.cs:line 26
at AssetRipper.GUI.MainWindow.LoadFiles(Object data) in E:\repos\AssetRipper\AssetRipperGUI\MainWindow.xaml.cs:line 98

[Other]: IL2Cpp Method Bodies

Describe the issue

Due to the lossy nature of IL2Cpp compiling, recovering scripts from IL2Cpp games is significantly more difficult than from Mono games. Despite the monumental improvements made in this field by Cpp2IL, there are still many areas lacking. Of particular note is method bodies.

Decompiled Mono scripts typically look like this:

public VehicleEra
{
    public bool MotorsEnabled => eraName == "Modern";
    public float PropellantTech => 10f * CalculateTech();

    public string eraName;
    public float technologyFactor;
    public float turretTraverseResistanceCoeff;

    public VehicleEra(string eraName, float technologyFactor, float turretTraverseResistanceCoeff)
    {
        this.eraName = eraName;
        this.technologyFactor = technologyFactor;
        this.turretTraverseResistanceCoeff = turretTraverseResistanceCoeff;
    }

    public VehicleEra Copy()
    {
       return new VehicleEra(eraName, technologyFactor, turretTraverseResistanceCoeff);
    }

    public float CalculateTech()
    {
       return technologyFactor * turretTraverseResistanceCoeff;
    }

    public static float GetLinearDrag(float techFactor)
    {
       return Math.Sqrt(techFactor);
    }
}

Decompiled IL2Cpp scripts typically look like this:

public VehicleEra
{
    public bool MotorsEnabled => default(bool);
    public float PropellantTech => default(float);

    public string eraName;
    public float technologyFactor;
    public float turretTraverseResistanceCoeff;

    public VehicleEra(string eraName, float technologyFactor, float turretTraverseResistanceCoeff)
    {
    }

    public VehicleEra Copy()
    {
       return null;
    }

    public float CalculateTech()
    {
       return default(float);
    }

    public static float GetLinearDrag(float techFactor)
    {
       return default(float);
    }
}

Currently, Cpp2IL is able to generate some method bodies, but the method output frequency is not high enough to justify enabling that feature for use in AssetRipper. For the foreseeable future, decompiled IL2Cpp scripts will have stubbed method bodies when exported.

[Bug]: Failed to load game content

Are you on the latest version of AssetRipper?

Yes, I'm on the latest release of AssetRipper.

Which release are you using?

GUI Version Windows x64

Which Unity version did this occur on?

I don't know.

Is the game Mono or IL2Cpp?

Not Applicable

Describe the issue.

I got this message:

Failed to load game content: Access to the path 'C:\Users\XXX\Desktop\Game\assets\bin\Data' is denied.

Relevant log output

No response

[Enhancement]: Can you retain the compilation of Shader pseudo code?

Describe the new feature or enhancement

Sorry, I use the translator
I found that the latest version does not export shader's pseudo code
But use a fake shader instead
I know this is used to solve the error in the project.
But I need to view pseudo code to make Decompile for some simple shader.
So can I retain the function of exporting pseudo code make him an option?

[Bug]: Bundle Files

Are you on the latest version of AssetRipper?

Yes, I'm on the latest release of AssetRipper.

Which release are you using?

Console Version Windows x64

Which Unity version did this occur on?

2019.4.21f1

Is the game Mono or IL2Cpp?

Not Applicable

Describe the issue.

Screenshot Region 72

Relevant log output

AssetRipper.log

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.