UHL - unreal helper library, toolset to help developers working with AI, GAS, customizing editor and so on. Goal is to became a tool that insta-installed on new project creation.
UPDATE: With UHL v2.0 update its set of plugins that can be installed independently:
Support: UE5.6 (at least)
// install as git submodule to your plugins folder
git submodule add https://github.com/Ciberusps/unreal-helper-library.git ./Plugins/UnrealHelperLibrary
// to update plugin
git submodule update --init --recursive --checkoutgit submodule add https://github.com/Ciberusps/UHL.git ./Plugins/UHL
git submodule add https://github.com/Ciberusps/UHLGAS.git ./Plugins/UHLGAS
git submodule add https://github.com/Ciberusps/UHLAI.git ./Plugins/UHLAI
git submodule add https://github.com/Ciberusps/UHLStateTree.git ./Plugins/UHLStateTree
git submodule add https://github.com/Ciberusps/UHLBehaviorTree.git ./Plugins/UHLBehaviorTree
git submodule add https://github.com/Ciberusps/UHLCharacter.git ./Plugins/UHLCharacter
git submodule add https://github.com/Ciberusps/UHLCommonMaps.git ./Plugins/UHLCommonMaps
git submodule add https://github.com/Ciberusps/UHLDebugSystem.git ./Plugins/UHLDebugSystem
// to update plugins
git submodule update --init --remote --recursiveNote
Don't forget to update your README.md with instructions on how to setup - git submodule update --init --recursive and how to update submodules/plugin(s) - git submodule update --remote
Note
Add Editor Preferences -> Force Compilation on Startup in Config/EditorPerProjectUserSettings.ini your team don't want to recompile plugin manually 😉
https://www.fab.com/listings/9f7d82e9-bc72-42ff-b302-b3d6562bd4c8
Click on headers to know more about plugins
Basic utils for creating AI that most projects needs have two version for BehaviorsTrees/StateTrees with same functionality contains AI nodes for UHLBehaviorTrees & UHLStateTree
SetGameplayFocus- set focus on actor (Move/Gameplay)InRange- check distance to enemyInAngle- check angle to enemyPlayAnimMontage- play attack animationInvokeGameplayAbility- activate/deactivate GAS Gameplay Ability by tag, with optional "wait for finishing"TurnTo- turn enemy using turn animations
Gameplay Ability System - Lyra based plugin - Lyra inputs, input cache, attribute set, ability system config, ability sets. GAS features provides much smoother GAS experience mostly based on. All GAS features designed in mind that they or their part can be added or dropped by you in development in any time and replaced by something custom that fits your project needs
GAS scaled for medium+ teams by AbilitySets/AbilitySystemConfig separated
Gameplay DebugCategories ability-like System. Mostly limited set of gameplay debugging tools being used, so UHLDebugSystem makes it easier to creating/enabling your gameplay DebugCategories by providing ability-like system, you can control that one DebugCategory disables another category by tags.
Literaly button with common maps thats all. Based on Lyra CommonMaps(EditorPlugin) but extended with ability to select folder with maps
- UnrealHelperLibrary - main module with GAS helper classes, AI behavior tree nodes, Blueprint Function Libraries. Most functionality can be tested in
Gyms(maps for testing atomic/single gameplay mechanic), allGymslocated in/Plugins/UnrealHelperLibrary/Content/Gyms - UHL - utility functions like
GetProjectVersion,GetAssetsOfClass,GetHighestPoint. Editor - editor customization, e.g.Custom thumnails,Custom class icon - UHL Utils (EditorUtilityWidget) - widget with tools helping you make trivial things, like
ConvertToORMquite often task when you want to combine 3 texturesOcclusion,Roughness,Metalicin one ORM texture - UnrealHelperEditor - optional module with editor customization, e.g. custom thumnails, custom class icons
Default character class with UHL interfaces implemented, so you don't need to do it by yourself
if already have plugin
-
checkout main
-
commit UnrealHelperLibrary change
-
run command -
git submodule update --init --recursive -
UHL CommonMaps - in
Config/DefaultGamerename section from [/Script/CommonMaps.UHLCommonMapsDeveloperSettings] -> [/Script/UHLCommonMaps.UHLCommonMapsDeveloperSettings]
git submodule add https://github.com/Ciberusps/UHL.git ./Plugins/UHL
git submodule add https://github.com/Ciberusps/UHLAI.git ./Plugins/UHLAI
git submodule add https://github.com/Ciberusps/UHLBehaviorTree.git ./Plugins/UHLBehaviorTree
git submodule add https://github.com/Ciberusps/UHLStateTree.git ./Plugins/UHLStateTree
git submodule add https://github.com/Ciberusps/UHLCharacter.git ./Plugins/UHLCharacter
git submodule add https://github.com/Ciberusps/UHLCommonMaps.git ./Plugins/UHLCommonMaps
git submodule add https://github.com/Ciberusps/UHLDebugSystem.git ./Plugins/UHLDebugSystem
git submodule add https://github.com/Ciberusps/UHLGAS.git ./Plugins/UHLGAS- all modules moved to separate plugins and made as independent as possible now dependency tree looks like
- dependency tree:
- UHLAI
- UHLBehaviorTree
- UHLStateTree
- UHLCharacter
- UHLGAS
- UHLCharacter
- UHL
- UHLCharacter
- UHLCommonMaps
- UHLDebugSystem
- UHLCharacter
- UHLAI
- UHLSettings moved to UHLAISettings now UHLStateTree and UHLBehaviorTree independent from core "UHL" plugin and can be used completly separatly from it. UHLStateTree and UHLBehaviorTree depends only on UHLAI


