Convert any data type or container into readable strings in both Blueprint and C++.Whether youโre logging variables, displaying UI debug info, or formatting custom data, this plugin gives you flexible, customizable tools to turn anything into a string โ including Maps, Structs, Arrays, Sets, Objects, and even C++ std:: containers (C++).
๐ Documentation
๐ง Support Email: CrossProductDevelopments@gmail.com
๐ฎ Support Discord: Click to Join
โ Works with Unreal Engine 5.0 โ 5.6
โจ Comes with a total of 42 Nodes (27 pure, 15 callable)
๐งโ๐ป Has a total of 58 user-callable C++ function/macros akin to the nodes.
โ Features
โ Convert any type, including custom Structs and UObject classes, to a String or String Array
โ Join the string result of many different conversions together conveniently with MANY
โ Supports wildcards โ works with single values, Arrays, Sets, Maps, and nested containers
โ Dedicated nodes to convert Map Keys and Map Values separately
โ Recursive object/struct property traversal with depth control and formatting options
โ Supports C++ containers (UE-native and std::)
โ Choose between Pure nodes (quick & easy) and Callable nodes (optimized for repeated use)
โ Customize output via:
Project Settings โ Plugins โ Anything To String
Using VAR or NAME nodes (e.g. show variable names or a custom prefix)
Passing an Override object (to override certain options specified in the project settings).
๐ Change Log
V2.3 - 19th July 2025:
+ Added nodes to Blueprint: MANY, VAR: MANY, NAME: MANY (and variants) & Print Many.
V2.2.1 - 5th July 2025:
+ Added += and -= support for FAnyOverride
+ Added MANY support for all logging macros
V2.2 - 5th July 2025:
~ Fixed VAR_KEYS_ANY, NAME_KEYS_ANY, VAR_VALUES_ANY, NAME_VALUES_ANY in C++
~ Deprecated all STR_ Macros in C++, now use NAME_ Macros instead.
+ Added MANY, VAR_MANY, NAME_MANY in C++
+ Added MANY_OV, VAR_MANY_OV, NAME_MANY_OV in C++
+ Added KEYS_MANY, VAR_KEYS_MANY, NAME_KEYS_MANY in C++
+ Added VALUES_MANY, VAR_VALUES_MANY, NAME_VALUES_MANY in C++
V2.1.4 - 22th June 2025: Made all functions within AnyStr.h static
UE5.6 Support - 6th June 2025
V2.1.3 - 6th June 2025: Internally swap FString::Printf to FString::Format for custom printouts
V2.1.2 - 16th May 2025: Fix editor-made Enums (now shows name instead of value)
V2.1.1 - 17th Match 2025:
~ Fixed passing A.B.C->D kinda things to the LOGGING macros (C++ only issue).
~ Fixed printing TWeakObjectPtr<> when it's in a container in a struct/class (C++ only issue).
~ Fixed error printing to log on engine boot relating to "UIntVector2".
~ Fixed confusion about (U)IntVector2 vs (U)IntPoint (introduced from 5.1 onwards)
V2.1.0 - 16th February 2025: Refactored Logging to ALOG, DLOG, WLOG etc.
V2.0.2 - 12th February 2025:
~ Fix lambda capture of 'this' for members when using any of the VAR_, NAME_ or STR_ C++ macros.
~ UE5.5 only fix for including via C++ (already working in other versions)
V2.0.1 - 22nd December 2024: Post-upgrade hot fix
V2 & UE5.0 Support - 21st December 2024:
+ Added C++ Support:
+ ANY(): Accepts values and converts to string (Classes & Structs must be UClasses & UStructs!)
+ KEYS_ANY(): Converts a TMap/std::map/std::unordered_map key's to an array like string.
+ VALUES_ANY(): Converts a TMap/std::map/std::unordered_map values's to an array like string.
+ ANY_ARRAY(): Converts a container to an array of strings
+ ANY_FIXEDARRAY(): Converts a fixed-size container to a TArray with TFixedAllocator<N>.
+ VAR_ANY(), VAR_KEYS_ANY(), VAR_VALUES_ANY(): Prefixes the output string with the supplied parameter / expression. For overrides use VAR_ANY_OV.
+ NAME_ANY("Name", ), NAME_KEYS_ANY(), NAME_VALUES_ANY(): Allows you to prefix with a string literal (no need for TEXT()). For overrides use NAME_ANY_OV.
+ STR_ANY(MyName, ), STR_KEYS_ANY(), STR_VALUES_ANY(): Allows you to prefix with a FString. For overrides use STR_ANY_OV.
+ PRINT_STR(FString, Color, bLogToo, Duration): Prints to the screen, if you want to use VAR_, NAME_, STR_ prefixes or KEYS_ or VALUES_, simply call like PRINT_STR(VAR_ANY(Val)) for example. Color, bPrintToLog, Duration are all optional.
+ PRINT_ANY(T, Color, bLogToo, Duration), Calls PRINT_STR(ANY(T), Color, bPrintToLog, Duration). Color, bPrintToLog, Duration are all optional.
+ LOG_ANY_TEMP(Val): LogTemp at Log Verbosity *ANY(Val). Also supports LOG_VAR_, LOG_NAME_, LOG_STR_
+ LOG_ANY_TEMP_WARNING(Val): LogTemp at Warning Verbosity *ANY(Val). Also supports LOG_VAR_, LOG_NAME_, LOG_STR_
+ LOG_ANY_TEMP_ERROR(Val): LogTemp at Error Verbosity *ANY(Val). Also supports LOG_VAR_, LOG_NAME_, LOG_STR_
+ LOG_ANY(Category, Verbosity, Val): Full log message with category & verbosity control using *ANY(Val). Also supports LOG_VAR_, LOG_NAME_, LOG_STR_
+ support for Pair and Tuple (both UE5 & C++ std versions).
+ C++ member functions "FString ToString() const" will be found and used instead for ANY (C++ only).
+ Expanded Class/Struct Field Iteration:
+ Support for UObjects
+ Recursion Parentage Search Depth Limits
+ Recursion Object Filtering
+ Recursion Depth Limits
+ Recursion Parentage Filtering
+ Filter on field PropertyFlags
+ Tabulation & newlining options, spaces, tabs etc.
+ Debug print types, class names, field names.
+ Override system, all nodes now have the option to take in an override struct, this can override things like newlining etc.
+ Added Print Self Nodes: "ANY SELF" and "NAME: ANY SELF".
~ Fixed crash plugging in 'Self' into normal ANY-like nodes (still not functional, UE limitation, but will warn instead of crash)
~ Improved Delegate Support
~ Improved Interface Support
~ Exposed a variety of formatting specifications to the settings to allow custom print outs.
UE5.5 Support - 15th November 2024
UE5.4 Support - 28th April 2024
V1.1.1 - 10th March 2024: Updated Icons
V1.1 - 16th February 2024:
+ Added VAR and NAME Nodes
+ Print Any now supports VAR and NAME. Default duration changed to 20 sec.
+ Improved Interface printing support so it will now also print the underlying object name as well as the interface name.
V1 - 13th January 2024: Initial Release (UE5.1 - UE5.3)