Difference between source version and regular?

I may have misunderstood something, it was my understanding that the regular version was “header only” and the source version was “full source”… I thought that meant only .h file access, but I noticed you could still “Add Code To Project” in the regular engine version?

Could someone please explain to me the exact differences of the source and regular version? I’ve seen people say “You can see everything that happens in code”… but I’m not sure precisely what that means. What would the limitations be on the regular version be?

My laptop is having trouble running the source version, but regular version runs smooth. So I may be stuck with the regular on the laptop and am wondering how I would be limited on that system.

The full source version from allows you to debug into the engine code, as deep as you need to. The regular “Downloaded from the Unreal Launcher” does not, you can still create C++ projects with the regular version, but you only have the headers from the engine, meaning if you wanted to see what was happening say in the rendering core, you would not be able to unless you had the full source version.

At least for now, I don’t care too much about the inner workings of the engine, I primarily would only want to edit things like character controllers, etc. Would there be any restrictions on working with character controllers in the regular version?

I don’t quite understand how to edit character controllers completely in code yet, but I know I can inheret from the ACharacter class, but if I wanted to edit the existing code (for example the jump function is my first target) would the regular version restrict me the only being able to replace it? It seems when I try adding a class in the regular version I only get the classes I made appearing in visual studio… would I still be able to view the existing jump code with regular version?

I would suggest you take a look at some tutorials to get a better understanding of the Character Controller stuff. There are plenty of tutorials here: https://wiki.unrealengine.com/Category:Tutorials and take a look at this one which is to do with making your own Character movement component: https://wiki.unrealengine.com/Custom_Character_Movement_Component

Thanks for the links. I browsed those quickly but I will look in to them in depth when I get home.

So it doesn’t matter really for this subject if I use source or regular versions ? Would I still be able to see the existing c++ character code in regular version?

You don’t need the source to add code to your game. Your game is actually compiled into a DLL that is loaded by the engine, so you can create classes that inherit from (public) classes from the engine. This is what the “add code to your project” button does. The engine documentation also contains the source code for all public functions, so you can check how something is implemented without downloading the source.

The full source is useful if you want to get the latest updates from , modify rendering code or try to fix some showstopper bug without having to wait for the next release. For gameplay, it’s often not necessary.

Thanks for the response.

So that confirms that if I wanted to edit the code behind the -current- jump blueprint/function (meaning not overload the function with a new one, but actually access and tweak the original) I could do that with either version of the engine?

No, you cannot modify existing functions without access to the source code, since their implementation is already compiled into the binary version. Without the source the only way to change how a function behaves is to inherit from its owner class and override it (if it’s virtual). A different alternative would be to actually “fork” the class you want to modify: create a copy of the class with a different name and add it to your project. You still need access to the source to copy the original class implementation at first, but you can use your modified class in projects that are running against the binary version without having to recompile the engine itself every time you make modifications.

I did this with the USplineComponent class because I need splines in my project but the standard code didn’t fulfill all my needs. I prefer duplicating classes or overriding functions to actually modifying the engine because it makes it much easier to upgrade to new releases.

Thank you very much. This is the response I was looking for!

So I will look in to the source primarily to access the function I am looking for, but I will override the class to contain my new functionality.

Thanks again!