Unity Bundle CAB-ID Changer 1.0.0

Please do not ask when mod authors will update their mods to 3.10 or if they can upload older versions of their mods.
Bothering mod authors will lead to warnings and repeat offenses will lead to eventual bans.

Quickly generate new CAB-IDs for all your new, modified bundles. Drag-and-drop support, batch file support.

Unity Bundle CAB-ID Changer


Find out more about what EFT mods I'm working on here!

https://trello.com/b/CONaHPTn/…i-mods-by-rairaitheraichu



This is a modding tool for Unity bundles. The CAB-ID is an MD5 hash of the bundle, stored in the header.


If you use a program like UABE, you can replace textures, swap models, and so on within Unity bundles. If you are modding a Unity game that can load these new bundles, the CAB-ID needs to be unique as well or else Unity will crash. The CAB-ID will not automatically change when you replace the contents of a Unity bundle, therefore changing the ID manually is required. This tool automates that process.


This script supports drag-and-drop file support as well as batch file support.


Currently, changing bundle dependencies is not supported. This may change in the future.


Why use this over the TarkovBundleHelper? This allows multiple bundle files to be changed all in one action, very quickly, with drag and drop support. If you need the extended capabilities of the Bundle Helper, definitely use that instead. The source code is currently unavailable for the Bundle Helper so I made this from scratch.


Requirements


* Python 3.12.0


You only need Python if you are not downloading the compiled binary. The binary is created using pyinstaller.


How To Use


- Extract 'CAB_ID_Changer.exe' to an unprotected folder (NOT within Program Files, etc)

- Copy your Unity bundle(s) to the folder containing the 'CAB_ID_Changer.exe'.

- Drag and drop your bundle(s) onto the executable file and it will process all of them.


Alternatively, you can run the script through the command line interface with the following format:

- `CAB_ID_Changer.exe 'someunitybundle.bundle' 'someotherunitybundle' ...


Contact


RaiRaiTheRaichu on Discord.


License


Do not reupload or redistribute anywhere without explicit permission. Share the link to either this page or the GitHub repository.



Additional Information

Re: VirusTotal


The program is a short Python script compiled into an .exe via pyinstaller which bypasses the need for users to have the dependencies installed (Python 3.12). Many virus programs use Python scripts compiled into .exes to hide malware, thus, the executable matches some signatures of existing malware.


Included in the repo is the source code. You do not need to run the .exe file at all - you can open up the .py file in notepad if you'd like and see exactly what the code is doing. If you install Python 3.12.0, you can drag and drop your bundles directly onto the .py script and it will function exactly the same. You are free to compile the code into an .exe yourself using pyinstaller and compare.


If you aren't aware of how Github releases work and don't trust the .exe hosted there, please check out the Actions tab in the repo and familiarize yourself with the build script - it's fairly simple to understand. You can see the exact commands being run by Github to create the executable from the source code. The executable comes from those actions performed by Github - not uploaded from anyone else's machine.

  • image-2024-07-04-002517855.png


    This keeps popping up when I drag the .bundle file on the CAB_ID_Changer. Have you seen this before and is there a fix? PS: it still does what it is supposed to do just keep getting this message.

    • hi,


      are you using the compiled .exe binary or the .py script?

    • I am using the compiled exe.

    • It's weird, it does still change the cab id but throws this error.

    • after doing further research it seems that input() at the end of the script is not needed.


      The error being encountered, RuntimeError: input(): lost sys.stdin, suggests that the script is being executed in an environment where standard input (stdin) is not available. This commonly happens when running a Python script as a standalone executable using tools like PyInstaller.

      To resolve this issue, you can remove or modify the input() call at the end of the script, as it is not necessary for the functionality of the script. Instead, you can log the completion message to the console.

      This version of the script changes the call to input() at the end and instead prints the completion message directly to the console. I created a new CAB_ID_CHANGER.exe with the updated script and this resolves the error I was encountering.

    • yes, it's an issue with how i used pyinstaller to compile the .exe, i missed an argument to pass compiling it as a CLI program, which throws that error.


      it's not necessary, as you saw, i just preferred having it so people are aware immediately that it worked as intended.

  • niceeee. I can be even lazier now. Would be even better if dependencies were possible

  • nice and thanks

  • Finally instead of trying to guess if bundlehelper actually recognizes the dependency (and actually changed them) and change them you can have an alternative that works differently.