Skip to content

Commit

Permalink
Still intimidated by the specific guides
Browse files Browse the repository at this point in the history
  • Loading branch information
bananaturtlesandwich committed Aug 27, 2023
1 parent aba2619 commit 0e88cbd
Show file tree
Hide file tree
Showing 13 changed files with 67 additions and 44 deletions.
2 changes: 1 addition & 1 deletion book.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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}"
edit-url-template = "https://github.com/bananaturtlesandwich/UE4-Modding-Guide/edit/main/{path}"
22 changes: 1 addition & 21 deletions src/Concepts/Concepts.md
Original file line number Diff line number Diff line change
@@ -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
3 changes: 3 additions & 0 deletions src/Concepts/Cooking.md
Original file line number Diff line number Diff line change
@@ -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)
15 changes: 15 additions & 0 deletions src/Concepts/Dummying.md
Original file line number Diff line number Diff line change
@@ -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
5 changes: 5 additions & 0 deletions src/Concepts/Files.md
Original file line number Diff line number Diff line change
@@ -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
7 changes: 7 additions & 0 deletions src/Concepts/Loading.md
Original file line number Diff line number Diff line change
@@ -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)
7 changes: 7 additions & 0 deletions src/Concepts/Paks.md
Original file line number Diff line number Diff line change
@@ -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)
Loading

0 comments on commit 0e88cbd

Please sign in to comment.