After extending a Blueprint off my C++ Player Controller class, none of the other clients in my perforce server “see” the new changes (their games are still using the C++ Player Controller in their Game Mode instead of the Blueprint one). I run with P4V and UE4 Perforce integration so I know all of the appropriate files are checked out.
The Blueprint was simply to utilize UserWidgets for a test “main menu” which works brilliantly on my PC. I extended the C++ Player Controller class with a Blueprint, compiled it with no errors and saved it. I then went to the C++ Game Mode class I wrote and set the new PlayerController class to the new Player Controller Blueprint as follows:
.c // MyGameMode.cpp static ConstructorHelpers::FClassFinder<APlayerController> PlayerControllerClassFinder(TEXT("/Game/GameLogicBP/MyPlayerController_BP")); PlayerControllerClass = PlayerControllerClassFinder.Class;
After that, closed editor, recompiled (Rebuild in VS), no compile errors, re-launch editor and looked at the Game Mode’s Player Controller class which is now happily set to MyPlayerController_BP and the main menu is summoned when the appropriate key is pressed in the game… on my PC only.
After that I submitted my changes (including compiled binaries, the new BP script for the Player Controller, the DefaultInput.ini for the key binding to summon the menu, etc.) I had two team members pull down the latest build and was surprised to discover their menu key wouldn’t summon the main menu in the game. Upon further inspection I discovered their Editor’s World->Game Mode didn’t have the MyPlayerController_BP class set for the Player Controller setting but the old C++ PlayerController class. I’m baffled as to why this is and any suggestions are welcome. I thought it was just a simple case of checking out the binaries, recompiling again and submitting but after several attempts at that (and watching the file version numbers increment in Perforce): No joy.
After each of these steps I had the team pull the latest build after I submitted so I’ll omit saying that after each step. Also I should note before submitting I always do a Rebuild in VS to clean the junk temp files so they don’t make their way into the repo (UE4Editor-YourGame-XXXX.pdb, dll, etc.)
Below is a list of things I’ve tried:
Check out binaries, Rebuild in Visual Studio, resubmit (several times, each time the version number would go up in Perforce).
Check out binaries, Clean then Rebuild in Visual Studio, resubmit (again several tries).
Reboot my PC and try the above again.
Reboot the Perforce server and try the above again.
Open MyPlayerController_BP, delete a node and re-add it, recompile; Trying to trigger a BP recompile.
Remove the project from another team members’ workspace, re-pull the complete build from the server.
Create a new test Game Mode C++ class (which was basically a copy-paste of my original Game Mode C++ class with a different name), Rebuild, resubmit and it doesn’t even show up in the dropdown for Game Mode on the other clients!!! The source files are there though which is strange.
Again I am at a complete loss so any suggestions would be welcome.