8000 [4.26] How do I convert legacy assets back to IoStore? · Issue #14 · trumank/retoc · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

[4.26] How do I convert legacy assets back to IoStore? #14

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
rajnayanbhagat opened this issue Feb 24, 2025 · 3 comments
Open

[4.26] How do I convert legacy assets back to IoStore? #14

rajnayanbhagat opened this issue Feb 24, 2025 · 3 comments

Comments

@rajnayanbhagat
Copy link
rajnayanbhagat commented Feb 24, 2025

Okay, so I am trying to edit uassets from STAR WARS Jedi Survivor, more specifically, I'm trying to recreate a mod.
The game uses UE_4.26 and IoStore.

I used this program to extract and convert a singular .uasset file that uses IoStore to legacy format.
This gave me a .uasset and an .uexp file (presumably in legacy format) which I edited using UAssetGUI, instead of a singular .uasset file which I would've got if I used UModel/FModel to extract.

How do I proceed from here?

I have tried packing the .uasset and .uexp files using UnrealPAK into a .pak file and converting this .pak into IoStore containers (.utoc, .ucas and .pak)
AND
I have also tried directly packing the .uasset .uexp files into IoStore containers.

Both of those didn't work, as it messes up things in the game, but all I did was change an Unreal Property that delays an event in the game.
I assume that in this process the .uexp and .uasset files were not converted back to IoStore/Zen format.

Whereas, by using FModel to extract the concerned uasset to a singular .uasset, hex editing it, and packing it up with UnrealZen works. This is how I originally create my mod.

@trumank
Copy link
Owner
trumank commented Feb 24, 2025

to-zen should do what you need (it can take a .pak file or a directory of assets as input and spits out an IoStore container). Did you get any error message from the game when it tried to load? You can verify the resulting output container by using retoc list --path container.utoc. You should see a container header chunk and your asset.

@rajnayanbhagat
Copy link
Author
rajnayanbhagat commented Feb 24, 2025

to-zen should do what you need (it can take a .pak file or a directory of assets as input and spits out an IoStore container). Did you get any error message from the game when it tried to load? You can verify the resulting output container by using retoc list --path container.utoc. You should see a container header chunk and your asset.

Okay, what I just now did to verify that the program actually converted the edited legacy .uexp and .uasset files to IoStore is I extracted the content of the IoStore container I got after the to-zen process.
It indeed converted the legacy assets to IoStore because I only see one .uasset file that looks similar to the version of the file if it was extracted directly from the game using FModel.
But, comparing the size and binary data of these .uasset files using hex editor, I can see that the file resulting from the conversion is 2KB bigger and has a different header.
Also, retoc list --path does return what you said precisely.

The game recognizes the converted file, but it bugs the core combat mechanics, as in the character refuses to do certain things.

The only reason I'm bothering you and myself with this is because I see this program as being a great resource to the Jedi Survivor modding community as it can allow them to directly edit .uasset files to create gameplay changing mods.

EDIT 1: After injecting the mod to the game and looking through game files using FModel, I can see that the original .uasset has a proper Offset value to it, whereas the modded .uasset has it to 0.
I think the discrepancy in the Offset values is what is causing the issue.
EDIT 2: Never mind that. The Offset has nothing to do with the bug, it's the difference in the file sizes that I have mentioned above. The converted one is 145KB, while the original is 143KB. Seems like some additional data is being added during the conversion process that's failing it all.

@trumank
Copy link
Owner
trumank commented Mar 18, 2025

Which asset are you editing and what specific problems are you observing? I can edit SwGame/Content/Narrative/LocalisedStrings/UI_Strings.uasset and clearly see changes in the UI, but might not be complex enough of an asset to demonstrate any issues you are seeing.

@trumank trumank changed the title How do I convert legacy assets back to IoStore? [4.26] How do I convert legacy assets back to IoStore? Mar 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants
0