When you package a project via the editor, it updates the ProjectPackagingSettings to set the StagingDirectory to the specific one chosen by the user. However, it saves this path as an absolute path which means it can get checked into p4 with a path that only works for the last user who packaged. Packaging on it's own is not enough to make it write out the modified settings, but if you change any relevant setting then package, it writes out the bad staging directory path.

This bug has been around for years, and it affects licensees by causing their default game.ini to get constantly checked out and modified without actually saving the path usefully. I think there are 3 viable fixes: change StagingDirectory to save as a relative path so it will default to correct for every user on a project, move StagingDirectory to per-user settings, or just turn off saving entirely and let the windows last selected directory logic handle it. The dirtying behavior of the settings may also need to be updated

Steps to Reproduce
  1. Load any existing project like QAGame that is checked into p4
  2. Open project settings, go to Project -> Packaging, and change something like adding a new map to cook, this will check out defaultgame.ini for you (if not, do it manually with button)
  3. Go to Platforms->Windows->Package Project and package for windows, this will ask you to choose where to package to
  4. Look at the defaultengine.ini that was saved out, note there will be a line like StagingDirectory=(Path="D:/UE5/Samples/Games/Lyra/PackagedDev") which saves the absolute path on disk it was packaged to

Same issue exists on UE4, but packaging option is in a different place in the menu

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-117656 in the post.

Login to Vote

ComponentUE - Foundation - Core - Cooker
Affects Versions4.275.0
Target Fix5.3
Fix Commit24811601
CreatedJun 8, 2021
ResolvedJun 27, 2023
UpdatedAug 1, 2023