# (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:** 55

<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, 2015, 10:24pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/1135 "2015-08-31T22:24:42Z")

</div>

> [@;368822](#):
>
> Hey how is it going? 🙂
> 
> I have successfully compiled and fixed the errors/warnings for 4.9 (the changes in get mesh triangles function was the toughest part to fix for me 😛 but I think it works fine).  
> Maybe I can save you some trouble?
> 
> Here is the link:  
> [https://drive.google.com/file/d/0B7Z9rT16MoBoVDI0Tk40bjE4RGs/](https://drive.google.com/file/d/0B7Z9rT16MoBoVDI0Tk40bjE4RGs/)

Woohoo thank you so much for helping out!

Actually we finished around the same!

I tested both your version and mine, and the 4.9 plugin template code, there’s a bug whenever UnrealEd is included. Just wanted to know I did test your version too to honor your contribution!

See next post!

🙂

---

<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, 2015, 10:28pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/1136 "2015-08-31T22:28:31Z")

</div>

Upgrade to 4.9, Vertex Snap Editor Temp Disabled

Dear Community,

**I’ve upgraded my Victory BP plugin to 4.9!** (And did too!)

Unfortunately in 4.9.0 there’s a bug involved with editor plugins that I believe has to be fixed engine-side as it is affecting the new 4.9 plugin templates as well.

So version of my plugin does not include the Vertex Snap Editor.

**To avoid a crash on editor startup, please remember to remove these lines from your config file if you were using the vertex snap editor:**

```auto

[/Script/Engine.Engine]
UnrealEdEngine=/Script/VictoryEdEngine.VictoryEdEngine

```

becomes

```auto

;[/Script/Engine.Engine]
;UnrealEdEngine=/Script/VictoryEdEngine.VictoryEdEngine

```

Full description:

> **[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 — https://unrealcommunity.wiki/! You will be able to find content from...

```auto

**4.9 Download**

```

\*\*Latest plugin download on the UE4 Wiki: (15 mb) \*\*

> **[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 — https://unrealcommunity.wiki/! You will be able to find content from...

```auto

**Victory Plugin on Media Fire**

If your browser is not updating the Wiki download page to the most recent version, you can use my alternative Media Fire download link!

Please note clicking link will not start a download instantly, it will just take you to the Media Fire file description.

https://www.mediafire.com/?g6uf9kt5ueb2upj

Enjoy!

:)
```

---

<div class="post-metadata">

**Author:** ![Nsomnia](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Nsomnia](https://forums.unrealengine.com/u/Nsomnia)\
**Post date:** [September 1, 2015, 5:34am UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/1137 "2015-09-01T05:34:13Z")

</div>

> [@;368839](#):
>
> Dear Community,
> 
> **I’ve upgraded my Victory BP plugin to 4.9!** (And did too!)
> 
> Unfortunately in 4.9.0 there’s a bug involved with editor plugins that I believe has to be fixed engine-side as it is affecting the new 4.9 plugin templates as well.
> 
> So version of my plugin does not include the Vertex Snap Editor.
> 
> **To avoid a crash on editor startup, please remember to remove these lines from your config file if you were using the vertex snap editor:**
> 
> ```auto
> 
> [/Script/Engine.Engine]
> UnrealEdEngine=/Script/VictoryEdEngine.VictoryEdEngine
> 
> ```
> 
> becomes
> 
> ```auto
> 
> ;[/Script/Engine.Engine]
> ;UnrealEdEngine=/Script/VictoryEdEngine.VictoryEdEngine
> 
> ```
> 
> Full description:  
> [A new, community-hosted Unreal Engine Wiki - Announcements - Epic Developer Community Forums](https://wiki.unrealengine.com/%27s_Vertex_Snap_Editor_Plugin#Installation)
> 
> ```auto
> 
> **4.9 Download**
> 
> ```
> 
> \*\*Latest plugin download on the UE4 Wiki: (15 mb) \*\*  
> [A new, community-hosted Unreal Engine Wiki - Announcements - Epic Developer Community Forums](https://wiki.unrealengine.com/File:VictoryPlugin.zip)
> 
> ```auto
> 
> **Victory Plugin on Media Fire**
> 
> If your browser is not updating the Wiki download page to the most recent version, you can use my alternative Media Fire download link!
> 
> Please note clicking link will not start a download instantly, it will just take you to the Media Fire file description.
> 
> https://www.mediafire.com/?g6uf9kt5ueb2upj
> 
> Enjoy!
> 
> :)
> 
> ```

Much happiness glows around me 😃 Java semester, c++ next. And then the Unreal API for its hugeness and oddness.

---

<div class="post-metadata">

**Author:** ![Kris](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/kris/32/758129_2.png) [@Kris](https://forums.unrealengine.com/u/Kris)\
**Post date:** [September 1, 2015, 2:14pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/1138 "2015-09-01T14:14:43Z")

</div>

Seems the IsValidIndex node doesn’t like 4.9.  
I’ll get the fix to shortly 🙂

---

<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 2, 2015, 8:58am UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/1139 "2015-09-02T08:58:34Z")

</div>

Victory Ed Engine Plugin, Separate Plugin and Download Now

Dear Community,

As of 4.9.0, My Vertex Snap Editor Plugin is now a separate plugin, called VictoryEdEngine!

**Download Link (145kb)**

> **[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 — https://unrealcommunity.wiki/! You will be able to find content from...

is a plugin that does not package with your game as it is only designed to modify Unreal Engine 4 to add support for vertex snapping while in the Level Editor Viewport.

[More Details about my Vertex Snapping Editor](https://wiki.unrealengine.com/%27s_Vertex_Snap_Editor_Plugin#Overview)

**Installation Steps**

> **[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 — https://unrealcommunity.wiki/! You will be able to find content from...

Enjoy!

---

<div class="post-metadata">

**Author:** ![John\_Alcatraz](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@John\_Alcatraz](https://forums.unrealengine.com/u/John_Alcatraz)\
**Post date:** [September 2, 2015, 6:41pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/1140 "2015-09-02T18:41:42Z")

</div>

Hey!

> [@;368790](#):
>
> **Why Not Include Variants?**
> 
> The reason I can’t include variants is because of a wiki file size limitation of 20mb

Why not just upload the plugin here in the forums or just link in the wiki to a separate download location (like google drive)?

Another question: Could you somehow integrate into your plugin?

> **[\[TUTORIAL / C++ Advanced \] Custom hardware cursor loading for Win and Mac](https://forums.unrealengine.com/showthread.php?46605-TUTORIAL-C-Advanced-Custom-hardware-cursor-loading-for-Win-and-Mac)**
>
> I decided to create this tutorial when I got answer from one of the UE4 devs that custom hardware cursor feature won’t be added and they’re working at some software implementation instead to make it possible for those who lacks special OS features...

Epic seems to be quite slow with integrating custom hardware cursors into the engine, they don’t say anything about it, no idea whether it will happen within the next 1 or 2 years 😛 So there is the code which just needs to get added to the source for making custom cursors work, but of course doing manually after each new version and each hotfix and compile the engine is just a drawback regarding usability. But so many games need custom cursors! The default windows hand cursor is not really fitting for most games, and software cursors feel laggy, even at 60 fps.

Could you integrate the code mentioned in the thread above into your plugin and make it work as a BP node or would it not work inside of a plugin?

Thanks! 🙂

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_cacd3de0](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_cacd3de0](https://forums.unrealengine.com/u/anonymous_user_cacd3de0)\
**Post date:** [September 2, 2015, 11:58pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/1141 "2015-09-02T23:58:16Z")

</div>

> [@;369257](#):
>
> Seems the IsValidIndex node doesn’t like 4.9.  
> I’ll get the fix to shortly 🙂

Could you post a fix here? I’m currently stuck on .

-

---

<div class="post-metadata">

**Author:** ![Kris](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/kris/32/758129_2.png) [@Kris](https://forums.unrealengine.com/u/Kris)\
**Post date:** [September 3, 2015, 12:54am UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/1142 "2015-09-03T00:54:43Z")

</div>

IsValidIndex fix:

```auto

    DECLARE_FUNCTION(execArray_IsValidIndex)
    {
        Stack.MostRecentProperty = nullptr;
        Stack.StepCompiledIn<UArrayProperty>(NULL);
        void* ArrayAddr = Stack.MostRecentPropertyAddress;
        UArrayProperty* ArrayProperty = Cast<UArrayProperty>(Stack.MostRecentProperty);
        if (!ArrayProperty)
        {
            Stack.bArrayContextFailed = true;
            return;
        }
        P_GET_PROPERTY(UIntProperty, Index);
        P_FINISH;

        bool WasValid = GenericArray_IsValidIndex(ArrayAddr, ArrayProperty, Index);
        *(bool*)RESULT_PARAM = WasValid;
    }

```

```auto

bool UVictoryBPFunctionLibrary::GenericArray_IsValidIndex(void* TargetArray, const UArrayProperty* ArrayProp, int32 Index)
{
    bool bResult = false;

    if (TargetArray)
    {
        FScriptArrayHelper ArrayHelper(ArrayProp, TargetArray);
        bResult = ArrayHelper.IsValidIndex(Index);
    }

    return bResult;
}

```

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_cacd3de0](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_cacd3de0](https://forums.unrealengine.com/u/anonymous_user_cacd3de0)\
**Post date:** [September 3, 2015, 1:47am UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/1143 "2015-09-03T01:47:25Z")

</div>

> [@;370573](#):
>
> IsValidIndex fix:
> 
> ```auto
> 
> DECLARE_FUNCTION(execArray_IsValidIndex)
> {
> Stack.MostRecentProperty = nullptr;
> Stack.StepCompiledIn<UArrayProperty>(NULL);
> void* ArrayAddr = Stack.MostRecentPropertyAddress;
> UArrayProperty* ArrayProperty = Cast<UArrayProperty>(Stack.MostRecentProperty);
> if (!ArrayProperty)
> {
> Stack.bArrayContextFailed = true;
> return;
> }
> P_GET_PROPERTY(UIntProperty, Index);
> P_FINISH;
> 
> bool WasValid = GenericArray_IsValidIndex(ArrayAddr, ArrayProperty, Index);
> *(bool*)RESULT_PARAM = WasValid;
> }
> 
> ```
> 
> ```auto
> 
> bool UVictoryBPFunctionLibrary::GenericArray_IsValidIndex(void* TargetArray, const UArrayProperty* ArrayProp, int32 Index)
> {
> bool bResult = false;
> 
> if (TargetArray)
> {
> FScriptArrayHelper ArrayHelper(ArrayProp, TargetArray);
> bResult = ArrayHelper.IsValidIndex(Index);
> }
> 
> return bResult;
> }
> 
> ```

I’m still getting crashes.

-

---

<div class="post-metadata">

**Author:** ![Mosel3y](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Mosel3y](https://forums.unrealengine.com/u/Mosel3y)\
**Post date:** [September 3, 2015, 9:22am UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/1144 "2015-09-03T09:22:19Z")

</div>

Hey , your LoadTexture2D\_FromFileByExtension node isn’t working correctly for me any more in 4.9, I’m getting a sort of hue shifted effect:

![RIAK4bK.png](https://d3kjluh73b9h9o.cloudfront.net/original/3X/4/f/4fd8e4654fe40d3846d0d29590ed97c95fa58620.png)

How the colours should look:

![G2k8WOa.png](https://d3kjluh73b9h9o.cloudfront.net/original/3X/1/4/1494b6df691017ed97009d6ea24a3fce3f54c3b0.png)

edit:  
Changing  
Texture = UTexture2D::CreateTransient(ImageWrapper-\>GetWidth(), ImageWrapper-\>GetHeight(), PF\_B8G8R8A8);

to

Texture = UTexture2D::CreateTransient(ImageWrapper-\>GetWidth(), ImageWrapper-\>GetHeight(), PF\_R8G8B8A8;

fixes it

---

<div class="post-metadata">

**Author:** ![Parvan](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/parvan/32/1137391_2.png) [@Parvan](https://forums.unrealengine.com/u/Parvan)\
**Post date:** [September 3, 2015, 9:44pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/1145 "2015-09-03T21:44:48Z")

</div>

> [@](#):
>
> Error 1 error : declaration shadows a local variable -Werror,-Wshadow] U:\Files\user\Documents\Unreal Projects\Random Mercurial Commit\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp 2748 13 Random  
> Error 2 error : Failed to produce item: U:\Files\user\Documents\Unreal Projects\Random Mercurial Commit\Plugins\VictoryPlugin\Binaries\Linux\libRandom-VictoryBPLibrary.a U:\Files\user\Documents\Unreal Projects\Random Mercurial Commit\Intermediate\ProjectFiles\ERROR Random  
> Error 3 error MSB3073: The command “V:\UnrealEngine-4.8.3-release\Engine\Build\BatchFiles\Build.bat Random Linux Development “U:\Files\user\Documents\Unreal Projects\Random Mercurial Commit\Random.uproject”” exited with code -1. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.MakeFile.Targets 38 5 Random

> [@](#):
>
> MainFrameActions: Packaging (Linux): UnrealBuildTool: U:\Files\user\Documents\Unreal Projects\Random Mercurial Commit\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(2748,13) : error: declaration shadows a local variable -Werror,-Wshadow]  
> MainFrameActions: Packaging (Linux): UnrealBuildTool: for (int32 Itr = 0; Itr \< SocketNames.Num(); Itr++ )  
> MainFrameActions: Packaging (Linux): UnrealBuildTool: ^  
> MainFrameActions: Packaging (Linux): UnrealBuildTool: U:\Files\user\Documents\Unreal Projects\Random Mercurial Commit\Plugins\VictoryPlugin\Source\VictoryBPLibrary\Private\VictoryBPFunctionLibrary.cpp(2680,37) : note: previous declaration is here  
> MainFrameActions: Packaging (Linux): UnrealBuildTool: TObjectIterator\<APlayerController\> Itr;  
> MainFrameActions: Packaging (Linux): UnrealBuildTool: ^  
> MainFrameActions: Packaging (Linux): UnrealBuildTool: 1 error generated.  
> MainFrameActions: Packaging (Linux): UnrealBuildTool: -------- End Detailed Actions Stats -----------------------------------------------------------  
> MainFrameActions: Packaging (Linux): UnrealBuildTool: ERROR: UBT ERROR: Failed to produce item: U:\Files\user\Documents\Unreal Projects\Random Mercurial Commit\Plugins\VictoryPlugin\Binaries\Linux\libRandom-VictoryBPLibrary.a  
> MainFrameActions: Packaging (Linux): UnrealBuildTool: Total build: 112.39 seconds  
> MainFrameActions: Packaging (Linux): CommandUtils.Run: Run: Took 112.626s to run UnrealBuildTool.exe, ExitCode=5  
> MainFrameActions: Packaging (Linux): ErrorReporter.Error: ERROR: AutomationTool error: Command failed (Result:5): V:\UnrealEngine-4.8.3-release\Engine\Binaries\DotNET\UnrealBuildTool.exe Random Linux Development "U:\Files\user\Documents\Unreal Projects\Random Mercurial Commit\Random.uproject  
> MainFrameActions: Packaging (Linux): " -noxge -NoHotReloadFromIDE -ignorejunk. See logfile for details: ‘UnrealBuildTool.txt’  
> MainFrameActions: Packaging (Linux): BuildCommand.Execute: ERROR: BUILD FAILED

I have a problem with a linux build. I tried a version of the plugin from June and also a version from 08-26-15. The both had error. Any ideas?

Thanks for your awesome plugin!

Edit: Fixed, see below

---

<div class="post-metadata">

**Author:** ![Kris](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/kris/32/758129_2.png) [@Kris](https://forums.unrealengine.com/u/Kris)\
**Post date:** [September 4, 2015, 3:57am UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/1146 "2015-09-04T03:57:12Z")

</div>

> [@;370776](#):
>
> Hey , your LoadTexture2D\_FromFileByExtension node isn’t working correctly for me any more in 4.9, I’m getting a sort of hue shifted effect:  
> Changing  
> Texture = UTexture2D::CreateTransient(ImageWrapper-\>GetWidth(), ImageWrapper-\>GetHeight(), PF\_B8G8R8A8);
> 
> to
> 
> Texture = UTexture2D::CreateTransient(ImageWrapper-\>GetWidth(), ImageWrapper-\>GetHeight(), PF\_R8G8B8A8;
> 
> fixes it

Funny, that’s what my version already has.  
I must have updated it a while back without sending it to .  
My bad ☹

---

<div class="post-metadata">

**Author:** ![Parvan](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/parvan/32/1137391_2.png) [@Parvan](https://forums.unrealengine.com/u/Parvan)\
**Post date:** [September 4, 2015, 5:10am UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/1147 "2015-09-04T05:10:47Z")

</div>

> [@Stormwind;348390](#):
>
> Hi @,
> 
> Thanks for the plugin!
> 
> I had to make a fix to get it building under Linux - the diff follows.
> 
> Have you considered putting your code on Github so people can send you pull requests for fixes/additions that you can easily decide to accept or not? If you are wlling, I offer to help set it up for you.
> 
> ```auto
> 
> diff --git a/GameProject/Plugins/VictoryPlugin/Source/VictoryBPLibrary/Private/VictoryBPFunctionLibrary.cpp b/GameProject/Plugins/VictoryPlugin/Source/VictoryBPLibrary/Private/VictoryBPFunctionLibrary.cpp
> index 014cab1..6fe8e0e 100644
> --- a/GameProject/Plugins/VictoryPlugin/Source/VictoryBPLibrary/Private/VictoryBPFunctionLibrary.cpp
> +++ b/GameProject/Plugins/VictoryPlugin/Source/VictoryBPLibrary/Private/VictoryBPFunctionLibrary.cpp
> @@ -2711,13 +2711,13 @@ AActor* UVictoryBPFunctionLibrary::Traces __CharacterMeshTrace___ ClosestSocket(
> 
> // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> //Check Bones Locations
> - for (int32 Itr = 0; Itr < SocketNames.Num(); Itr++ )
> + for (int32 SItr = 0; SItr < SocketNames.Num(); SItr++ )
> {
> //Is a Bone not a socket?
> - if(SocketNames[Itr].Type == EComponentSocketType::Bone) continue;
> + if(SocketNames[SItr].Type == EComponentSocketType::Bone) continue;
> // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> - CurLoc = AsCharacter->Mesh->GetSocketLocation(SocketNames[Itr].Name);
> + CurLoc = AsCharacter->Mesh->GetSocketLocation(SocketNames[SItr].Name);
> 
> //Dist
> CurDist = FVector::Dist(OutImpactPoint, CurLoc);
> @@ -2725,7 +2725,7 @@ AActor* UVictoryBPFunctionLibrary::Traces __CharacterMeshTrace___ ClosestSocket(
> //Min
> if (ClosestDistance < 0 || ClosestDistance >= CurDist)
> {
> - ClosestVibe = Itr;
> + ClosestVibe = SItr;
> ClosestDistance = CurDist;
> }
> }
> 
> ```
> 
> Now I need to see how to deal with the Dedicated Server build failing because VictoryBPLibrary depends on UElibPNG - the build error:
> 
> ```auto
> 
> Building DescentServer...
> Using clang version '3.5.0' (string), 3 (major), 5 (minor), 0 (patch)
> Linux dedicated server is made to depend on UElibPNG. We want to avoid , please correct module dependencies.
> ERROR: Exception thrown while processing dependent modules of VictoryBPLibrary
> Exception thrown while processing dependent modules of ImageWrapper
> ERROR: Unable to instantiate instance of 'UElibPNG' type from compiled assembly 'DescentServerModuleRules'. Unreal Build Tool creates an instance of your module's 'Rules' in order to find out about your module's requirements. The CLR exception details may provide more information: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> ERROR: Linux dedicated server is made to depend on UElibPNG. We want to avoid , please correct module dependencies.
> 
> ```
> 
> Edit: I had to remove ImageWrapper as a dependency and ifdef out code using it in the plugin to get DedicatedServer to build.

fixed my problem as well. Thanks Stormwind!

---

<div class="post-metadata">

**Author:** ![Shrooblord](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/shrooblord/32/88712_2.png) [@Shrooblord](https://forums.unrealengine.com/u/Shrooblord)\
**Post date:** [September 4, 2015, 2:15pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/1148 "2015-09-04T14:15:03Z")

</div>

I’m getting an error saying “VictoryPlugin could not be loaded because the module VictoryBPLibrary could not be found.” I’ve looked in the plugin’s Source folder and… well… it’s right there. Not sure what the plugin is not seeing that I can.

---

<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, 2015, 3:15pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/1149 "2015-09-04T15:15:57Z")

</div>

> [@;370776](#):
>
> Changing  
> Texture = UTexture2D::CreateTransient(ImageWrapper-\>GetWidth(), ImageWrapper-\>GetHeight(), PF\_B8G8R8A8);
> 
> to
> 
> Texture = UTexture2D::CreateTransient(ImageWrapper-\>GetWidth(), ImageWrapper-\>GetHeight(), PF\_R8G8B8A8;
> 
> fixes it

Dear ,

I just checked and the current version of the function has source code, which includes your fix, nice to hear from you!

is the most recent Victory Plugin on mediafire and the wiki

```auto

UTexture2D* UVictoryBPFunctionLibrary::LoadTexture2D_FromFileByExtension(const FString& ImagePath, bool& IsValid, int32& OutWidth, int32& OutHeight)
{
	UTexture2D* Texture = nullptr;
	IsValid = false;

	// To avoid log spam, make sure it exists before doing anything else.
	if (!FPlatformFileManager::Get().GetPlatformFile().FileExists(*ImagePath))
	{
		return nullptr;
	}

	TArray<uint8> CompressedData;
	if (!FFileHelper::LoadFileToArray(CompressedData, *ImagePath))
	{
		return nullptr;
	}
	
	IImageWrapperPtr ImageWrapper = GetImageWrapperByExtention(ImagePath);

	if (ImageWrapper.IsValid() && ImageWrapper->SetCompressed(CompressedData.GetData(), CompressedData.Num()))
	{ 
		const TArray<uint8>* UncompressedRGBA = nullptr;
		
		if (ImageWrapper->GetRaw(ERGBFormat::RGBA, 8, UncompressedRGBA))
		{
			Texture = UTexture2D::CreateTransient(ImageWrapper->GetWidth(), ImageWrapper->GetHeight(), PF_R8G8B8A8);
			
			if (Texture != nullptr)
			{
				IsValid = true;
				
				OutWidth = ImageWrapper->GetWidth();
				OutHeight = ImageWrapper->GetHeight();

				void* TextureData = Texture->PlatformData->Mips[0].BulkData.Lock(LOCK_READ_WRITE);
				FMemory::Memcpy(TextureData, UncompressedRGBA->GetData(), UncompressedRGBA->Num());
				Texture->PlatformData->Mips[0].BulkData.Unlock();
				Texture->UpdateResource();
			}
		}
	}

	return Texture;
}

```

🙂

---

<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, 2015, 3:17pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/1150 "2015-09-04T15:17:55Z")

</div>

> [@Parvan;371319](#):
>
> Thanks for your awesome plugin!
> 
> Edit: Fixed, see below

You’re welcome, and I am glad Stormwind’s [Linux packaging fix](https://forums.unrealengine.com/showthread.php?3851-(39)--s-Extra-Blueprint-Nodes-for-You-as-a-Plugin-No-C-Required!&p=371550&viewfull=1#post371550) worked for you!

🙂

---

<div class="post-metadata">

**Author:** ![Mosel3y](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Mosel3y](https://forums.unrealengine.com/u/Mosel3y)\
**Post date:** [September 4, 2015, 3:24pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/1151 "2015-09-04T15:24:23Z")

</div>

Yes, sorry about that guys, I’ve just realized I’d coppied in an older version that I had broken myself, not the latest :eek:

---

<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, 2015, 3:34pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/1152 "2015-09-04T15:34:24Z")

</div>

> [@;371841](#):
>
> Yes, sorry about that guys, I’ve just realized I’d coppied in an older version that I had broken myself, not the latest :eek:

good, hee hee!

🙂

---

<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, 2015, 3:35pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/1153 "2015-09-04T15:35:08Z")

</div>

In regard to IsValidIndex

> [@sgehrman;370596](#):
>
> I’m still getting crashes.
> 
> -

I can confirm I was still getting crashes too, I looked into the code and fixed it, here is the correct .h file for 4.9.0

```auto

/* 
 *See if index is a valid index for array
 *    
 *@param TargetArray The array to perform the operation on
 *@param Index The index to check.
 *@return Bool if integer is valid index for array
*/
UFUNCTION(Category="VictoryBPLibrary|Utilities|Array", BlueprintPure, CustomThunk, meta=(DisplayName = "Valid Index", CompactNodeTitle = "VALID INDEX", ArrayParm = "TargetArray"))
static bool Array_IsValidIndex(const TArray<int32>& TargetArray, int32 Index);

static bool GenericArray_IsValidIndex(void* TargetArray, const UArrayProperty* ArrayProp, int32 Index);
  
DECLARE_FUNCTION(execArray_IsValidIndex)
{
	Stack.MostRecentProperty = nullptr;
	Stack.StepCompiledIn<UArrayProperty>(NULL);
	void* ArrayAddr = Stack.MostRecentPropertyAddress;
	UArrayProperty* ArrayProperty = Cast<UArrayProperty>(Stack.MostRecentProperty);
	if (!ArrayProperty)
	{
		Stack.bArrayContextFailed = true;
		return;
	}
	P_GET_PROPERTY(UIntProperty, Index);
	P_FINISH;

	bool WasValid = GenericArray_IsValidIndex(ArrayAddr, ArrayProperty, Index);
	*(bool*)RESULT_PARAM = WasValid;
}

```

Uploading new plugin version shortly.

🙂

---

<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, 2015, 3:40pm UTC](https://forums.unrealengine.com/t/39-s-extra-blueprint-nodes-for-you-as-a-plugin-no-c-required/3448/1154 "2015-09-04T15:40:59Z")

</div>

> [@Shrooblord;371788](#):
>
> I’m getting an error saying “VictoryPlugin could not be loaded because the module VictoryBPLibrary could not be found.” I’ve looked in the plugin’s Source folder and… well… it’s right there. Not sure what the plugin is not seeing that I can.

My plugin is now on 4.9.0, please use prior versions if you are using a prior engine version 🙂

Unfortunately I have no easy way to notate on the wiki which version corresponds to which date.

🙂

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

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