Jump to content

Pack file stuffing

From Battle Cats Game Modding Wiki
Revision as of 13:57, 9 September 2025 by Fieryhenry (talk | contribs) (Created page with "Pack file stuffing refers to the technique of placing the original, unmodified pack and list files inside of another pack file, often in order to reduce or eliminate (see DownloadLocal stuffing the need to change the hashes of the game files. == Method == Say for example you want to modify a file from DataLocal, e.g unitbuy.csv # Create a copy of DataLocal.pack and DataLocal.list # Place these files inside another pack file, for example DownloadLocal # Modify unit...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Pack file stuffing refers to the technique of placing the original, unmodified pack and list files inside of another pack file, often in order to reduce or eliminate (see DownloadLocal stuffing the need to change the hashes of the game files.

Method

Say for example you want to modify a file from DataLocal, e.g unitbuy.csv

  1. Create a copy of DataLocal.pack and DataLocal.list
  2. Place these files inside another pack file, for example DownloadLocal
  3. Modify unitbuy.csv, overwriting the normal one inside of DataLocal
  4. Encrypt DownloadLocal, make sure that DataLocal.pack and DataLocal.list are not encrypted again, i.e. just place them inside the file data itself. BCGM_Python cannot do this itself.
  5. Copy your modified DownloadLocal.pack, DownloadLocal.list, DataLocal.pack, and DataLocal.list files back into the game package
  6. Pack, sign and install the game.

Why it works

When the game first opens, it reads all of the .list files into a map so that the game knows which pack file to read with which filename.

Then when the game wants to read a file from a pack file, it will load the correct pack file from the game package and decrypt the right section of data.

However, when checking the MD5 hash of the data