Wiki Code Tutorials

[FONT=Comic Sans MS]Entry Level Guide to UE4 C++

This wiki page is devoted to reducing the intensity of the C++ entry point for new coders!



Heheh Rama, you are such an extraordinary good person!
you have helped me out soo much and I bet lots of other people too,
it comes a bit late, but just wanted to finally thank you for all the amasing stuff you have put out there :heart:

Hee hee!

It’s never too late!

Thanks Real!

Lovely to hear from you!



I want to take this opportunity to thank you as well.
Your tutorials help me out a lot of times, I don’t know what I would do without them :smiley:
So… thank you so much for your efforts, dude! :wink:

Thanks Rakantor, great to hear from you!



[FONT=Comic Sans MS]Featured Tutorial

File Management, Create Folders, Delete Files, and More!


[FONT=Comic Sans MS]Rama AI Blows Stuff Up

Everything you see in the video is completely dynamically calculated by me in the C++!

Nothing is pre-scripted!

I do not even tell the AI units what to target when they are spawned!

Everything you see is my own AI system at work

  1. all the pathing is my own pathing system, from scratch

  2. I set up an Alignment system so the AI units know who is friendly and which structures to attack

  3. The AI is told by me to spread out, and keep track of which structures other friendly units are attacking.

This maximizes their usefulness to each other, as they cover maximum building surface area!

Meaning, if a new AI unit is trying to pick a target, my AI will try to pick a target that no other friendly in the area is attacking yet.

  1. Each AI unit is keeping track of all nearby friendly units during runtime, dynamically updating its personal list of friendlies every few moments.

This means each AI unit is aware of all friendlies at all times, as well as all nearby structures

  1. When a structure is destroyed, each AI unit tries to find a new target

  2. Apex destructibles block the AI pathing, so they try to get around using my dynamic physics pathing system.

  3. Each AI unit is consciously deciding how far to position itself away from the target building for ideal melee range.

  4. Each AI unit is deciding when it is close enough to the surface area of its target structure and then stops moving and begins attacking.

  5. As I said, nothing is pre-arranged, as you saw I ran multiple tests! The AI is spreading and and performing to all my specifications listed above!

  6. Yay! Victory!!!



PS: the sparks are created at the precise point in the animation sequence that I specify, using an anim notify.

This anim notify then calls my C++ AI function for doing damage.

So the visual appearance of doing damage is indeed triggering my C++ AI system !

The visual appearance and the C++ are linked together completely!

That is amazing. Any thoughts on posting some code snippets? If not, curious what you’ve put together for your custom pathing. Vector grids, some A* flavor, or just some forward looking system? Curious to hear how it might handle changes in elevation or dead ends.

Haha someone else asked that!

I write all my algorithms myself without any references, ever :slight_smile:

I always create purely from my own logic and imagination, and so everything you see me do is my own original work.

Sooo, my system does not have any algorithm names that I can reference to you, its all my own Rama Code :slight_smile:

The same is true of my code on my wiki tutorials, except where I specifically reference other people!

See my Rama Code in action in this video!


PS: I am still deep in development so I dont want to share any code yet because it is subject to change right now, but the only interface I have with UE4 character movement is right here:

CharacterMovement->Velocity += Mycode Takes Over Here

All the rest of my code base is my own calculations for when and what kind of velocities to apply to the character movement component :slight_smile:

Fortunately, thanks to Epic, just by doing my AI system this way, my AI system is already replicated perfectly , since UE4 replicates CharacterMovement so well!

Well, in that case, I’ll just call that nav system “impressive.” Well done. Your code comment actually lead me to your tutorial on custom character movement component on the wiki. Something that I might give a try, thank you for putting that together!

Hee hee thanks!


Hello Rama.
Is your C++ based GUI/HUD system (as shown in your tutorials) platform independent?
I.e. will they work the same on PC, XBox, PS4, etc?

I need an in-game list/combo box and, like you, may have to implement it myself. I’m currently looking through Slate/Widget resources to see if they can do what I need without having to start from scratch.

Hey Ash22!

Could you not create/is there not already a Combo box widget in Epic’s new UMG?
I thought they had most of the basics covered xD
(Don’t quote me on this, can’t actually remember)

But it’s worth looking into if you haven’t already!

Edit: Just had a look, it appears it does use it! :smiley:


I have it highlighting in the above image (Second down from “Misc”)

Hope this helps!


Hee hee! Thanks for answer Loken!

Nice to hear from you Ash22!


PS: to answer your question yes, my solution is platform independent as it is entirely in UE4 code, which is designed to be platform agnostic.

**New Wiki

Add Handcrafted Custom Math Curves From UE4 Editor to C++**

Here’s a tutorial on how to construct perfect hand crafted curves in the Editor and then bring them into C++!

You can thus create spring curves, dampen curves, bounce curves, any kind of curves you want, and then use them to drive your C++ code!


**New Wiki

Create Custom Console Commands in C++ to be implemented in Blueprints!**

Empower your whole team to make their own console commands in Blueprints!

Hey Rama,

I was just researching about this. I didn’t know how to do this but maybe I can figure it out now. This is great!


Shouldn’t we at least have empty implementations in C++ as a fallback?

Other than that, that’s dead simple, thanks for the guide!

Hee hee! Let me know how it goes Isaac!

Sure! if you want to!

In that case have a UPROPERTY(exec) c++ function that then calls the BP Implementable function!

More info on BP Implementable functions:

Forward Declaration Tutorial Updated

I updated this tutorial to 4.4, now that DependsOn no longer exists :slight_smile:

Added some additional info about #include in .CPP files!