Moolah PAYDAY 3 Modding Documentation
website·Indexed 31 days ago
https://moolah.devComprehensive guides and technical documentation for modding PAYDAY 3. Covers the use of Unreal Engine 4.27, UE4SS, FModel, and the Asset Toolkit. Includes instructions for custom heists, mapping, texture and mesh replacements, custom music via Wwise, and packaging mods for the Moolah Mod Launcher using pd3mod.json.
What's inside Moolah
- Modding for PAYDAY 3 can be achieved through two primary development paths: using the Unreal Editor with a modkit containing assets generated from the game, or using UE4SS, which provides a LUA toolkit and a runtime property inspector.
Register a custom map using PD3HeistDataAsset
To make a map visible to the
MapLoadermod, you must create aPD3HeistDataAssetwith the following requirements:- Location: Preferably stored in
Content/Mods/Maps/{ModName}. - Naming Convention: Name the asset
DA_Heist_{ModName}. - Level Path: Set this property to point to your created map file.
- Metadata: Use this asset to define the map's in-game name and description.
- Location: Preferably stored in
Organize mod content and folder structure
Organize your mod files into specific directories to ensure compatibility with the Moolah Mod Launcher:
- Pak files: Place in a folder named
Paks. Pak filenames must end with_P.pakto ensure asset replacements are applied correctly. - UE4SS content: Place Lua scripts or DLLs in a folder named
ue4ss. - Important: Do not include an
enabled.txtfile for UE4SS mods; the launcher manages this by updating themods.txtfile automatically.
MyMod-v1.0.0 ├── paks │ └── MyMod_P.pak ├── ue4ss │ ├── dlls │ │ └── main.dll │ └── scripts │ ├── main.lua │ └── util.lua ├── icon.png └── pd3mod.json- Pak files: Place in a folder named
Set up FModel for PAYDAY 3
To configure FModel for PAYDAY 3, navigate toDirectory>Selectorand provide a name for the game and the path to the game's root directory. Because PAYDAY 3 uses AES encryption, you must also provide the AES key by navigating toDirectory>AESand entering the key (which must be sourced independently).Cook game files for PAYDAY 3
All files must be cooked before they can be packaged and tested. In the Unreal Editor, navigate to theFilemenu and selectCook Content for Windows. The cooked files will be output to{UE4ProjectDir}/Saved/Cooked/WindowsNoEditor/.Set up a custom map for PAYDAY 3
To create a custom map, use the Unreal Engine editor. The recommended directory for storing map files isContent/Maps/{ModName}. To ensure the map loads correctly in PAYDAY 3, you must include aSBZPlayerStartGroupactor in the level and add at least onePlayerStartto that group.Create a Data Asset in the Content Browser
To create a new data asset in the editor, right-click in the content browser, navigate to theMiscellaneousmenu, and selectData Asset. From the class picker, search for and select the specific data asset type you wish to use (e.g.,PD3HeistDataAsset), then provide a name for the asset.Package and export a .pd3mod file
Once the mod directory is organized, follow these steps to create the final distributable package:
- Zip the contents of your mod directory (do not zip the parent folder itself).
- Ensure
pd3mod.jsonis located at the root of the zip archive. - Change the file extension of the resulting
.zipfile to.pd3mod.
Install the Asset Generator editor plugin
To add asset generation capabilities to the Unreal Editor:
- Download/Clone UEAssetToolkit-Fixes.
- Move the
AssetGeneratorandAssetDumperdirectories into your project'sPluginsdirectory. - Restart the editor to compile and load the plugins.
Manage mod dependencies in pd3mod.json
Dependencies are defined as maps where keys are mod IDs and values are NPM-style semver ranges (e.g.,
1.2.3,1.x.x,*).depends: Hard requirement. Game will not launch if missing/mismatched; launcher shows an error.breaks: Hard conflict. Game will not launch if matched; launcher shows an error.recommends: Soft requirement. Launcher shows a warning if missing/mismatched.conflicts: Soft conflict. Launcher shows a warning if matched.suggests: Metadata only; ignored by the launcher.
{ "depends": { "required-mod-id": "^1.0.0" }, "conflicts": { "incompatible-mod-id": "*" } }Assign material instances to a model
- Create a material instance from the stubbed master material (e.g.,
MM_HelicopterInterior). - Place the instance under
/Content/Mods/[YourModName]. - Open the material instance and assign the packed texture parameters.
- Open the model asset and assign the material instance to the appropriate material slots.
- Create a material instance from the stubbed master material (e.g.,
Use UE4SS for Lua mods and debugging
UE4SS is an optional dependency that can be downloaded to enable the creation of Lua mods or to access additional runtime debugging tools during the modding process.