[v42.00] Enabling Beta Access "UEFN MCP Toolsets" prevents the project's Content/Python/init_unreal.py from running

Summary

Enabling Project Settings → Beta Access → “UEFN MCP Toolsets” prevents the project’s own Content/Python/init_unreal.py from running at editor startup. Any Python tooling that auto-loads from the project silently fails to load. Nothing raises, nothing is logged, and the script never appears in the start-up script list.

Cause appears to be startup ordering: the Toolsets plugins call IPythonScriptPlugin::ForceEnablePythonAtRuntime during editor init, before UEFN mounts the project plugin, so the project’s Content/Python is not in the start-up script scan. With the flag disabled the ordering is reversed and the script runs normally.

Please select what you are reporting on:

Unreal Editor for Fortnite

What Type of Bug are you experiencing?

UI/Tools

Steps to Reproduce

  1. Create or open a UEFN project containing Content/Python/init_unreal.py that logs a line on execution (e.g. unreal.log(“init_unreal ran”)).
  2. Launch UEFN with Project Settings → Beta Access → “UEFN MCP Toolsets” DISABLED. Observe the log line, and “Running start-up script [ProjectPath]/Content/Python/init_unreal.py” in the Output Log.
  3. Enable Project Settings → Beta Access → “UEFN MCP Toolsets”.
  4. Fully restart UEFN and reopen the same project.
  5. Search the Output Log for “Running start-up script”.

Expected Result

The project’s Content/Python/init_unreal.py runs at startup, exactly as it does with the flag disabled. If it cannot be run, an error or warning is logged explaining why.

Observed Result

The project’s Content/Python/init_unreal.py does not run and does not appear anywhere in the log. Only Epic’s own plugin start-up scripts are executed. No error, no warning, no diagnostic of any kind. Python tooling that depends on it is simply absent, with nothing pointing at the setting as the cause.

Platform(s)

Windows 11 — UEFN 42.00, Engine 6.0.0-56878558+++Fortnite+Release-42.00

Additional Notes

Confirmed by diffing editor logs across two boots of the same project on the same machine, minutes apart, with only this setting changed. Project name and user path redacted as [ProjectPath] / [ProjectName].

FLAG DISABLED - project loads first, Python second, project script runs:

[21.41.37:885][395] LogValkyrie: OpenProject_LoadProjectPlugins - Begin (1 projects)
[21.41.38:019][396] LogValkyrie: OpenProject_LoadProjectPlugins - Done
[21.41.49:532][396] LogPython: Warning: Python enabled via IPythonScriptPlugin::ForceEnablePythonAtRuntime:
[21.41.50:925][396] LogPython: Display: Running start-up script [ProjectPath]/Content/Python/init_unreal.py

FLAG ENABLED - Python first, project second, project script never runs:

[21.48.14:012][178] LogPython: Warning: Python enabled via IPythonScriptPlugin::ForceEnablePythonAtRuntime:
[21.48.15:342][178] LogPython: Display: Running start-up script …/Engine/Plugins/Experimental/Toolsets/EditorToolset/Content/Python/init_unreal.py
[21.48.15:936][178] LogPython: Display: Running start-up script …/Engine/Plugins/Experimental/ToolsetRegistry/Content/Python/init_unreal.py
[21.48.16:527][275] LogValkyrie: OpenProject_LoadProjectPlugins - Begin (1 projects)
[21.48.16:539][275] LogPackageName: FPackageName: Mount point added: [ProjectPath]/Content/ mounted to /[ProjectName]/
[21.48.16:681][276] LogValkyrie: OpenProject_LoadProjectPlugins - Done

With the flag enabled, the project plugin mounts roughly 97 frames and 2.5 seconds after Python has already initialised and finished scanning for start-up scripts.

WORKAROUND
Invoke the entry point manually from the Python console once per session, or leave the flag disabled.

ALREADY RULED OUT

  • PythonScriptPluginSettings is not exposed to Python on this build, so an explicit StartupScripts entry cannot be registered from script.
  • UEFN projects have no Config/ directory in which to add one via ini.
  • The project is a valid plugin with Content/Python/ in the standard location, and its init_unreal.py is found and executed normally with the flag disabled - so this is ordering, not path resolution.