Is It Possible to Fix or Sort the Order of Shadercode in Packaging?

I am currently using the iostore feature to generate pak , ucas , and utoc files as part of my packaging process. This results in around 20 separate pack files.

However, I have noticed that most of these pack files change every time I package the project, even when no relevant modifications have been made. Upon comparing the contents of these packs, I discovered that the changes are related to the order of shadercode .

Specifically, the shadercode itself has not been modified; only its order has changed. Because of this, even if the hash value remains the same, it is difficult to determine whether a pack contains actual modifications or if it was simply reordered until I manually open the pack and inspect it.

Additionally, this issue does not occur for all packs, and I have not been able to identify a clear pattern as to when or why it happens.

Would anyone be able to share a way to handle this issue? Is there a method to fix or sort the order of shadercode during packaging?

You want to keep it under control, so future updates do not change whole package?

If so you should look into plugins, put anything you can into separate plugins, hopefully it will separate modules. However most unreal games just updates whole install.

I realize my initial explanation may have been unclear, so I would like to provide additional details regarding my current setup.

I use Primary Asset Label to assign pack numbers based on folders and maps. During packaging, around 20 packs are generated, including Pack 0 , which contains essential assets.

These packs are categorized into client , which contains the executable and Pack 0 , and patch , which includes the remaining resources and data.

Additionally, I use BuildPatchTool 's PatchGeneration to generate chunks from the patch packs. During gameplay, chunk files are downloaded, reconstructed into pak files based on the manifest, and then mounted for use. This allows us to update only modified content from the editor.

However, even minor changes (e.g., modifying a table) cause unrelated packs to be marked as modified , resulting in new chunk files being generated every time PatchGeneration runs.

Upon investigation, I found that <ShaderCode> values inside the packs are shuffled randomly during packaging. Because the order is not fixed, certain packs are recognized as modified even if their actual content remains unchanged.

Is there a potential issue with my current client/patch setup? Or are there any recommendations for handling chunk generation more efficiently?

I received a suggestion to use plugins to separate modules, which might help. However, I am curious if separating specific modules would directly address the <ShaderCode> sorting issue. Are there any other methods that might help resolve this?

Any insights would be greatly appreciated.