Compile button is missing in an Editor

I have UE 4.19.2 and VS Enterprise 2017 (v15.8.5). An editor has successfully created VS project and all works fine but there is no compile button in the editor for some reasons. And I cannot open c++ file from editor directly in VS. Looks like an editor doesn’t “see” my VS. Can I somehow fix it?

Do compilation works at all outside of editor (compilation of project with editor turned off)?

In my experience (based on 4.16) The compile button won’t show up in the Unreal Editor in a pure Blueprint project. It will show up if you add at least one C++ class to your blueprint project or start the project as a C++ project though.

1 Like

Did you never see a compile button? Or did you see it once and then it disappeared?
My compile button disappeared because I had a plugin with linking errors to external dlls.
See comment from Matthew J here:

Yeah, it works fine. Even hot reload in a UE editor probably works (at least there is no need to reopen an editor after compilation in VS).

It is C++ project and I already have a bunch of classes. They are even working properly. Just no compile button in the editor and no possibility to open c++ file via a UE editor.

Thanks for a link. I have looked into the output on start but there are no errors on load. I am not sure I ever saw compile button on this PC. However, I have compile button with the same project and same editor version on another PC (but another VS version). Also, I don’t have any plugins and my code is working when I am pressing “play” button.

In my case, I mistakenly removed this line in my main game module code. Without this override, you will unable to see the compile button.

virtual bool IsGameModule() const override
{
	return true;
}

Sometimes I can’t see the compile button simply because my window is not wide enough. Is it still invisible if you stretch your editor window really wide?

Thanks, that solved it

Thanks,It’s help me!

What happened on my end, was that the project was started from an asset. And did not contain the module information. So I created the following files.

  • Source{ProjectName}{ProjectName}.Build.cs
  • Source{ProjectName}.target.cs
  • Source{ProjectName}{ProjectName}.cpp
  • Source{ProjectName}{ProjectName}.h

And finally, the step I missed. Is that you have to open up your .uproject file and add the Module to the array of loaded modules, as such:

{
	"FileVersion": 3,
	"EngineAssociation": "{E7599B76-4C9E-2BB5-09DC-D6AE294CCC5D}",
	"Category": "",
	"Description": "",
	"Modules": [
		{
			"Name": "{ProjectName}"
			"Type": "Runtime",
			"LoadingPhase": "Default",
			"AdditionalDependencies": [
				"Engine",
				"UMG",
				"CoreUObject"
			]
		}
	],
	"Plugins": [
...