I’ve been searching around and there’s nowhere to learn about plugins, just creating them or just no explanation on what does what. If anyone finds a good place or is willing to explain plugins please do tell. I’m new to c++.
First of all you need to understand that if you do anything C++ in UE4 you practicly extending enigne code, you making module that will be added to other 100 inside the engine and tha module is same capable as any other module in enigne, andf you can make more then just 1 module (but game usually need just one).
So plugins are no different then C++ game projects, you got extra C++ module that adding to the engine, only diffrence is C++ game project have module tied to single project, while plug in can be enabled and module loaded in any project. So fi you know about C++ in UE4 you already know a lot about plugin you simply not aware of it.
I recommend you to start with plugin creation wizard, which sould in in plugin list ( i think it seperate plugin that oyu need to enable too), this will create plugin insidey yur poject, it also have nice templates to start with. Now here some things that you need to know and you may missed making C++ game project
-Module have start up and shot down code in module class, in C++ game project it usually replaced with single macro code so people usually don’t notice that. That code technically will also be your plugin start up and shut down code, you register things there and unregister and clean on shutdown (if you dont do that and disable a plugin you can get crashes).
-You be interacting with editor API most likely (which btw oyu can do from C++ game project too!), those APIs are available only editor not in game runtime, that why if oyu making plugin that effects gameplay to have 2 modules for runtime and editor, somethings you typically don’t do with C++ game project. Module need to be made manually, copy folder folder inside Source in plugin with diffrent name (Editor surfix for example) got to cs files and module class cpp and h files and also add Editor in name inside there, in cs file you will need to mark module as Editor. Inside uplugin you need to add module with Type being Editor. Now Editor module is also nothings special, Editor type only informs engine that this module is for editor use only and should not be build in to the game. you can also interact with editor in runtime module but you need to filter such code with #if WITH_EDITOR #endif
.
So now the biggert problem is editor APIs is very low documented, UE4 is super huge and Epic struggles to document even runtime features of the engine, so for them editor APIs are low priority, they also assume that if you diving in to plugins you already have skills to figure thigns out yourself. So you on your own here, but you can google tons of tutorials on specific topics.
I also recommend oyu to learn Slate as it a UI system of UE4 that also powers UMG but initially was made to be editor UI system. Any editor UI extention will require for oyu to know about Slate