Skip to content

Commit

Permalink
Merge pull request #1 from dobosken/master
Browse files Browse the repository at this point in the history
restructuring and simplification
  • Loading branch information
WistfulHopes authored Dec 20, 2023
2 parents 1b7f78d + d1d4bd8 commit 4b8e677
Show file tree
Hide file tree
Showing 12 changed files with 128 additions and 55 deletions.
4 changes: 4 additions & 0 deletions book.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,7 @@ language = "en"
multilingual = false
src = "src"
title = "Arc System Works Modding Book"

[output.html.fold]
enable = true # whether or not to enable section folding
level = 0 # the depth to start folding
63 changes: 50 additions & 13 deletions src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,53 @@

# Getting Started

- [The right Unreal Engine build](getting-started/getting-unreal.md)
- [How to use Unreal Engine](getting-started/using-unreal.md)
- [Getting the project for your game](getting-started/custom-project.md)
- [Testing and distribution](getting-started/final.md)
- [Packaging your mod](getting-started/packing.md)
- [Installing your mod](getting-started/installing.md)

# UI Modding

- [Applicable games](ui-modding/applicable.md)
- [UMG basics](ui-modding/umg.md)
- [Finding widgets](ui-modding/assets.md)
- [Common pitfalls](ui-modding/pitfalls.md)
- [Installing Unreal Engine](getting-started/getting-unreal.md)
- [Starting the editor](getting-started/using-unreal.md)
- [Custom UE4 project](getting-started/custom-project.md)](getting-started/installing.md)
- [Required tools]()
- [Loose file loading]()

# Creating your mod

- [Mesh/Model]()
- [Extracting game models]()
- [Importing models into Blender]()
- [Exporting models into UE4]()
- [Setting materials and outline]()

- [Texture/Color]()

- [Animations]()
- [Extracting animations]()
- [Importing animations into Blender]()
- [Altering animations in Blender]()
- [Exporting animations into UE4]()
- [Checking animations in-game]()
- [Adding entirely new animations]()

- [Particles]()
- [Particle editor]()
- [UassetGUI]()

- [Moveset]()
- [Extracting BBS]()
- [Understanding BBS]()
- [Importing BBS]()
- [Advanced BBS]()
- [Per-game BBS specifics]()
- [Strive]()
- [DBFZ]()

- [UI Modding]()
- [Applicable games](ui-modding/applicable.md)
- [UMG basics](ui-modding/umg.md)
- [Finding widgets](ui-modding/assets.md)
- [Common pitfalls](ui-modding/pitfalls.md)

# Distributing your mod
- [Creating a .pak archive]()
- [Packaging your mod](testing-packing/packing.md)
- [Installing your mod](testing-packing/installing.md)
- [Unverum compatibility]()
- [Text patching]()
- [Uploading to Gamebanana]()
8 changes: 5 additions & 3 deletions src/getting-started/custom-project.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Getting the project for your game

As stated in the previous page, the prebuilt custom projects will make modding much easier. They provide all of the custom asset types the game supports, and for newer games, they even include many assets from the game, such as UI elements or data tables.
The prebuilt custom projects provide all of the custom asset types the game supports, and for newer games, they even include many assets from the game, such as UI elements or data tables.

Below are download links for each game:

Expand All @@ -10,9 +10,11 @@ Below are download links for each game:
- [DNF Duel custom project](https://1drv.ms/u/s!ApT7KvOr_B0hgY3rUBgqs787KHi5_iY?e=xKuxrI)
- [Granblue Fantasy Versus Rising custom project](https://drive.google.com/file/d/1aA1WYxkxpOUpNqSi5kANLUhh4Ja7A_4l/view?usp=drive_link)

Once you have downloaded the correct project, you will need to compile the project for your engine. This will require installing Visual Studio.
Once you have downloaded the correct project, extract it to your Unreal Projects directory. If you've run the editor before, you can usually find it at `Documents\Unreal Projects\`.

You'll also need a working installation of Microsoft's Visual Studio in order for the editor to be able to compile the project.

- Dragon Ball FighterZ requires Visual Studio 2017.
- Guilty Gear -Strive-, DNF Duel, and Granblue Fantasy Versus Rising require Visual Studio 2019.

For more information, [read the official Unreal Engine documentation](https://docs.unrealengine.com/4.26/en-US/ProductionPipelines/DevelopmentSetup/VisualStudioSetup/).
For more information on how to set up Visual Studio for UE4, [read the official Unreal Engine documentation](https://docs.unrealengine.com/4.26/en-US/ProductionPipelines/DevelopmentSetup/VisualStudioSetup/).
6 changes: 0 additions & 6 deletions src/getting-started/final.md
Original file line number Diff line number Diff line change
@@ -1,7 +1 @@
# Testing and distribution

After your mod is cooked in Unreal Editor (or you finished editing assets with UAssetGUI), your mod is almost ready! But in order to easily test and distribute the mod, the files must first be packaged into a .pak file. Then, you'll need to distribute your mod in an installable format. This section will help you learn the following:

- Packaging your mod
- Installing your mod
- Distributing your mod
21 changes: 14 additions & 7 deletions src/getting-started/getting-unreal.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,17 @@
# The right Unreal Engine build
# Installing Unreal Engine

Unreal Engine 4 is a versatile engine, but sometimes the developer may need more than is originally provided. When this happens, the developer will modify UE4 to suit their needs. Arc System Works does this for all of their titles. As a result, we have to replicate their changes in order to make high quality mods. Mesh, particle, and shader replacements all require these changes. Luckily, there are public customized engines for every Unreal Engine version Arc System Works has used.
Arc System Works has customized various aspects of UE4 to suit their needs.

Below are download links to every custom engine version and its associated game(s):
This means that although we can install the plain vanilla UE4 and use that to make mods, we'd be missing on key features needed to make them work properly. Thankfully, Ryn has reverse-engineered several of these changes and implemented some of the key features we require into custom UE4 builds.

- Dragon Ball FighterZ uses [Unreal Engine 4.17](https://1drv.ms/u/s!ApT7KvOr_B0hy4ZgwT3lHcwhu3MVSA?e=cTrwqV).
- The original Granblue Fantasy Versus uses [Unreal Engine 4.21](https://1drv.ms/u/s!ApT7KvOr_B0hkPgWb5AjxrUapJcYmQ?e=79mVYA).
- Guilty Gear -Strive- and DNF Duel use [Unreal Engine 4.25](https://1drv.ms/u/s!ApT7KvOr_B0hkPgRVEhN1MsPEpnAeA?e=bPFdsf).
- Granblue Fantasy Versus Rising uses [Unreal Engine 4.27](https://drive.google.com/file/d/1SnX9rcMxeHP82GojHocdLUux2Sa0qZG1/view?usp=sharing).


Download links below. Just pick the one matching the game you wish to mod. Note that the exact version is important; you cannot do things like use UE4.27 to mod DBFZ.

| Game | Engine |
| ----------------------------- | -------------------------------------------------------------------------------------------------------- |
| Dragon Ball FighterZ | [Unreal Engine 4.17](https://1drv.ms/u/s!ApT7KvOr_B0hy4ZgwT3lHcwhu3MVSA?e=cTrwqV) |
| Guilty Gear \-Strive\- | [Unreal Engine 4.25](https://1drv.ms/u/s!ApT7KvOr_B0hkPgRVEhN1MsPEpnAeA?e=bPFdsf) |
| DNF Duel | [Unreal Engine 4.25](https://1drv.ms/u/s!ApT7KvOr_B0hkPgRVEhN1MsPEpnAeA?e=bPFdsf) |
| Granblue Fantasy Versus | [Unreal Engine 4.21](https://1drv.ms/u/s!ApT7KvOr_B0hkPgWb5AjxrUapJcYmQ?e=79mVYA) |
| GranBlue Fantasy Verus Rising | [Unreal Engine 4.27](https://drive.google.com/file/d/1SnX9rcMxeHP82GojHocdLUux2Sa0qZG1/view?usp=sharing) |
12 changes: 0 additions & 12 deletions src/getting-started/installing.md
Original file line number Diff line number Diff line change
@@ -1,13 +1 @@
# Installing your mod

Once your mod is packaged, you currently have two options for installing it:

1. Using Unverum. Press "Add Mods" at the top-right, then click "Create New Mod." Give it any name you wish, and after pressing Confirm, find the .pak you made in the previous step. Now, once you press Launch at the top-center, your mod will be used in-game. This method's main advantages are easy management of mods, and .sig files are generated for you. The main disadvantage is that Unverum is somewhat clunky by comparison to mod managers used by other communities, and a decent number of people choose to not use it altogether.

2. Manual installation. Navigate to your game's Steam installation directory, then to RED\Content\Paks. Create a new folder inside Paks with name `~mods` (remember the ~ symbol, it is important). You may now put the previously generated .pak inside this folder. The final step is to take a .sig file from the game's Paks folder, copy it into `~mods`, and rename it to have the same name as your mod. As an example, if you have a mod named `LabcoatSol.pak` for Guilty Gear -Strive-, you would take `pakchunk0-WindowsNoEditor.sig` from the Paks directory, copy it into `~mods`, and rename it to `LabcoatSol.sig`.

<div class="warning">

If you are modding Granblue Fantasy Versus: Rising (*not* the original Granblue Fantasy Versus), you will need to add `-fileopenlog` to the Steam launch options for the game. **Otherwise, your mods will not work.** [Here is the official Steam documentation on launch options.](https://help.steampowered.com/en/faqs/view/7D01-D2DD-D75E-2955)

</div>
8 changes: 0 additions & 8 deletions src/getting-started/packing.md
Original file line number Diff line number Diff line change
@@ -1,9 +1 @@
# Packaging your mod

First: the prerequisites. In order to package your mod, the folder hierarchy must follow the rule of `ModName\RED\Content\`, with the rest of the hierarchy matching the asset's original path.

As an example, if I am modding the asset sol_body in folder `RED\Content\Chara\SOL\Costume01\Mesh` and the mod is named LabcoatSol, I would need to have sol_body in `LabcoatSol\RED\Content\Chara\SOL\Costume01\Mesh`. Then, put sol_body.uasset *and* sol_body.uexp in that folder.

Then, you need a tool to package the mod. There is only one option I recommend for this: [Epic Games' own Unreal Pak tool](https://drive.google.com/file/d/1erwPVaAWp_9S0JzeM0aMR_NfHIcU6a4Z/view?usp=sharing). This specific version of Unreal Pak works on all Arc System Works games, though I can't guarantee it works on *all* Unreal Engine games.

Actually packaging your mod is quite simple: simply drag the mod folder onto the `UnrealPak-With-Compression.bat` file. It should spit out a file with the same name as the mod folder, but with the .pak extension.
18 changes: 18 additions & 0 deletions src/getting-started/ue4-assets.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Getting the project for your game

As stated in the previous page, the prebuilt custom projects will make modding much easier. They provide all of the custom asset types the game supports, and for newer games, they even include many assets from the game, such as UI elements or data tables.

Below are download links for each game:

- [Dragon Ball FighterZ custom project](https://drive.google.com/file/d/1-wjbe0aE4Xs8S7AunSB0XtAE-sSZsOnW/view?usp=sharing)
- The original Granblue Fantasy Versus does not have a custom project.
- [Guilty Gear -Strive- custom project](https://1drv.ms/u/s!ApT7KvOr_B0hgcnnF_wKrCaxCVbm8yg?e=SAufMR)
- [DNF Duel custom project](https://1drv.ms/u/s!ApT7KvOr_B0hgY3rUBgqs787KHi5_iY?e=xKuxrI)
- [Granblue Fantasy Versus Rising custom project](https://drive.google.com/file/d/1aA1WYxkxpOUpNqSi5kANLUhh4Ja7A_4l/view?usp=drive_link)

Once you have downloaded the correct project, you will need to compile the project for your engine. This will require installing Visual Studio.

- Dragon Ball FighterZ requires Visual Studio 2017.
- Guilty Gear -Strive-, DNF Duel, and Granblue Fantasy Versus Rising require Visual Studio 2019.

For more information, [read the official Unreal Engine documentation](https://docs.unrealengine.com/4.26/en-US/ProductionPipelines/DevelopmentSetup/VisualStudioSetup/).
14 changes: 8 additions & 6 deletions src/getting-started/using-unreal.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
# How to use Unreal Engine
# Starting the editor

After downloading the custom Unreal Engine build, you may be wondering how to use it. If you are on version 23H2 of Windows 11, the operating system will be able to decompress the archive file itself. Simply right-click the file and click Extract All from the context menu.
Extract all of the contents from the custom UE4 archive you downloaded in the previous step. You can use tools like [WinRAR]([https://www.win-rar.com/](https://www.win-rar.com/)) or [7-Zip](https://www.7-zip.org) to do so.

If you are on an older version of Windows, you will need third-party software like [WinRAR](https://www.win-rar.com/) to extract the file. A guide for extracting files with WinRAR can be found [here](https://www.win-rar.com/open-rar-file.html?&L=0).
Once that is complete, you can fire up the engine with `.\Engine\Binaries\Win64\UE4Editor.exe`

The extraction process will take a while, especially depending on your hardware. For best results, you should use a solid state drive to store your Unreal Engine build.
**You do not need the Epic Launcher for this.**

Once that is complete, open the folder in File Explorer, and navigate to Engine\Binaries\Win64. Find the UE4Editor executable and run it. When running it for the first time, it will take a while to compile shaders. If you're unsure why Unreal is taking so long to open, open Task Manager and check the process for high CPU usage, or look for ShaderCompileWorker processes within it. These two are proof of compiling shaders.
<br />

Once Unreal finishes initializing, you will be met with the Project Browser menu. While you could create your own project from scratch, this is not recommended. Arc System Works uses many custom asset types that require custom prebuilt projects to use. The next page will go into more detail.
The first boot of the UE4 editor usually takes a while to get going. If you want to check whether it's actually starting or not, open Task Manager (ctrl+shift+esc) and check for high CPU usage. This usually means it's busy compiling shaders.

Once Unreal finishes initializing, you will be met with the Project Browser menu. While you could create your own project from scratch, we highly recommend starting off with one of the [premade custom projects.](custom-project.md)
7 changes: 7 additions & 0 deletions src/testing-packing/final.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Testing and distribution

After your mod is cooked in Unreal Editor (or you finished editing assets with UAssetGUI), your mod is almost ready! But in order to easily test and distribute the mod, the files must first be packaged into a .pak file. Then, you'll need to distribute your mod in an installable format. This section will help you learn the following:

- Packaging your mod
- Installing your mod
- Distributing your mod
13 changes: 13 additions & 0 deletions src/testing-packing/installing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Installing your mod

Once your mod is packaged, you currently have two options for installing it:

1. Using Unverum. Press "Add Mods" at the top-right, then click "Create New Mod." Give it any name you wish, and after pressing Confirm, find the .pak you made in the previous step. Now, once you press Launch at the top-center, your mod will be used in-game. This method's main advantages are easy management of mods, and .sig files are generated for you. The main disadvantage is that Unverum is somewhat clunky by comparison to mod managers used by other communities, and a decent number of people choose to not use it altogether.

2. Manual installation. Navigate to your game's Steam installation directory, then to RED\Content\Paks. Create a new folder inside Paks with name `~mods` (remember the ~ symbol, it is important). You may now put the previously generated .pak inside this folder. The final step is to take a .sig file from the game's Paks folder, copy it into `~mods`, and rename it to have the same name as your mod. As an example, if you have a mod named `LabcoatSol.pak` for Guilty Gear -Strive-, you would take `pakchunk0-WindowsNoEditor.sig` from the Paks directory, copy it into `~mods`, and rename it to `LabcoatSol.sig`.

<div class="warning">

If you are modding Granblue Fantasy Versus: Rising (*not* the original Granblue Fantasy Versus), you will need to add `-fileopenlog` to the Steam launch options for the game. **Otherwise, your mods will not work.** [Here is the official Steam documentation on launch options.](https://help.steampowered.com/en/faqs/view/7D01-D2DD-D75E-2955)

</div>
9 changes: 9 additions & 0 deletions src/testing-packing/packing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Packaging your mod

First: the prerequisites. In order to package your mod, the folder hierarchy must follow the rule of `ModName\RED\Content\`, with the rest of the hierarchy matching the asset's original path.

As an example, if I am modding the asset sol_body in folder `RED\Content\Chara\SOL\Costume01\Mesh` and the mod is named LabcoatSol, I would need to have sol_body in `LabcoatSol\RED\Content\Chara\SOL\Costume01\Mesh`. Then, put sol_body.uasset *and* sol_body.uexp in that folder.

Then, you need a tool to package the mod. There is only one option I recommend for this: [Epic Games' own Unreal Pak tool](https://drive.google.com/file/d/1erwPVaAWp_9S0JzeM0aMR_NfHIcU6a4Z/view?usp=sharing). This specific version of Unreal Pak works on all Arc System Works games, though I can't guarantee it works on *all* Unreal Engine games.

Actually packaging your mod is quite simple: simply drag the mod folder onto the `UnrealPak-With-Compression.bat` file. It should spit out a file with the same name as the mod folder, but with the .pak extension.

0 comments on commit 4b8e677

Please sign in to comment.