ADK Performance Tips – Getting the Kit to Play Nice

ADK… Oh how you misbehave.  I just tried to change some simple text, and nope, computer says no. Crash. Well thankfully, the community has come up with some tips to help keep your modding on track.

Contents

Installing the Kit (Use an SSD)

The best advice anyone can get for improving general performance is to install the kit onto a Solid State Drive (SSD) rather than a normal platter based hard drive.  The editor is referencing a huge number of assets, and having a drive with a high read rate in particular is crucial to improving the editor’s performance.  It is even preferable to store the ADK and modding resources on its own SSD if possible.

First Time Load

When you start the kit for the first time it will seem to take a very long time, and even appear to freeze.  This is due to the large number of assets (some requiring shader compiles and reference loading), and is unfortunately normal.  Once you’ve loaded into the kit though, the fun doesn’t stop there.  There are many assets that require shader compiling so that the engine can store a compiled copy of the shader inside its DerivedDataCache folder.  Shader compiles are one of the most time consuming parts of working with the kit, but there are a number of tips to speed them up.

Shader Compile Tips

TIP #1 – Download a Copy: You can skip a lot of the shader compiles by just downloading a copy of someone else’s folder and overwriting your own with theirs. Zen Rowe has provided a starter DDC for Extinction, and cpjet has his available as well. Check the Discord.

TIP #2 – Open all Maps and Sublevels: If you’re going compile the shaders yourself, then it’s best to get them all over with as soon as you can.  The easiest way to trigger the shaders to compile is to open up the maps from The Island, Scorched Earth, and Aberration, and then load the sublevels.

In order to do that, you need to click on the File Menu > Open Level and then browse to the maps folder.

Load the persistent level. TheIsland, ScorchedEarth_P, or Aberration_P from in their respective sub folders.

When the persistent level loads, you’ll notice that there isn’t any landscape visible. You need to load the other levels as well.

You do that by clicking on the Window menu and then selecting Levels

 

You can then select the levels that you want to load, right click on them, and choose Load.

This will then load those levels into memory, this will trigger a lot of extra shader compiles.

 

Tip #3 – Increase Process Priority: Now that your computer has ground to a halt with shader compiles, there is a useful tip to change the priority of the compiler process so that it speeds up the process.  In order to do this, you need to open a PowerShell window (Win+R Key, and then type Powershell + ENTER) and paste in the following code and hit enter.

$i=0; while($i -lt 3600) { $processes = get-process ShaderCompileworker -ErrorAction SilentlyContinue;foreach($process in $processes){ $process.PriorityClass="High" };$i++;Start-Sleep -Seconds 2 }

Source: Letoric (Discord)

This will run for 2 hours searching for processes matching ShaderCompileWorker and setting them to high priority. To run for a shorter time, change 3600 to say, 1800 (1 hour) or 900 (30 minutes).

Mod Cooking Speed Tip – Disable Indexing

If your mod cook triggers shader compiles to occur, then using the PowerShell tip above to increase the process priority will help. You can however, improve your cook times by disabling indexing on your windows drive that stores your kit, see below.

A quick way to drop the time required for each I/O operation is preventing the OS to perform indexing operation on your files. While I’m preventing it for my whole main drive you can do the same for a specific folder if you which within the advanced option section of the folder properties. Just disable the option called Allow files on this drive to have contents indexed in addition to file properties and you will have an instant boost in your compile times. On a full rebuild just that option gave me about 2 to 3 minutes of improvement.

Highlighted by Glog (Discord) – Source: Unreal Wiki

Starting the Kit Tip

Play before you Mod

One aspect to life in the engine that one must deal with, is asset references loaded in memory.  If the assets aren’t properly loaded, then you won’t be able to access them when you need them.  For example: – missing cast options when you’re trying to find the right object.  I’ve found a workflow that works pretty well for me, so I thought I’d share it with you all.

  • Start the kit without having any PrimalGameData (PGD) file saved in your map.  (Should load quickly – 15 seconds-ish if on SSD and without shader compiles).
  • Click play, to start PIE as soon as the kit is loaded.  Usually takes me about 3 – 3.5 minutes for PIE to start (if you’ve set the PIE settings below).
  • Exit out of PIE and then load up your mod’s PrimalGameData file. (About 5 seconds)

You should then be able to open up any of your mod blueprints and work away.

Speed up Play-In-Editor (PIE)

In order to speed up the PIE loading, the first tip is to untick the ‘Auto Recompile Blueprints’ option in the advanced settings of the play drop down menu.  You should also tick ‘Run Dedicated Server’ in order to test your mod properly for multiplayer.

Wildcard provided the tip below as well to speed up the time to play in PIE by loading less resources into memory, but I prefer to have them loaded myself.

Wildcard Tip: Note, if you are only making Mods (not TC’s) and want a faster Play In Editor time, clear out the arrays in /PrimalEarth/CoreBlueprints/BASE_ExtraResourcesContainer and save that. The DevKit will then only cache a much smaller fraction of game classes into memory upon starting up PIE (no Dinos, etc).  –  Source Devkit Update Notes for 268.8. 

Note: probably best to back this up if you’re going to overwrite it.

Prevent Overwriting Core Files – Folder Write Protect

It’s very easy to accidentally overwrite core files, which can cause you a lot of trouble. One way to avoid having to verify your kit installation is by utilizing a tip from Grebog.  If you write protect the PrimalEarth, ScorchedEarth, and Aberration folders then you can be assured that no changes will save over the core files.

Well that’s it for now. I hope some of these tips help you along your modding way.  I’ll update this post with any other performance tips that the community discovers.

Happy Modding,

Mork.

Leave a Reply

Your email address will not be published. Required fields are marked *