Skip to content

NarrativeGMC — Migration Guide

Prerequisites

  1. Unreal Engine 5.7
  2. GMCv2 v2.3.7+ installed (Fab)
  3. GMCAbilitySystem v1.3+ compiled (GitHub)
  4. NarrativePro v2.2.6+ installed (Fab)

Installation

  1. Copy NarrativeGMC/ folder to your project's Plugins/ directory
  2. Add to your .uproject:
    { "Name": "NarrativeGMC", "Enabled": true }
    
  3. Build the project (requires C++ compilation)

Replacing NarrativePro Classes

Instead of... Use...
BP_NarrativePlayerCharacter Create BP inheriting ANarrativeGMCPlayerPawn
BP_NarrativeNPCCharacter Create BP inheriting ANarrativeGMCNPCPawn
ANarrativePlayerController ANarrativeGMCPlayerController
ANarrativePlayerState ANarrativeGMCPlayerState
Your GameMode ANarrativeGMCGameMode (or set classes manually)

Setting Up Attributes

  1. Create a UGMCAttributesData data asset
  2. Add 10 attributes (see docs/ATTRIBUTE-MAPPING.md)
  3. On your player/NPC Blueprint, set AbilitySystemComponent > AttributeDataAssets

Setting Up Abilities

  1. In Project Settings > GameplayTags, create tags: Ability.Jump, Ability.Sprint, Ability.Crouch, Ability.Dodge, Ability.Death, Ability.Block, Ability.Aim, Ability.Reload, Ability.Fire.Hitscan, Ability.ToggleHolster
  2. On your pawn Blueprint, set AbilitySystemComponent > Starting Abilities
  3. Create input bindings that call AbilitySystemComponent > QueueAbility

Quest/Dialogue System

The UTalesComponent lives on ANarrativeGMCPlayerController — same as NarrativePro. Quest and dialogue functionality works identically. Access via:

ANarrativeGMCPlayerController* PC = Cast<ANarrativeGMCPlayerController>(GetController());
UTalesComponent* Tales = PC->GetTalesComponent();

Inventory/Equipment

Both UNarrativeInventoryComponent and UEquipmentComponent are composed directly on ANarrativeGMCPawn. They work identically to NarrativePro.

Key Differences from NarrativePro

  1. No ACharacter — your pawn is APawn-based (GMC), not ACharacter
  2. No GAS — all abilities use GMAS, not GameplayAbilities
  3. No CharacterMovementComponent — movement uses GMC's OrganicMovementComponent
  4. ASC on Pawn — ability system is on the pawn, not PlayerState
  5. Gameplay Tags — GMAS uses the same FGameplayTag system but manages tags differently