# (39) 's Extra Blueprint Nodes for You as a Plugin, No C++ Required!

**URL:** <https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448>\
**Category:** Blueprint\
**Tags:** unreal-engine\
**Created:** [April 29, 2014, 1:27am UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448 "2014-04-29T01:27:59Z")\
**Posts on this page:** 20\
**Page:** 12

<div class="post-metadata">

**Author:** ![anonymous\_user\_298682701](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_298682701](https://forums.unrealengine.com/u/anonymous_user_298682701)\
**Post date:** [August 25, 2014, 9:16pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/225 "2014-08-25T21:16:10Z")

</div>

Booooom! I got it working.  
I only use 2 plugins which are VAOcean and 's Victory plugin, both of which give me the error saying they’re not compatible with the current engine version.

Here’s what I did to get them to work.

- Copied the plugins to the engine/plugins folder.
- Clicked “GenerateProjectFiles.bat” so they would be recognised in Visual Studio.
- Opened “UE4.sln” in Visual Studio 2013.
- Right clicked on the UE4 solution and clicked rebuild.
- Copied plugins back to the project plugins folder.

And now is working fine.  
Usually with previous versions I just slammed the plugins in the project plugins folder and they worked right away!

Sweeet!

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_0df12f74](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_0df12f74](https://forums.unrealengine.com/u/anonymous_user_0df12f74)\
**Post date:** [August 25, 2014, 9:23pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/226 "2014-08-25T21:23:20Z")

</div>

Ahh cool man! Thanks for the info, I will give that a try! I also use the Substance plugin, so hopefully I can get it going as well, but I can wait on that one for now…

However, going without 's Victory plugin is something I would’t wish on even my worst enemy… , it’s just too much awesome to go without! 😃

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_298682701](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_298682701](https://forums.unrealengine.com/u/anonymous_user_298682701)\
**Post date:** [August 25, 2014, 9:33pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/227 "2014-08-25T21:33:18Z")

</div>

Yeah give it a try and post back if it works. If so then its a possible fix for everyone running the source version!

---

<div class="post-metadata">

**Author:** ![Rama](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rama/32/882413_2.png) [@Rama](https://forums.unrealengine.com/u/Rama)\
**Post date:** [August 26, 2014, 3:20pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/228 "2014-08-26T15:20:20Z")

</div>

> [@;125923](#):
>
> @, have you found a solution for doing a Blueprint Implementable Event in a Blueprint Library? I can make a static FTimerDelegate, but the mutli-cast delegates and the event ones don’t play nice with the static declaration.

You could include an AActor class with your plugin, and then use iterator or worldcontextobject with actor iterator inside the BP library to find the AActor class, assuming you’ve spawned it once the game starts, from a Blueprint that the end user makes in their content folder.

Then in the AActor class you can capture the events that you want to send via the BP Library 🙂

is the route I went to provide a client with a TCP and UDP socket communication system using global BP nodes!

---

<div class="post-metadata">

**Author:** ![Rama](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rama/32/882413_2.png) [@Rama](https://forums.unrealengine.com/u/Rama)\
**Post date:** [August 26, 2014, 3:24pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/229 "2014-08-26T15:24:44Z")

</div>

> [@;126046](#):
>
> Ahh cool man! Thanks for the info, I will give that a try! I also use the Substance plugin, so hopefully I can get it going as well, but I can wait on that one for now…
> 
> However, going without 's Victory plugin is something I would’t wish on even my worst enemy… , it’s just too much awesome to go without! 😃

Awww thanks !

And thanks for the info!

It looks like Ellis thoroughly addressed the weird 4.4.0 launcher update event here! (very recently)

> **[Explaining the recent 4.4.0 Update](https://forums.unrealengine.com/showthread.php?32501-Explaining-the-recent-4-4-0-Update&p=126515&viewfull=1#post126515)**
>
> Hi everyone, When we released the Preview of the upcoming 4.4.1 Hotfix on 8/19 (information available here) we experienced a few technical difficulties and inadvertently triggered a rollback for 4.4.0. For a limited time, 4.4.0 users saw the option...

> [@;126044](#):
>
> Booooom! I got it working.  
> I only use 2 plugins which are VAOcean and 's Victory plugin, both of which give me the error saying they’re not compatible with the current engine version.
> 
> Here’s what I did to get them to work.
> 
> - Copied the plugins to the engine/plugins folder.
> - Clicked “GenerateProjectFiles.bat” so they would be recognised in Visual Studio.
> - Opened “UE4.sln” in Visual Studio 2013.
> - Right clicked on the UE4 solution and clicked rebuild.
> - Copied plugins back to the project plugins folder.
> 
> And now is working fine.  
> Usually with previous versions I just slammed the plugins in the project plugins folder and they worked right away!
> 
> Sweeet!

Wow that’s wild! Great work , and thanks for sharing your solution!

---

<div class="post-metadata">

**Author:** ![n00854180t](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@n00854180t](https://forums.unrealengine.com/u/n00854180t)\
**Post date:** [August 26, 2014, 5:38pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/230 "2014-08-26T17:38:53Z")

</div>

> [@;126587](#):
>
> You could include an AActor class with your plugin, and then use iterator or worldcontextobject with actor iterator inside the BP library to find the AActor class, assuming you’ve spawned it once the game starts, from a Blueprint that the end user makes in their content folder.
> 
> Then in the AActor class you can capture the events that you want to send via the BP Library 🙂
> 
> is the route I went to provide a client with a TCP and UDP socket communication system using global BP nodes!

Dang, I’ve been avoiding having to make a separate class, actually. Right now I have it set up so that the blueprint library class holds a number of static members for caching things and getting results back from the threaded calls.

I may end up changing it later, but for now the static caches works okay.

Thanks 🙂

---

<div class="post-metadata">

**Author:** ![Rama](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rama/32/882413_2.png) [@Rama](https://forums.unrealengine.com/u/Rama)\
**Post date:** [August 27, 2014, 10:30pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/231 "2014-08-27T22:30:33Z")

</div>

> [@;126670](#):
>
> Dang, I’ve been avoiding having to make a separate class, actually. Right now I have it set up so that the blueprint library class holds a number of static members for caching things and getting results back from the threaded calls.
> 
> I may end up changing it later, but for now the static caches works okay.
> 
> Thanks 🙂

Keep me posted on what you discover!

🙂

---

<div class="post-metadata">

**Author:** ![Rama](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rama/32/882413_2.png) [@Rama](https://forums.unrealengine.com/u/Rama)\
**Post date:** [August 27, 2014, 10:37pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/232 "2014-08-27T22:37:13Z")

</div>

**[FONT=Comic Sans MS]Featured BP Nodes**  
\*\*  
Trace Data\*\*

I’ve designed several BP nodes to make doing traces easier!

Again you can download and use these nodes as a plugin, even in non-C++ project!

**Get Trace Data From Skeletal Mesh Socket**

 ![5d685c0f40d2e1cfc4f7da262ca5bf7f25deaa46.jpeg](https://d3kjluh73b9h9o.cloudfront.net/original/3X/5/d/5d685c0f40d2e1cfc4f7da262ca5bf7f25deaa46.jpeg)

🙂

---

<div class="post-metadata">

**Author:** ![n00854180t](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@n00854180t](https://forums.unrealengine.com/u/n00854180t)\
**Post date:** [August 27, 2014, 10:58pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/233 "2014-08-27T22:58:57Z")

</div>

> [@;127915](#):
>
> Keep me posted on what you discover!
> 
> 🙂

So I ended up just keeping my static members as a cache - it works just fine. One thing that I had to do though, is make a special blueprint callable cache clean up function that the user has to call on the End Play event. That way, if you PIE and then stop it, it clears the cache properly. Shouldn’t happen as often in a packaged build where the game gets totally closed between sessions.

I was going to override BeginDestroy, but it only works on instances of UObjects, so that was out too.

* * *

Finally, during my investigations to get to work, I realized that there’s _almost_ no reason that FIOSystem::LoadCompressedData doesn’t work directly with ZIP compressed streams (to be clear, I’m not speaking to the reading of the ZIP directory structure and stuff, which is totally separate, just the decompression of a given block that represents a file).

There are two main, fairly small things, that could be changed to get direct zip support in LoadCompressedData:

- The checks in FulfillCompressedRead that look at the first two bytes of the stream to check for a PAK header would need to be skipped in the case of a zip compressed stream (otherwise it just errors).
- The actual thread that uncompresses the data would need to be changed to call the appropriate ZLIB inflate() functions instead of calling ZLIB’s uncompress().
- A way to tell LoadCompressedData what type of compressed data it is - pak or zip.

Of course, there are a bunch of perfectly reasonable issues with putting that in there, namely that to support zips to the standard that people would expect, it would require additional work. My own work only really deals with “normal” compressed zips, and doesn’t handle zip64 or any of the other fancy things that you can do with zip files.

So to close, it seems like basic async zip support could fairly easily be added into the current FIOSystem. For my part, I’m not going to work on that right now because my system (which just does a regular FIOSystem::LoadData and then decompresses it in a Runnable thread) works for my purposes.

But I think it’s safe to say that plenty of UE4 devs would love to have the ability to load zip-archived data asynchronously during their games.

---

<div class="post-metadata">

**Author:** ![Rama](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rama/32/882413_2.png) [@Rama](https://forums.unrealengine.com/u/Rama)\
**Post date:** [August 28, 2014, 7:55pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/234 "2014-08-28T19:55:22Z")

</div>

> [@Vernatia;126119](#):
>
> The problem stems from two pointers not being initialised:
> 
> ```
> SelectedVertexBuffer = nullptr;
> HighlightedVertexBuffer = nullptr;
> 
> ```
> 
> Needed to be added to your JoyInit function, as they were causing constant crashing when right clicking on an , when that wasn’t selected.  
> It would also crash occasionally when left clicking.

**[FONT=Comic Sans MS]Thank You Vernatia!**

I have been meaning to get around to debugging that crash, and you just fixed it for me!

Thanks so much for posting!

And congrats on your first post! An exceptionally helpful first post for me!

Welcome to the forums!

[![](https://d3kjluh73b9h9o.cloudfront.net/original/4X/1/d/5/1d57a8e5169943feabcbbb4ae09aceedd074b46f.jpeg) ](https://www.mediafire.com/convkey/a416/xh2a0w6qocsc9xb6g.jpg?size_id=3)

```auto

**[FONT=Comic Sans MS]New Plugin Build is Live!**

The fix Vernatia mentioned is now live!

https://wiki.unrealengine.com/File:VictoryPlugin.zip

If you were experiencing crashes with Vertex Snap plugin, try new build, I have verified it fixes the crashes for me!

I never got around to debugging it but Vernatia found the solution! :)
```

---

<div class="post-metadata">

**Author:** ![Rama](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rama/32/882413_2.png) [@Rama](https://forums.unrealengine.com/u/Rama)\
**Post date:** [August 28, 2014, 7:58pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/235 "2014-08-28T19:58:43Z")

</div>

> [@;127933](#):
>
> So to close, it seems like basic async zip support could fairly easily be added into the current FIOSystem. For my part, I’m not going to work on that right now because my system (which just does a regular FIOSystem::LoadData and then decompresses it in a Runnable thread) works for my purposes.
> 
> But I think it’s safe to say that plenty of UE4 devs would love to have the ability to load zip-archived data asynchronously during their games.

Have you made request?! (feedback section I suppose)

sounds like fun to me!

---

<div class="post-metadata">

**Author:** ![n00854180t](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@n00854180t](https://forums.unrealengine.com/u/n00854180t)\
**Post date:** [August 28, 2014, 10:15pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/236 "2014-08-28T22:15:52Z")

</div>

> [@;128494](#):
>
> Have you made request?! (feedback section I suppose)
> 
> sounds like fun to me!

Haven’t yet - I was thinking I’d actually implement a simple version first as a proof of concept. Unfortunately it’s a little weird because the developer using the functions would have to understand that reading out the file/folder structure data from the zip would be entirely separate, so it couldn’t be used to load an entire zip file, as it does with pak files.

Also there’s the of the other types of zip support - my support only handles the single normal compression level, so that would need to be dealt with. Then there’s zip64 etc.

Anyway, I probably will make a thread about it either way soon, I think it’d be rad for devs to have functionality. It’d be particularly useful for modding, for instance.

---

<div class="post-metadata">

**Author:** ![Rama](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rama/32/882413_2.png) [@Rama](https://forums.unrealengine.com/u/Rama)\
**Post date:** [August 29, 2014, 5:55pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/237 "2014-08-29T17:55:34Z")

</div>

> [@;128574](#):
>
> Anyway, I probably will make a thread about it either way soon, I think it’d be rad for devs to have functionality. It’d be particularly useful for modding, for instance.

Well if you make a thread about it send me the link!

---

<div class="post-metadata">

**Author:** ![VedgyB](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@VedgyB](https://forums.unrealengine.com/u/VedgyB)\
**Post date:** [August 30, 2014, 6:16am UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/238 "2014-08-30T06:16:14Z")

</div>

First , thanks for your contributions!

I’m having an with the Get Rendered Actors function, I’m not sure where the lies, but when my camera is not facing any actors I still appear to be rendering several. I was trying to use node as a way to check if a player can see another player or not, but it seems to always render actors I can’t even see… what might I be doing wrong here, or should I be using a different method to accomplish ?

---

<div class="post-metadata">

**Author:** ![Rama](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rama/32/882413_2.png) [@Rama](https://forums.unrealengine.com/u/Rama)\
**Post date:** [August 31, 2014, 1:43am UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/239 "2014-08-31T01:43:11Z")

</div>

> [@cerdom;129270](#):
>
> First , thanks for your contributions!
> 
> I’m having an with the Get Rendered Actors function, I’m not sure where the lies, but when my camera is not facing any actors I still appear to be rendering several. I was trying to use node as a way to check if a player can see another player or not, but it seems to always render actors I can’t even see… what might I be doing wrong here, or should I be using a different method to accomplish ?

You can check the angle of the Control Rotation of the player to the location you want to test

You compare the angle between the player and the destination with the viewing angle of player

So its something like

Angle to Target is  
(Target.Location - PlayerCharacter-\>GetActorLocation) to Rotator

and

GetPlayerController-\>GetControlRotation()

then you compare the two rotators to see how far part they are from each other.

you can use my Victory BP normalize rotators function to make sure the values will come out right

I can make a node for at some point soon, just remind me by pm if I haven’t it in a while 🙂

---

<div class="post-metadata">

**Author:** ![Rama](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rama/32/882413_2.png) [@Rama](https://forums.unrealengine.com/u/Rama)\
**Post date:** [August 31, 2014, 8:24pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/240 "2014-08-31T20:24:57Z")

</div>

**Two New BP Nodes**

The download link in original post is now updated with two new nodes!

```auto

**Get Screen Resolutions**

Obtains a list of the screen resolutions supported by the user's current display adapter!

**Option to include or exclude the refresh rates that are available for each resolution!**

**New version of Get Screen Resolutions**![3975ab3d6a15f4e36483e111fc160973adf7e86d.jpeg|1280x960](upload://8cjjRazEUm77M7U8S6HTegXHO5n.jpeg)

```

**Combine Strings**

Combine two strings with an optional separator and labels that will appear in front of each member of the pair.

```auto

Picture

I used the two nodes above to print out a listing of supported screen resolutions, on the press of a key, using blueprints!

(open in new tab to see full size)

https://d3ar1piqh1oeli.cloudfront.net/e/e0/ScreenResolutions.jpg/1400px-ScreenResolutions.jpg
```

---

<div class="post-metadata">

**Author:** ![Rama](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rama/32/882413_2.png) [@Rama](https://forums.unrealengine.com/u/Rama)\
**Post date:** [September 1, 2014, 6:48pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/241 "2014-09-01T18:48:54Z")

</div>

**Load String Array From Text File**

node is a compliment to the node that saves string to text file!

1. Loads a String Array from a Text File, where each entry in the array is one line from the file!

2. Option to specify that white space lines should be ignored, tested and working! (only checks spaces and newlines at moment)

3. Returns the size of the String array that was created!

4. Returns false if the file could not be opened

**Picture:**

Enjoy!

PS: re-download the plugin from the link in first post to get update!

Node created as per request:

> **[(39) 's Extra Blueprint Nodes for You as a Plugin, No C++ Required!](https://forums.unrealengine.com/showthread.php?3851-%2839%29--s-Extra-Blueprint-Nodes-for-You-as-a-Plugin-No-C-Required%21&p=121696&viewfull=1#post121696)**
>
> Dear Community, 🌟 Newest Awesome Feature 🌟 (In Complimentary (no cost) Victory Plugin!) Now You Can Get the Text Output (STDOUT or STDERR) from any .exe program, straight into Unreal Engine! is the output of ⚡ a video compression commandline...

---

<div class="post-metadata">

**Author:** ![Rama](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rama/32/882413_2.png) [@Rama](https://forums.unrealengine.com/u/Rama)\
**Post date:** [September 3, 2014, 4:41am UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/242 "2014-09-03T04:41:12Z")

</div>

**Get Current Operating System**

annnnd

**Get Milliseconds/Seconds/Minutes/Hours Passed Since Previous Recorded!**

These two nodes can be used to

1. obtain the current local Operating System for your computer.

2. obtain the amount of milliseconds/seconds/minutes/hours that have passed since the you recorded for the first node! **You can stores as many times as you want! They are simply stored as a string!**

You can use these two nodes to record down to the sub-millisecond the amount of passing between game events!

\*\*The milliseconds portion is a float, so you can record far smaller than 1 millisecond!  
\*\*

**In the attached picture I record the amount of real-world between two key presses** 🙂

 ![DateTime1.jpg](https://d3kjluh73b9h9o.cloudfront.net/original/3X/9/8/982c451b0e6fca27070d67ae554a1ee1004ac40e.jpeg)

Enjoy!

---

<div class="post-metadata">

**Author:** ![Rama](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rama/32/882413_2.png) [@Rama](https://forums.unrealengine.com/u/Rama)\
**Post date:** [September 4, 2014, 6:11am UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/243 "2014-09-04T06:11:24Z")

</div>

**44+ Extra BP Nodes For You!**

No c++ required!

No compile required!

Download and plug in!

🙂

---

<div class="post-metadata">

**Author:** ![Rama](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/rama/32/882413_2.png) [@Rama](https://forums.unrealengine.com/u/Rama)\
**Post date:** [September 5, 2014, 5:19am UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/244 "2014-09-05T05:19:32Z")

</div>

**Featured Node**

**Trace for Closest Socket**

Perform a trace against a mesh that will identify the closest socket to the trace hit location on the mesh!

 ![62ef560b48129181a02892578df3d3a475f7e1b0.jpeg](https://d3kjluh73b9h9o.cloudfront.net/original/3X/6/2/62ef560b48129181a02892578df3d3a475f7e1b0.jpeg)

![8028a3610f7eacb2c5741fd27866b1d186fc6e6e.jpeg](https://d1ap1mz92jnks1.cloudfront.net/images/transparent.png)

[Previous page](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448.md?page=11)

[Next page](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448.md?page=13)
