ALS and Game features

Been currently banging my head against the wall, and I was just able to get it all to work. Here is my insight. I am giving it to you all in hopes this alleviates similar frustrations. Goal. Get ALS character spawned in a game feature.

  1. Use GitHub - Sixze/ALS-Refactored: Completely reworked and improved C++ version of Advanced Locomotion System V4. . This is the best version.
  2. Starting with a Lyra Sample project.
  3. ALS will remain a plugin.
  4. Create a new C++ Game feature.
  5. Copied the shooter core uplugin dependencies. You can add these in editor under edit->plugins-> edit .
  6. Add ALS as a dependency to .uplugin file. Add ALS as a public dependency module to the build.cs file. I currently use. Core",“LyraGame”,“ModularGameplay”,“CommonGame”,“ALS” .

I threw in the following under private dependency modules for good measure.

“CoreUObject”,
“Engine”,
“Slate”,
“SlateCore”,
“GameplayTags”,
“GameplayTasks”,
“GameplayAbilities”,
“GameplayMessageRuntime”,
“CommonUI”,
“UMG”,
“DataRegistry”,
“AsyncMixin”,
“EnhancedInput”,
“GameSubtitles”,
“DeveloperSettings”,
“AIModule”

  1. Create/Configure your GameFeatureData
  2. Create/Configure a new LyraInputConfig Data asset
  3. Create/Configure your InputMappingContext
  4. Create/Configure a new LyraPawnData . You can use the ALS character here
  5. Create/Configure a new LyraExperience Definition.
  6. Create/Configure LyraAbilitySet, LyraActionSet.
  7. Hook it up your experience.
  8. Create a new level. Set the experience in it accordingly.
  9. In the GameFeatureData file, compare it to ShooterCore and ShooterExplorer. Note now they handle loading with the primary asset manager.
  10. Don’t recompile your project while the game feature you are working on is active. This will crash the editor.
  11. In Project settings ->AssetManager–>PrimaryAssetTypes to scan, make sure that your GameFeatureData is loaded. This can be through a directory, but I recommend using the specific assets category. Save and Relaunch the editor. This ensures Unreal will find the new GameFeatureData. Otherwise you will get the default user experience.