diff --git a/book.toml b/book.toml index 13d3dff..3069234 100644 --- a/book.toml +++ b/book.toml @@ -8,4 +8,4 @@ title = "UE4 Modding Guide" [output.html] default-theme = "navy" git-repository-url = "https://github.com/bananaturtlesandwich/UE4-Modding-Guide" -edit-url-template = "https://github.com/bananaturtlesandwich/UE4-Modding-Guide/edit/master/{path}" \ No newline at end of file +edit-url-template = "https://github.com/bananaturtlesandwich/UE4-Modding-Guide/edit/main/{path}" \ No newline at end of file diff --git a/src/Concepts/Concepts.md b/src/Concepts/Concepts.md index af30994..8fc2d4f 100644 --- a/src/Concepts/Concepts.md +++ b/src/Concepts/Concepts.md @@ -1,23 +1,3 @@ # Core UE4 Modding Concepts -### .pak files -- Pak files are essentially archive files that store most of the resources that the game in question requires to run (think differently structured .zip files) -- The game's main pak will always be contained in the `Content/Paks` directory -- Pak files will sometimes be encrypted via AES keys, however these can be easilyfound with [AESkeyFinder](https://zenhax.com/viewtopic.php?t=9407&start=20) -- Pak files can also be splitted into chunks for a bit of extra security -- Pak files are normally able to be viewed with [UEViewer](https://www.gildor.org/en/projects/umodel) or [Fmodel](https://fmodel.app/) -### Mod Loading -- Traditional mods are loaded as pak files in the same directory as the main game pak (these pak files are created using a tool such as [unrealpak](https://fluffyquack.com/tools/unrealpak.rar)) -- The content inside these paks files will just be content that has been created and then cooked using the same version of unreal as the game in question -- These mods will likely need a `_P` at the end of their name to remove the mount point of the pak and clarify it as a patch so that it overwrites original game content -- The mods should be place in a mod folder (`~mods` works for every game) to ensure proper load order (so the main game pak doesn't overwrite the mod's content) -- Paks are loaded alphabetically in each directory -- Mods can also be loaded via modloader frameworks such as the [Unreal Mod Loader](https://github.com/RussellJerome/UnrealModLoader) (a tool that allows the execution of any arbitrary blueprint code) and [UE4SS](https://github.com/UE4SS/UE4SS) (a tool that allows Lua scripting via reflection) -### Cooking -- Before being put in a pak file, assets undergo a process called cooking where the data used by the engine is erased so only the data needed for the game is in the final pak -- Cooked assets are not able to be edited in the engine however they can be edited through the use of programs such as [UAssetGUI](https://github.com/atenfyr/UAssetGUI) or [Asset Editor](https://github.com/kaiheilos/Utilities) -### .uasset,.umap,.uexp and .ubulk files -- Data is stored in .uasset or .umap files both before and after packaging(.umap files are only used for levels), however after cooking the file structure is different from the structure beforehand -- If the event driven loader is used by the game (introduced around version 4.15) then the cooked file is also split up into the .uasset and the .uexp for faster loading -- In the above case the .uasset/.umap file defines the structure of the asset while the associated .uexp holds the data -- In some cases where more external data is required a .ubulk file is generated which stores this external data such as baked lightmaps for levels +These are general concepts that must be understood if you are to do more in the field of unreal engine 4 modding \ No newline at end of file diff --git a/src/Concepts/Cooking.md b/src/Concepts/Cooking.md new file mode 100644 index 0000000..5c7c301 --- /dev/null +++ b/src/Concepts/Cooking.md @@ -0,0 +1,3 @@ +# Cooking +- Before being put in a pak file, assets undergo a process called cooking where the data used by the engine is erased so only the data needed for the game is in the final pak +- Cooked assets are not able to be edited in the engine however they can be edited through the use of programs such as [UAssetGUI](https://github.com/atenfyr/UAssetGUI) or [Asset Editor](https://github.com/kaiheilos/Utilities) \ No newline at end of file diff --git a/src/Concepts/Dummying.md b/src/Concepts/Dummying.md new file mode 100644 index 0000000..ff2e9c1 --- /dev/null +++ b/src/Concepts/Dummying.md @@ -0,0 +1,15 @@ +# Dummying +- There is a trick called dummying that can be utilised in many situations +- How it works is that you create an empty asset that is the same name and type as an asset in the original pak file +- Another asset will reference this and will contain references after cooking +- In final mod packaging, you omit the dummy asset but nothing else +- This means that in game instead of the dummy asset the other asset will use the asset in the pak + +- The most notable example of this is in mesh modding +- If you want the mesh to continue to use the materials it uses then you would dummy the materials and material instances that it uses +- In packaging these are removed and the mesh uses the original materials in game + +- Another interesting example is dummying an actor or function library to use a function +- The dummy asset is created and a function is added with the same name, parameters and output as the original one +- Another actor calls this function as normal +- The dummy is removed and the function is used as normal in-game \ No newline at end of file diff --git a/src/Concepts/Files.md b/src/Concepts/Files.md new file mode 100644 index 0000000..3b48163 --- /dev/null +++ b/src/Concepts/Files.md @@ -0,0 +1,5 @@ +# Unreal files +- Data is stored in .uasset or .umap files both before and after packaging(.umap files are only used for levels), however after cooking the file structure is different from the structure beforehand +- If the event driven loader is used by the game (introduced around version 4.15) then the cooked file is also split up into the .uasset and the .uexp for faster loading +- In the above case the .uasset/.umap file defines the structure of the asset while the associated .uexp holds the data +- In some cases where more external data is required a .ubulk file is generated which stores this external data such as baked lightmaps for levels \ No newline at end of file diff --git a/src/Concepts/Loading.md b/src/Concepts/Loading.md new file mode 100644 index 0000000..8cafa84 --- /dev/null +++ b/src/Concepts/Loading.md @@ -0,0 +1,7 @@ +# Mod Loading +- Traditional mods are loaded as pak files in the same directory as the main game pak (these pak files are created using a tool such as [unrealpak](https://fluffyquack.com/tools/unrealpak.rar)) +- The content inside these paks files will just be content that has been created and then cooked using the same version of unreal as the game in question +- These mods will likely need a `_P` at the end of their name to remove the mount point of the pak and clarify it as a patch so that it overwrites original game content +- The mods should be place in a mod folder (`~mods` works for every game) to ensure proper load order (so the main game pak doesn't overwrite the mod's content) +- Paks are loaded alphabetically in each directory +- Mods can also be loaded via modloader frameworks such as the [Unreal Mod Loader](https://github.com/RussellJerome/UnrealModLoader) (a tool that allows the execution of any arbitrary blueprint code) and [UE4SS](https://github.com/UE4SS/UE4SS) (a tool that allows Lua scripting via reflection) \ No newline at end of file diff --git a/src/Concepts/Paks.md b/src/Concepts/Paks.md new file mode 100644 index 0000000..168f2ac --- /dev/null +++ b/src/Concepts/Paks.md @@ -0,0 +1,7 @@ +# Pak files +- Pak files are essentially archive files that store most of the resources that the game in question requires to run (think of them as custom .zip files) +- The game's main pak will always be contained in the `Content/Paks` directory +- Pak files will sometimes be encrypted via AES keys, however these can be easilyfound with [AESKeyFinder](https://zenhax.com/viewtopic.php?t=9407&start=20) +- Pak files can also be split into chunks for a bit of extra security +- Pak files are normally able to be viewed with [UEViewer](https://www.gildor.org/en/projects/umodel) or [Fmodel](https://fmodel.app/) +- Pak files can be extracted using tools such as the ones found in [Pakers/Unpakers](../Tools/Pakers.md) \ No newline at end of file diff --git a/src/README.md b/src/Home.md similarity index 98% rename from src/README.md rename to src/Home.md index 5f86c0b..9de1c7f 100644 --- a/src/README.md +++ b/src/Home.md @@ -2,9 +2,9 @@ [![](https://img.shields.io/badge/Nexus%20page-orange?style=for-the-badge&logo=data:image/png;base64,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)](https://www.nexusmods.com/bluefire/) ![](https://img.shields.io/github/deployments/bananaturtlesandwich/Blue-Fire-Modding-Guide/github-pages?label=website%20build&style=for-the-badge) -- *If you wish to use this guide to rip assets out of a game and use them for your own benefit and not to mod, kindly **piss off*** +*If you wish to use this guide to rip assets out of a game and use them for your own benefit and not to mod, kindly **piss off*** - This is a general guide for Unreal Engine 4 game modding that uses Blue Fire for examples -- (*Unfortunately Blue Fire doesn't have a big enough modding scene to fascilitate a guide this detailed anyway*) +(*Unfortunately Blue Fire doesn't have a big enough modding scene to fascilitate a guide this detailed anyway*) ### Credits - FatihG_ and Fluffyquack for being patient with me at the start - [Buckminsterfullerene](https://github.com/Buckminsterfullerene02) for making the UE modding discord and pooling resources diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 0304963..fe2a38e 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -1,9 +1,10 @@ # Summary -[Home Page](README.md) +[Home Page](Home.md) --- +# Starting out - [The Basics](The-Basics/Basics.md) - [Pak Decompression Options](The-Basics/Unpaking/Options.md) - [QuickBMS](The-Basics/Unpaking/QuickBMS.md) @@ -17,8 +18,14 @@ - [Cooking](The-Basics/Paking/Cooking.md) - [Final Packaging](The-Basics/Paking/Final-Paking.md) ---- +- [Core UE4 Modding Concepts](Concepts/Concepts.md) + - [Pak files](Concepts/Paks.md) + - [Mod Loading](Concepts/Loading.md) + - [Cooking](Concepts/Cooking.md) + - [Unreal files](Concepts/Files.md) + - [Dummying](Concepts/Dummying.md) +--- # Specific Guides - [Replacing models]() - [Disabling objects](Specific-Guides/Disabling.md) @@ -31,8 +38,6 @@ --- # Misc. - -- [Core UE4 Modding Concepts](Concepts/Concepts.md) - [Tools](Tools/Tools.md) - [Pakers/Unpakers](Tools/Pakers.md) - [Pak Explorers](Tools/Pak-Explorers.md) diff --git a/src/The-Basics/Basics.md b/src/The-Basics/Basics.md index 1853c96..007d548 100644 --- a/src/The-Basics/Basics.md +++ b/src/The-Basics/Basics.md @@ -7,5 +7,5 @@ You will need to know: ![](projectname.png) - The file path to your game's executable - `Game file path/Game name/Binaries/Win64` - The file path to where your game's content is stored - `Game file path/Game name/Content` -- the version of unreal your game uses - right-click the .exe > Properties > Details and the version of unreal is the File Version which should be in the format 4.XX.X - we only care abount the 4.XX because minor versions don't fundamentally change how content is configured +- the version of unreal your game uses - either hover over the .exe or right-click the .exe > Properties > Details and the version of unreal is the File Version which should be in the format 4.XX.X - we only care abount the 4.XX because minor versions don't fundamentally change how content is configured ![](version.png) \ No newline at end of file diff --git a/src/Tools/Libraries.md b/src/Tools/Libraries.md new file mode 100644 index 0000000..634a1df --- /dev/null +++ b/src/Tools/Libraries.md @@ -0,0 +1,13 @@ +# Libraries + ### Rust crates + - [uasset](https://docs.rs/uasset) + - [unreal unpak](https://docs.rs/rust-unreal-unpak) + - [unreal automation tools](https://docs.rs/cargo-uat) + ### Python + - [PyPakParser](https://pypi.org/project/PyPAKParser/) + ### C sharp + - [UassetAPI](https://github.com/atenfyr/UAssetAPI) + - [UETools](https://github.com/UETools/UETools) + - [UnSave](https://www.nuget.org/packages/UnSave) + - [UnSave.Extensions](https://www.nuget.org/packages/UnSave.Extensions) + - [PakReader](https://www.nuget.org/packages/PakReader/) \ No newline at end of file diff --git a/src/Tools/Pakers.md b/src/Tools/Pakers.md index a97e45f..c568d48 100644 --- a/src/Tools/Pakers.md +++ b/src/Tools/Pakers.md @@ -1,6 +1,8 @@ # Pakers/Unpakers These are tools that are capable of unpaking or creating pak archives +- [QuickBMS](https://aluigi.altervista.org/papers/quickbms.zip) by Luigi Auriemma and [unrealtournament.bms](https://aluigi.altervista.org/bms/unreal_tournament_4.bms) allow for fast unpaking of pak files + - [unrealpak scripts](https://fluffyquack.com/tools/unrealpak.rar) by [Fluffyquack](https://github.com/FluffyQuack) which allows creation of compressed pak files - [u4pak](https://github.com/panzi/u4pak) by [panzi](https://github.com/panzi) which can also mount, list and check pak files diff --git a/src/Tools/Tools.md b/src/Tools/Tools.md index a6a89ef..14c7827 100644 --- a/src/Tools/Tools.md +++ b/src/Tools/Tools.md @@ -1,19 +1,5 @@ # Tools This section is dedicated to listing down tools helpful in Unreal Engine 4 modding -### Blueprint modding - - The [Unreal Modloader](https://github.com/RussellJerome/UnrealModLoader) is a program by [RusselJ]() that allows the spawning of custom blueprint code at runtime -### Assorted libraries - ### Rust crates - - [uasset](https://docs.rs/uasset) - - [unreal unpak](https://docs.rs/rust-unreal-unpak) - - [unreal automation tools](https://docs.rs/cargo-uat) - ### Python - - [PyPakParser](https://pypi.org/project/PyPAKParser/) - ### C sharp - - [UassetAPI](https://github.com/atenfyr/UAssetAPI) - - [UETools](https://github.com/UETools/UETools) - - [UnSave](https://www.nuget.org/packages/UnSave) - - [UnSave.Extensions](https://www.nuget.org/packages/UnSave.Extensions) - - [PakReader](https://www.nuget.org/packages/PakReader/) \ No newline at end of file +This covers pretty much everything useful I could find for *general* UE4 modding \ No newline at end of file