Skip to content

Distributing to your Community

Buckminsterfullerene02 edited this page Sep 6, 2023 · 4 revisions

Once you have finished generating your full asset template, you may have a few small tasks before you are ready to distribute it to your community.

Getting the right configs

Before you distribute, you should populate your project will the game's configs if you haven't already. This involves going to the unpacked/<GameName>/Configs folder and copy & pasting the .ini files into your project's configs.

The configs usually contains information such as any core redirects (when a C++ class or object is renamed and old references must stay in-tact, the engine needs to know how to redirect this reference), axis mappings, action inputs, achievements, collision profiles, etc. This is all information that you and your community should have in order to stay as true to the original game project as possible, but also provides further in-editor context for what someone might be working on.

Sometimes you may find API keys/tokens/encryption keys inside of these config files. Please do the responsible thing (if you can) and contact the developers to make sure they are aware - sometimes it is ok for them to be there (e.g. connecting to EOS or the API that crash reports are sent to), but sometimes it is not. If you can't contact the developers, just delete them from your project's configs and don't say anything.

Some configs may cause your project to not load up, or cause errors in the viewport. You may have to delete some bits and bobs here and there, but try to keep as much as possible.

Distribution

If you have imported the code for any free/paid marketplace plugins instead of sticking with the generated headers, you must be very careful with what you do. It is against UE EULA to distribute plugin code (especially paid ones!) outside of the marketplace/game release/other official means, so it is possible for plugin developers to ask you to take down your distribution. Most won't know/won't care, but it is a very serious consideration.

The simplest way to distribute the assets is to zip up your content/configs folders, distribute via some cloud service, and explain to people that they need to unzip onto the template project. They should then be able to take any existing mods and drop them into the new project... BUT, it is almost certain that they will need references fixed/refreshing! It is not a trivial task to move assets from one project to another. Modders MUST know this!

Distributing DDC files

When a user firsts open your modkit project, they may find they will have tens of thousands of shaders to compile which can take hours for big projects/slow computers. In order to improve user experience, you can generate your own compressed DDC file just before you distribute the assets:

  • That will give you a compressed Compressed.ddp file containing the Derived Data Cache for all of the data used in the project
  • That makes editor startup instant and cooking really fast and makes it so the end users do not have to compile any shaders locally by themselves
  • That the engine can pickup automatically if it is in the directory ProjectName/DerivedDataCache/Compressed.ddp

The command to create it is UE4Editor.exe ProjectName -run=DerivedDataCache -fill -DDC=CreatePak

Known Problems

  • Animation sequences have their track properties generation disabled: this is intentional, as the track data read from the cooked files is slightly funky, enough to cause many issues within the editor
  • BehaviourTrees sometimes generate fine, but in some other cases crash the editor when you try to open them
  • Crashes when trying to do networking in-editor - networking configs not being valid in the config files your copied in from the game. Solution: delete them