From baaa33524b79308861d7b5c9199b6ed938ea4157 Mon Sep 17 00:00:00 2001 From: Snowyegret <79635537+snowyegret23@users.noreply.github.com> Date: Fri, 23 Jan 2026 06:28:39 +0900 Subject: [PATCH] Fix UnityFS block info flags when saving bundles --- UnityPy/files/BundleFile.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/UnityPy/files/BundleFile.py b/UnityPy/files/BundleFile.py index 8f6eb901..d0bb1f34 100644 --- a/UnityPy/files/BundleFile.py +++ b/UnityPy/files/BundleFile.py @@ -215,7 +215,7 @@ def save(self, packer=None): self.save_web_raw(writer) elif self.signature == "UnityFS": if not packer or packer == "none": - self.save_fs(writer, 64, 64) + self.save_fs(writer, 0x40, 0) elif packer == "original": self.save_fs( writer, @@ -282,6 +282,9 @@ def save_fs(self, writer: EndianBinaryWriter, data_flag: int, block_info_flag: i # file list & file data # prep nodes and build up block data + data_flag = int(data_flag) + block_info_flag = int(block_info_flag) & 0x3F + data_writer = EndianBinaryWriter() files = [ ( @@ -316,7 +319,7 @@ def save_fs(self, writer: EndianBinaryWriter, data_flag: int, block_info_flag: i # compressed size block_writer.write_u_int(block_compressed_size) # flag - block_writer.write_u_short(block_flag) + block_writer.write_u_short(block_flag & 0x3F) # file block info if not data_flag & 0x40: