# \[Question\] Custom Blueprint Nodes

**URL:** <https://forums.unrealengine.com/t/question-custom-blueprint-nodes/276905>\
**Category:** Blueprint\
**Tags:** unreal-engine, nodes, Blueprint, question\
**Created:** [March 11, 2014, 4:50am UTC](https://forums.unrealengine.com/t/question-custom-blueprint-nodes/276905 "2014-03-11T04:50:53Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![ue4-archive](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@ue4-archive](https://forums.unrealengine.com/u/ue4-archive)\
**Post date:** [March 11, 2014, 4:50am UTC](https://forums.unrealengine.com/t/question-custom-blueprint-nodes/276905/1 "2014-03-11T04:50:53Z")

</div>

Is it possible to create custom Blueprint nodes like we used to create custom Kismet nodes with UnrealScript?

---

<div class="post-metadata">

**Author:** ![ue4-archive](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@ue4-archive](https://forums.unrealengine.com/u/ue4-archive)\
**Post date:** [March 11, 2014, 4:50am UTC](https://forums.unrealengine.com/t/question-custom-blueprint-nodes/276905/2 "2014-03-11T04:50:53Z")

</div>

I am eagerly awaiting the answer to this, I could make a lot of nodes for the community this way, and I had a lot of fun making custom kismet nodes in UE3 🙂

---

<div class="post-metadata">

**Author:** ![ue4-archive](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@ue4-archive](https://forums.unrealengine.com/u/ue4-archive)\
**Post date:** [March 11, 2014, 4:50am UTC](https://forums.unrealengine.com/t/question-custom-blueprint-nodes/276905/3 "2014-03-11T04:50:53Z")

</div>

Blueprint Nodes are just functions or variables in a class. While it is not required to head a function with the UFUNCTION macro, you have to do it in order for the functions to appear as Blueprint Nodes.

If you download my SSD project from the FTP workspace, you will find examples of some in the code base. Take a look at SSDWeapon.h.

```
/**
 * Event which handles firing the weapon.
 */
UFUNCTION(BlueprintImplementableEvent)
virtual void ReceiveFire(uint8 FireModeNum, const FVector& FireLocation, const FRotator& FireRotation);

```

This one creates an implementable event for Blueprints which allow C++ to fire the event but for the actual implementation to be done within Blueprint.

There are other parameters which you can use within UFUNCTION macro to make it appear as a different Blueprint Node. Check the headers for the other ones.

You can expose C++ class variables using the UPROPERTY macro.

---

<div class="post-metadata">

**Author:** ![ue4-archive](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@ue4-archive](https://forums.unrealengine.com/u/ue4-archive)\
**Post date:** [March 11, 2014, 4:50am UTC](https://forums.unrealengine.com/t/question-custom-blueprint-nodes/276905/4 "2014-03-11T04:50:54Z")

</div>

**Thanks for the awesome answer James Tan!**

I guess a furtherance of my own inquiry is:

In UE3 you could make kismet nodes that could easily be accessed any time anywhere.

To maximize my ability to provide blueprints nodes to the community where the code is created in the c++, I would obviously be making blueprintcallable functions with Editanywhere blueprintreadwrite properties.

but

The person who doesnt know c++ that well who wants to use my blueprint node code **cannot just copy/paste as could be done with kismet nodes,** and then use my nodes in any class anywhere they want.

Currently the person wanting to use my code would have to add my code to their custom class where they want to call the code from, or set up a bunch of blueprint interfaces to access my code from multiple different blueprint classes.

* * *

**Is there anyway way or any place that we Rocket Beta users can put c++ blueprintcallable functions so that they can easily be accessed from many different classes?**

* * *

**I’m looking for a practically plug-and-play method** for people to utilize new c+±written blueprintcallable functions without having to set up a lot of complicated super-structures.

New Kismet nodes were basically plug-and-play, people could copy the code with 0 unrealscript knowledge and just compile and be good to go 🙂

**Thank you Epic Devs for UE4!**

---

<div class="post-metadata">

**Author:** ![ue4-archive](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@ue4-archive](https://forums.unrealengine.com/u/ue4-archive)\
**Post date:** [March 11, 2014, 4:50am UTC](https://forums.unrealengine.com/t/question-custom-blueprint-nodes/276905/5 "2014-03-11T04:50:55Z")

</div>

If you want to make something that’s redistributable to others, your best bet is to make your collection of BlueprintCallable functions into a UBlueprintFunctionLibrary. This is a static class that’s contained in a simple header and implementation, that is accessible to all blueprints. To make one, simply make a class derived from UBlueprintFunctionLibrary. Then, make your member functions static, like so:

```
UFUNCTION(BlueprintCallable, Category="MyCategory")
static bool MyFancyFunction();

```

That way, you can give people that header and that C++ file, and that’s all that they have to do to use your library of functions.

Hope that helps!

---

<div class="post-metadata">

**Author:** ![ue4-archive](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@ue4-archive](https://forums.unrealengine.com/u/ue4-archive)\
**Post date:** [March 11, 2014, 4:50am UTC](https://forums.unrealengine.com/t/question-custom-blueprint-nodes/276905/6 "2014-03-11T04:50:55Z")

</div>

Thanks for the awesome answer Nick!

"To make one, simply make a class derived from UBlueprintFunctionLibrary. "

this was the piece of info that I was most looking for!

🙂

**I am loving UE4!**

🙂

---

<div class="post-metadata">

**Author:** ![ue4-archive](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@ue4-archive](https://forums.unrealengine.com/u/ue4-archive)\
**Post date:** [March 11, 2014, 4:50am UTC](https://forums.unrealengine.com/t/question-custom-blueprint-nodes/276905/7 "2014-03-11T04:50:56Z")

</div>

Thanks, glad you’re loving it! 🙂

---

<div class="post-metadata">

**Author:** ![ue4-archive](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@ue4-archive](https://forums.unrealengine.com/u/ue4-archive)\
**Post date:** [March 11, 2014, 4:50am UTC](https://forums.unrealengine.com/t/question-custom-blueprint-nodes/276905/8 "2014-03-11T04:50:56Z")

</div>

I’ve posted a tutorial with complete code samples for ppl based on your explanation to me 🙂

**Make custom BP nodes in an easily share-able extendable format is super easy!**

Thanks Nick!

[http://forums.epicgames.com/threads/972861-TUTORIALS-C-for-UE4-gt-gt-New-Equivalent-of-PostInitComp-amp-Tick-for-Anim-Blueprints?p=31682322#post31682322](http://forums.epicgames.com/threads/972861-TUTORIALS-C-for-UE4-gt-gt-New-Equivalent-of-PostInitComp-amp-Tick-for-Anim-Blueprints?p=31682322#post31682322)

---

<div class="post-metadata">

**Author:** ![BrUnO\_XaVIeR](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/bruno_xavier/32/1110230_2.png) [@BrUnO\_XaVIeR](https://forums.unrealengine.com/u/BrUnO_XaVIeR)\
**Post date:** [May 30, 2014, 2:08pm UTC](https://forums.unrealengine.com/t/question-custom-blueprint-nodes/276905/9 "2014-05-30T14:08:53Z")

</div>

> Blockquote [UDK Forums Update - UDK Content Creation and Design - Epic Developer Community Forums](http://forums.epicgames.com/threads/972861-TUTORIALS-C-for-UE4-gt-gt-New-Equivalent-of-PostInitComp-amp-Tick-for-Anim-Blueprints?p=31682322#post31682322)

I can’t access the given forum link. Could you post on the new UE4 forums, please?

---

<div class="post-metadata">

**Author:** ![Shadowriver](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Shadowriver](https://forums.unrealengine.com/u/Shadowriver)\
**Post date:** [May 30, 2014, 2:23pm UTC](https://forums.unrealengine.com/t/question-custom-blueprint-nodes/276905/10 "2014-05-30T14:23:34Z")

</div>

It’s from the UE4 beta, there no access to those threads

---

<div class="post-metadata">

**Author:** ![BrUnO\_XaVIeR](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/bruno_xavier/32/1110230_2.png) [@BrUnO\_XaVIeR](https://forums.unrealengine.com/u/BrUnO_XaVIeR)\
**Post date:** [May 30, 2014, 5:23pm UTC](https://forums.unrealengine.com/t/question-custom-blueprint-nodes/276905/11 "2014-05-30T17:23:29Z")

</div>

Don’t know if this is his guide, but I’ve found it here:

> **[A new, community-hosted Unreal Engine Wiki](https://forums.unrealengine.com/t/a-new-community-hosted-unreal-engine-wiki/141494)**
>
> After over a year in maintenance mode, the official Unreal Engine Wiki is now permanently offline. These resources now live on a new community-run Unreal Engine Community Wiki — ue4community.wiki! You will be able to find content from the official...

---

<div class="post-metadata">

**Author:** ![Tim\_Hobson](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Tim\_Hobson](https://forums.unrealengine.com/u/Tim_Hobson)\
**Post date:** [May 30, 2014, 9:11pm UTC](https://forums.unrealengine.com/t/question-custom-blueprint-nodes/276905/12 "2014-05-30T21:11:49Z")

</div>

Hi guys,

I’m going to close this thread, because as Shadow River pointed out, it’s from our UE4 Beta. If you need you can always post a new question via the AnswerHub.

Thank you!  
Tim
