Hot reload not working with version controlled dlls (Perforce)

Do I use a p4.ignore file to keep the 001,002 versions from committing?

That would be a good way. Personally I just made sure I never added those files to the repo. This allows me to checkout files en-mass, revert unchanged files and then commit just the modified binaries (if any)

Is it better to turn off hot reload then?

No. It’s still a good tool for faster iteration on bug fixes, but you should treat it as a ‘temporary’ build. Always close down Unreal and build in VS before you actually commit the changes. If the VS build fails then this is a problem you need to fix.

I would create a c++ plugin in a ue4 project. Choose what type . And then add the content and code. Once done drag and down the plugin folder into the new project for use. Is there a different way?

Right now I mostly install my plugins within my code base. It’s not necessarily the best way but it allows for faster iteration for me and we’re a single project studio at the minute so it makes sense. Each plugin is within the plugin folder as you’d expect and has all the build.cs files etc. This means that I can edit the code directly in the same VS project as the rest of my game code. Everything is still seperate (i.e. I treat a plugin as a plugin and don’t confuse dependencies), it’s just that this is more convinient for me. When I build, if a plugin has changed then the binary will be updated too, so I just need to check out that binary and commit the changes. Ocasionally I’ll have to rebuild the full solution.

As if the ue4 never sees updated code, even though the all the scripts are there with the changes.

That sounds like your binaries aren’t being built or committed. If you’re familair with the Unity engine then you might know that you can just change a C# script and Unity will just accept and build that on startup. In UE4 that’s not the case, you need to manually build to compile your changes and it’s the resulting binary files which the engine looks for, not the cpp/h files.