Bug report
- Project AirSim Version/#commit: main branch, cloned July 2026
- autopilot version: N/A
- OS Version: Windows 10.0.26200.8457
What's the issue you encountered?
Running unreal\Blocks\blocks_genprojfiles_vscode.bat on a clean checkout with UE 5.7 fails at the final Python step with a FileNotFoundError because .vscode\launch.json is never created.
Root cause: UE 5.7 changed VSCodeProjectFileGenerator.cs (Engine\Source\Programs\UnrealBuildTool\ProjectFiles\VisualStudioCode\VSCodeProjectFileGenerator.cs) so that WriteTasks() and WriteLaunch() now write directly into the "tasks" and "launch" keys of the generated .code-workspace file, instead of writing standalone .vscode\tasks.json / .vscode\launch.json files (the behavior in UE 5.2 and earlier). Relevant snippet from UE 5.7's generator:
WorkspaceFile.BeginObject("tasks");
WriteTasks(WorkspaceFile, ProjectData);
WorkspaceFile.EndObject();
WorkspaceFile.BeginObject("launch");
WriteLaunch(WorkspaceFile, ProjectData, Logger);
WorkspaceFile.EndObject();
...
WorkspaceFile.Write(FileReference.Combine(PrimaryProjectPath, WorkspaceName + ".code-workspace"));
Since blocks_genprojfiles_vscode.bat's for /f rename loop and tools\update_blocks_vscode.py both assume a standalone .vscode\launch.json exists (matching UE ≤5.2 behavior), both fail on a clean UE 5.7 setup — even though the repo's own docs list UE 5.7 as officially supported.
Settings
N/A
How can the issue be reproduced?
- Set
UE_ROOT to a UE 5.7 install (5.7.4 in my case)
- Clone repo, run
unreal\Blocks\blocks_genprojfiles_vscode.bat (no sim libs need to be built first — reproduces either way)
- UBT reports
Result: Succeeded and generates Blocks.code-workspace, c_cpp_properties.json, and compileCommands_*.json inside .vscode\
.vscode\launch.json is never created
- Script fails with the error below
Include full error message in text form
The system cannot find the file .vscode\launch.json.
The system cannot find the file specified.
Traceback (most recent call last):
File "...\unreal\Blocks....\tools\update_blocks_vscode.py", line 87, in
main()
File "...\unreal\Blocks....\tools\update_blocks_vscode.py", line 82, in main
update_launch_json(vscode_dir)
File "...\unreal\Blocks....\tools\update_blocks_vscode.py", line 43, in update_launch_json
launch = json.loads(launch_path.read_text(encoding="utf-8"))
FileNotFoundError: [Errno 2] No such file or directory: '...\unreal\Blocks.vscode\launch.json'
Suggested fix
Before the existing for /f rename loop in blocks_genprojfiles_vscode.bat, extract the "launch" section out of the generated .code-workspace file into a standalone .vscode\launch.json (written without a UTF-8 BOM, since Python's default utf-8 decoder throws on one):
if not exist .vscode mkdir .vscode
powershell -NoProfile -Command "$ws = Get-Content -Raw '.\Blocks.code-workspace' | ConvertFrom-Json; $json = $ws.launch | ConvertTo-Json -Depth 10; [System.IO.File]::WriteAllText((Join-Path (Get-Location) '.vscode\launch.json'), $json, [System.Text.UTF8Encoding]::new($false))"
Additionally, tools\update_blocks_vscode.py line 43 should decode with utf-8-sig instead of utf-8, as a defensive measure against BOM-prefixed JSON from any source:
launch = json.loads(launch_path.read_text(encoding="utf-8-sig"))
Bug report
What's the issue you encountered?
Running
unreal\Blocks\blocks_genprojfiles_vscode.baton a clean checkout with UE 5.7 fails at the final Python step with aFileNotFoundErrorbecause.vscode\launch.jsonis never created.Root cause: UE 5.7 changed
VSCodeProjectFileGenerator.cs(Engine\Source\Programs\UnrealBuildTool\ProjectFiles\VisualStudioCode\VSCodeProjectFileGenerator.cs) so thatWriteTasks()andWriteLaunch()now write directly into the"tasks"and"launch"keys of the generated.code-workspacefile, instead of writing standalone.vscode\tasks.json/.vscode\launch.jsonfiles (the behavior in UE 5.2 and earlier). Relevant snippet from UE 5.7's generator:WorkspaceFile.BeginObject("tasks");
WriteTasks(WorkspaceFile, ProjectData);
WorkspaceFile.EndObject();
WorkspaceFile.BeginObject("launch");
WriteLaunch(WorkspaceFile, ProjectData, Logger);
WorkspaceFile.EndObject();
...
WorkspaceFile.Write(FileReference.Combine(PrimaryProjectPath, WorkspaceName + ".code-workspace"));
Since
blocks_genprojfiles_vscode.bat'sfor /frename loop andtools\update_blocks_vscode.pyboth assume a standalone.vscode\launch.jsonexists (matching UE ≤5.2 behavior), both fail on a clean UE 5.7 setup — even though the repo's own docs list UE 5.7 as officially supported.Settings
N/A
How can the issue be reproduced?
UE_ROOTto a UE 5.7 install (5.7.4 in my case)unreal\Blocks\blocks_genprojfiles_vscode.bat(no sim libs need to be built first — reproduces either way)Result: Succeededand generatesBlocks.code-workspace,c_cpp_properties.json, andcompileCommands_*.jsoninside.vscode\.vscode\launch.jsonis never createdInclude full error message in text form
The system cannot find the file .vscode\launch.json.
The system cannot find the file specified.
Traceback (most recent call last):
File "...\unreal\Blocks....\tools\update_blocks_vscode.py", line 87, in
main()
File "...\unreal\Blocks....\tools\update_blocks_vscode.py", line 82, in main
update_launch_json(vscode_dir)
File "...\unreal\Blocks....\tools\update_blocks_vscode.py", line 43, in update_launch_json
launch = json.loads(launch_path.read_text(encoding="utf-8"))
FileNotFoundError: [Errno 2] No such file or directory: '...\unreal\Blocks.vscode\launch.json'
Suggested fix
Before the existing
for /frename loop inblocks_genprojfiles_vscode.bat, extract the"launch"section out of the generated.code-workspacefile into a standalone.vscode\launch.json(written without a UTF-8 BOM, since Python's defaultutf-8decoder throws on one):Additionally,
tools\update_blocks_vscode.pyline 43 should decode withutf-8-siginstead ofutf-8, as a defensive measure against BOM-prefixed JSON from any source: