Unreal Game Sync always wanting to build editor when using precompiled binaries

What would be the cause of always getting this message when having the Use Precompiled Binaries option checked in UGS?

“The editor needs to be built before you can run it. Build it now?”

I see these messages in the log:

p4> p4.exe -p "xxx.xx.xxx.xx:1666" -u "ray" -c "Ray_D9" -s -zprog=UGS -zversion=1.0.0.0 -Q utf8 -p "xxx.xx.xxx.xx:1666" -u "ray" -c "Ray_D9" -s -zprog=UGS -zversion=1.0.0.0 -Q utf8 sync --parallel=0 //Ray_D9/UnrealEngine/Vocari 5.0/Build/Receipts/...#0
p4>   warning: //Ray_D9/UnrealEngine/Vocari - no such file(s).
p4>   error: Path 'c:\Windows\System32\5.0/Build/Receipts/...' is not under client's root 'C:\US\Vocari'.
p4>   exit: 1
p4> p4.exe -p "xxx.xx.xxx.xx:1666" -u "ray" -c "Ray_D9" -s -zprog=UGS -zversion=1.0.0.0 -Q utf8   -ztag -x "C:\Users\Ray\AppData\Local\Temp\tmpABFD.tmp" fstat
//Ray_D9/UnrealEngine/* - file(s) not opened on this client.
p4> p4.exe -p "xxx.xx.xxx.xx:1666" -u "ray" -c "Ray_D9" -s -zprog=UGS -zversion=1.0.0.0 -Q utf8   -ztag -x "C:\Users\Ray\AppData\Local\Temp\tmpACE8.tmp" fstat
//Ray_D9/UnrealEngine/Engine/... - file(s) not opened on this client.
p4> p4.exe -p "xxx.xx.xxx.xx:1666" -u "ray" -c "Ray_D9" -s -zprog=UGS -zversion=1.0.0.0 -Q utf8   -ztag -x "C:\Users\Ray\AppData\Local\Temp\tmpADD4.tmp" fstat
//Ray_D9/UnrealEngine/Vocari 5.0/... - file(s) not opened on this client.

I noticed that binaries get cleaned after that in the logs, and extracted from the PCB, but somehow they’re always being seen as out of date by UGS, but I don’t know how it determines that.

I see that a number of files are skipped after the “Removing Editor binaries…” message:

Skipping C:\US\Vocari\UnrealEngine\Engine\Binaries\DotNET\AutomationTool\AutomationTool.deps.json due to modified timestamp
Skipping C:\US\Vocari\UnrealEngine\Engine\Binaries\DotNET\AutomationTool\AutomationTool.dll due to modified timestamp
Skipping C:\US\Vocari\UnrealEngine\Engine\Binaries\DotNET\AutomationTool\AutomationTool.dll.config due to modified timestamp
Skipping C:\US\Vocari\UnrealEngine\Engine\Binaries\DotNET\AutomationTool\AutomationTool.exe due to modified timestamp
Skipping C:\US\Vocari\UnrealEngine\Engine\Binaries\DotNET\AutomationTool\AutomationTool.pdb due to modified length
Skipping C:\US\Vocari\UnrealEngine\Engine\Binaries\DotNET\AutomationTool\AutomationTool.runtimeconfig.dev.json due to modified length
Skipping C:\US\Vocari\UnrealEngine\Engine\Binaries\DotNET\AutomationTool\AutomationTool.runtimeconfig.json due to modified timestamp

I also noticed that even though UGS is syncing to the latest CL and using the PCB’s, it doesn’t always seem to grab the latest from the PCB stream, which seems possibly related to needing to build the editor, but I still get the issue if I sync manually in p4v to the PCB latest. Is there some setup where that stream will get recognized properly by UGS and update to the latest from it? The PCB commits aren’t something that show up in the changelist window, but I was under the impression that wasn’t how it worked and would still be synced to because it’s defined in the UnrealGameSync.ini.

We’re using the unmodified Engine/Build/Graph/Examples/BuildEditorAndTools.xml script for the build/submit.

This was an issue caused by the perforce stream not having access to the project’s editor.target.cs file.

@rayunforsaken I’m hitting this issue too, could you elaborate on what needed access to the project’s editor.target.cs file or did you mean the editor.target file that sits in the binaries folder?

For my case the file wasn’t being synced at all, so it just didn’t exist on the drive. If you look in the UGS code, WorkspaceControl.cs, you’ll see LaunchEditor() calls GetEditorExePath, then GetEditorReceiptPaths, which gets the LaunchFileName. In my case, that would never get set, because the name is retrieved from that editor.target.cs.

1 Like