Large useful blueprint function library (Morepork Games)

Updated with 44 new nodes on 4.16!

BIG UPDATE!

44 new useful nodes (and a bunch of the originals have been updated, a handful removed, sorry for any inconvenience). No pretty pictures this time because it already took me all day to re-create some from other projects, clean it up and gather all the descriptions etc.

I’ve highlighted a few that I’ve used quite a lot recently.

Added:

  • Branch To Bool - Converts two execution branches to a bool
  • ClampColor - Clamps a color (per element)
  • ClampRotatorPerElement - Clamps each element of a Vector individually between a minimum and maximum.
  • Convert_RGB_to_HSL - Outputs HSL/HSV (Hue, Saturation, Luminance) values for the given color. Hue output is in degrees 0-360.
  • CycleInt - Increments an int if it is still below max, else it will reset it to min
  • Delay While - Delays as long as the condition is true. Useful where you’re not sure how long to delay because of random startup timing
  • DesaturateColor - Can be used to saturate or desaturate a color. Negative values saturate while positive values desaturate - An amount of 0 will leave the color unchanged.
  • FindTagInActors - Returns all actors in the given array that have the given actor tag.
  • ForEach Material - Does a loop for each material present on the given primitive. Useful for e.g. creating a dynamic instance of all materials on a mesh.
  • ForEachLoop Wait - Same as a regular ForEachLoop, except it will only execute each loop when triggered. Good for when you want to do latent actions in the loop body e.g. stream levels
  • ForLoopWait - Same as a regular ForLoop, except it will only execute each loop when triggered. Good for when you want to do latent actions in the loop body e.g. stream levels
  • Frame Delay - Delays for a certain number of frames.
  • Get Random Element (Copy) - Simple version of Get Random Element for arrays
  • Get Random Element (Ref) - Simple version of Get Random Element for arrays
  • Get_ALL_WidgetChildren - Gets all the child widgets of the given widget (recursively i.e. including children of children).
  • GetAllActorsRenderable - Slightly presumptuous function that gets all actors that have a mesh or particle system component in them. Could be added to.
  • GetDistFromScreenCenter - Returns a 0 to 1 value representing the player’s distance from the center of the screen (0 is exact center, 1 is edge of screen)
  • GetWidgetChildren - Gets all the DIRECT child widgets of the given widget.
  • IntToChar - Converts a 0-255 value to it’s ASCII character equivalent
  • Is Empty - Branches depending on whether the array is empty or not
  • LocalVariable_(String) - Just allows storing of a “local” variable in the event graph or in a macro, so you can compute something once and use it several times without fear of it changing.
  • LocalVariable_(Transform) - Just allows storing of a “local” variable in the event graph or in a macro, so you can compute something once and use it several times without fear of it changing.
  • LocationIsWithinVolume - Returns whether the given location is inside a volume of the given class. NOTE: Will not work if the volume isn’t of the “WorldDynamic” object type.
  • Max_(Vector) - Returns the maximum value of A and B (the return value is calculated per element, NOT on vector length i.e. Max(A.X,B.X), Max(A.Y,B.Y), Max(A.Z,B.Z) )
  • MaxOfByteArray_(Impure) - Returns the maximum value of a byte array, and the value’s index
  • MaxOrMinOfStringArray - Finds the or min of a string array (alphabetically) - this is fairly presumptuous and limited, but it’s enough to sort a list of strings (e.g. server or player names) in a rudimentary fashion that 99% of people would accept.
  • Min_(Vector) - Returns the minimum value of A and B (the return value is calculated per element, NOT on vector length i.e. Min(A.X,B.X), Min(A.Y,B.Y), Min(A.Z,B.Z) )
  • More Than X Players - Whether there are more than the given amount of players currently connected.
  • NameCompare - Compares two names
  • Random Int (No Repeat) - Gives a brand new value in the given range each time i.e. no repeats until all values are used or the macro is reset manually
  • RandomColorInRange - Returns a random color within the given range. It simply picks a value for each individual element.
  • RandomRotatorInRange - Generate a random rotation between min and max
  • RandomString - Generates a random string of ASCII characters, of the given length. If ValidChars is empty, then all chars are valid (from 32-127 only).
  • RandomVectorInRange - Generate a random vector between min and max (works per component, good for e.g. random scale)
  • RemoveAllPlayerWidgets - Removes ALL current user widgets
  • Set Level Visibility - Sets the visibility of a streaming level
  • SetMaterialQualityLevel - Sets r.MaterialQualityLevel at runtime. 0 = Low, 1 = High, 2 = Medium
  • SetScreenResolution - Sets the screen resolution (via console command). If Resolution is empty then it will just set the fullscreen mode.
  • SetVsyncEnabled - Sets vsync enabled or not, along with frames per second (via console command)
  • SnapRotatorToDegrees - Snaps a rotator to a certain amount of degrees, on all axis. Only supports whole numbers.
  • SortStringArray - Sorts a string array alphabetically or reverse-alphabetically. The “Order” output is an array of the original indices in the new order (you can use it to e.g. make another array match the new order of the one you just sorted)
  • Stream Level If Valid - Stream levels in and out with automatic validity checking
  • StripChars - Strips the given chars from the given string. If “Except” is ticked, then it strips everything BUT the given chars.
  • Wait Gate - Will fire the “Condition Met” output once the input has been fired the amount of times specified by “Condition”. If “Once Only” is checked, then successive fires are ignored. Unnamed output pin fires regardless.

Updated: (others were updated too for performance etc but these have added functionality)

  • SortFloatArray - Sorts an array by value. The “Order” output is an array of the original indices in the new order (you can use it to e.g. make another array match the new order of the one you just sorted)
  • SortIntArray - Sorts an array by value. The “Order” output is an array of the original indices in the new order (you can use it to e.g. make another array match the new order of the one you just sorted)

Removed:

  • AppendAndSetString - Annoyingly appears before the common “Append” node when typing
  • GetAllActorsWithTag - There is an official epic one now
  • GetLocalPlayerController_(Client) - Unnecessary (GetPlayerController(0) does the same thing
  • GetPlayerStateByPlayerIndex - Misleading
  • MaxOfFloatArray_(Impure) - Slower than the built-in node
  • MaxOfIntArray_(Impure) - Slower than the built-in node
  • MinOfFloatArray_(Impure) - Slower than the built-in node
  • MinOfIntArray_(Impure) - Slower than the built-in node
  • Set Array Element - The official epic one got fixed

DOWNLOAD