This tutorial could be brief, suit for those who have modding experience but don't know how to start modding with Stellar Blade
Step1: Tool Preparation
FModel: For View the file structure & give a peek about what's inside a file
Retoc: For Unpack & Pack the loose UAssets file (I'll tell you why don't use FModel to unpack later)
UAssetsGUI: For modify UAssets
If you want to Make a model mod, then this tutorial is not meant for that, you may need:
Stellar-Blade-Modding-Guide
Step2: Find The File You Need in Fmodel
We now know the game defined the player character basic attributes in "CharacterTable.uasset"
But Wait, if you unpack this file with Fmodel, you may get trouble in next step like this:
This is because the game used zen loader, but when you edit a uasset file with UassetGUI, it requires you to provide legacy uasset. So, we need a tool to unpack the game file directly into Legacy Uassets
Step3: Unpack file with retoc
After you downloaded retoc from github, place this exe at
%your_own_path%\steam\steamapps\common\StellarBlade\SB\Content
where you will see pak folder beside
Then we open the terminal in this folder, and type in.\retoc.exe to-legacy .\Paks\ ./output -f "CharacterTable.uasset"
And if you want to know what those arguments means, you can type in .\retoc.exe to-legacy -h and it will show you:Converts asests and shaders from Zen to Legacy
Usage: retoc.exe to-legacy [OPTIONS] <INPUT> <OUTPUT>
Arguments:
<INPUT> Input .utoc or directory with multiple .utoc (e.g. Content/Paks/)
<OUTPUT> Output directory or .pak
Options:
-f, --filter <FILTER> Asset file name filter
--no-assets Skip conversion of assets
--no-shaders Skip conversion of shader libraries
--no-compres-shaders Skip compression of shader libraries
-d, --dry-run Do not output any files (dry run). Useful for testing conversion
--version <VERSION> Engine version override [possible values: UE4_26, UE4_27, UE5_0, UE5_1, UE5_2, UE5_3, UE5_4, UE5_5]
-v, --verbose Verbose logging
--debug Debug logging
--no-parallel Do not run in parallel. Useful for debugging
-h, --help Print help
Since we only need the "CharacterTable.uasset" file, so we gave it a filter, otherwise, you will unpack all of the game assets which will explode your disc very quick.
After that, we can see our target file in Output Folder which is near the pak folder.
You may find mutiple file in this folder, this is normal since another file "TransformCharacterTable.uasset" has a substring of "CharacterTable.uasset", simply delete this extra file is okay.
Step 4: Mess with those values you want in UassetsGUI
If you open the file directly with UassetsGUI, it may reminds you that you're lack of mapping.
and the mapping file can also be found in the Modding Wiki which is Mapping file (.usmap)
After Import mapping you download from github, you can mess with the value in Export data. It looks like a table
Step 5: Pack your mod with retoc
I assume you directly modified the file inside the "Output" folder from we just did.
your file structure should be like
output\SB\Content\Local\Data
- CharacterTable.uasset
- CharacterTable.uexp
Always remember to wrap a parent folder for SB folder, or your mod may not be recognized by the game.
Then we use retoc command to pack our mod:.\retoc.exe to-zen .\output\ your_mod_name_P.utoc --version UE4_26
Converts assets and shaders from Legacy to Zen
Usage: retoc.exe to-zen [OPTIONS] --version <VERSION> <INPUT> <OUTPUT>
Arguments:
<INPUT> Input directory or .pak
<OUTPUT> Output .utoc
Options:
-f, --filter <FILTER> Asset file name filter
--version <VERSION> Engine version [possible values: UE4_26, UE4_27, UE5_0, UE5_1, UE5_2, UE5_3, UE5_4, UE5_5]
-v, --verbose Verbose logging
--debug Debug logging
--no-parallel Do not run in parallel. Useful for debugging
-h, --help Print help
We specify the version of UE4_26 is because Stellar Blade is made in UE4.26
Always remember to give your mod a _P suffix or you may find your game go crash when start up!Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2025/6/14 17:41 Images
d---- 2025/6/14 17:41 Movies
d---- 2025/6/16 18:50 output
d---- 2025/6/16 15:35 Paks
d---- 2025/6/14 17:41 Splash
-a--- 2025/6/16 13:28 637952 oo2core_9_win64.dll
-a--- 2025/4/29 9:45 6144512 retoc.exe
-a--- 2025/6/16 19:12 347 your_mod_name_P.pak
-a--- 2025/6/16 19:12 380686 your_mod_name_P.ucas
-a--- 2025/6/16 19:12 520 your_mod_name_P.utoc
And then you can find the packed mod in the same directory
- your_mod_name_P.utoc
- your_mod_name_P.ucas
- your_mod_name_P.pak
Step 6: Install your mod and enjoy the game!
10 comments
Error: Failed to read chunk FIoChunkId { chunk_id: "9bdb3fceb6b7da900000000a", chunk_type: ContainerHeader }
Caused by:
ureq error Transport(Transport { kind: ConnectionFailed, message: Some("tls connection init failed"), url: Some(Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("github.com")), port: None, path: "/WorkingRobot/OodleUE/raw/refs/heads/main/Engine/Source/Programs/Shared/EpicGames.Oodle/Sdk//2.9.10/win/redist/oo2core_9_win64.dll", query: None, fragment: None }), source: Some(Custom { kind: InvalidData, error: InvalidCertificate(UnknownIssuer) }) })
I get "The system cannot find the path specified." I am in the folder above "output" when running the command.
NVM, I had a space before the command. It worked.
Error: Failed to read chunk FIoChunkId { chunk_id: "9bdb3fceb6b7da900000000a", chunk_type: ContainerHeader }
Caused by:
ureq error Transport(Transport { kind: ConnectionFailed, message: Some("tls connection init failed"), url: Some(Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("github.com")), port: None, path: "/WorkingRobot/OodleUE/raw/refs/heads/main/Engine/Source/Programs/Shared/EpicGames.Oodle/Sdk//2.9.10/win/redist/oo2core_9_win64.dll", query: None, fragment: None }), source: Some(Custom { kind: InvalidData, error: InvalidCertificate(UnknownIssuer) }) })
I'll link his video here in case someone else is stuck like I was. The video is mostly for texture edits but the start is what helped me with FModel.
Sorry if you don't like me linking anything OP but if it's really a problem go ahead and remove this comment but at least clarify what all you need to start using FModel.
error: the following required arguments were not provided:
<OUTPUT>
Can u help me?