Function Libraries🔗
Interacting with unreal from scripts often happens through function libraries. These are exposed to script as namespaces containing a set of related functions.
For example, to set a timer you can call System::SetTimer()
:
Common Libraries🔗
Clicking the library will bring you to the API documentation for them, listing the available functions:
- Math:: - All standard math functionality
- Gameplay:: - Game functionality such as streaming, damage, player handling
- System:: - Engine functionality such as timers, traces, debug rendering
- Niagara:: - Spawning and controlling particle systems
- Widget:: - UMG widget functionality
Namespace Simplification🔗
The functions for function libraries in script are automatically taken from blueprint function library classes in C++.
Before binding, the angelscript plugin simplifies the name of the class to make a shorter namespace.
For example, the functions in the System::
namespace are automatically sourced from the UKismetSystemLibrary
class in C++.
Common prefixes and suffixes that get stripped automatically are:
- U...Statics
- U...Library
- U...FunctionLibrary
- UKismet...Library
- UKismet...FunctionLibrary
- UBlueprint...Library
- UBlueprint...FunctionLibrary
For some examples of how namespaces are simplified:
UNiagaraFunctionLibrary
becomesNiagara::
UWidgetBlueprintLibrary
becomesWidget::
UKismetSystemLibrary
becomesSystem::
UGameplayStatics
becomesGameplay::
Math Library🔗
Because blueprint and C++ have fairly different ways of doing math code, we have decided to keep the Math::
namespace in script closer to the C++ FMath::
namespace in general.
Sticking closer to C++ math eases the transition for experienced programmers and lets code be ported between the two more easily.
This means that UKismetMathLibrary
gets ignored for automatic binding.