diff --git a/Source/Framework/Public/Core/GM_CoreGameMode.h b/Source/Framework/Public/Core/GM_CoreGameMode.h index d1f04e8..a87b92d 100644 --- a/Source/Framework/Public/Core/GM_CoreGameMode.h +++ b/Source/Framework/Public/Core/GM_CoreGameMode.h @@ -14,8 +14,6 @@ // Forward declarations class UGI_GameFramework; class AGS_CoreGameState; -class APC_CoreController; -class APS_CorePlayerState; // Delegates DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnChapterTransition, FGameplayTag, NewChapter); @@ -29,6 +27,10 @@ DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnGameOverTriggered, FGameplayTag, * death routing, and coordinates with the narrative system for story progression. * * Server-authoritative. Extends AGameModeBase for replication support. + * + * Note: PlayerControllerClass, PlayerStateClass, and GameStateClass are + * inherited from AGameModeBase — do not redeclare (UHT forbids shadowing). + * Set them in your BP child's Class Defaults. */ UCLASS() class FRAMEWORK_API AGM_CoreGameMode : public AGameModeBase @@ -38,19 +40,6 @@ class FRAMEWORK_API AGM_CoreGameMode : public AGameModeBase public: AGM_CoreGameMode(); - // ======================================================================== - // Default Classes (Set in Blueprint or Config) - // ======================================================================== - - UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Framework|Classes") - TSubclassOf PlayerControllerClass; - - UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Framework|Classes") - TSubclassOf PlayerStateClass; - - UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Framework|Classes") - TSubclassOf GameStateClass; - // ======================================================================== // Chapter Management // ======================================================================== diff --git a/Source/Framework/Public/Core/I_InterfaceLibrary.h b/Source/Framework/Public/Core/I_InterfaceLibrary.h index de73d58..20a6cc8 100644 --- a/Source/Framework/Public/Core/I_InterfaceLibrary.h +++ b/Source/Framework/Public/Core/I_InterfaceLibrary.h @@ -20,7 +20,7 @@ class UDA_InteractionData; // I_Interactable — World objects the player can interact with // ============================================================================ -UINTERFACE(MinimalAPI, BlueprintType, meta = (CannotImplementInterfaceInBlueprint)) +UINTERFACE(MinimalAPI, BlueprintType) class UInteractable : public UInterface { GENERATED_BODY() diff --git a/docs/developer/cpp-integration-guide.md b/docs/developer/cpp-integration-guide.md index f146278..f234ac9 100644 --- a/docs/developer/cpp-integration-guide.md +++ b/docs/developer/cpp-integration-guide.md @@ -176,9 +176,10 @@ When ready for the full GameInstance: ### Blueprint Child Setup 1. Create Blueprint Class → Parent: `GM_CoreGameMode` 2. Name: `BP_CoreGameMode` -3. In Class Defaults: - - `GameState Class` → your `BP_CoreGameState` - - `PlayerController Class` → your `BP_CorePlayerController` +3. In Class Defaults (Class Defaults → Classes section, inherited from `AGameModeBase`): + - `Player Controller Class` → your `PC_CoreController` BP child + - `Player State Class` → your `PS_CorePlayerState` BP child + - `Game State Class` → your `BP_CoreGameState` - `Default Pawn Class` → your player pawn - `HUD Class` → your `WBP_HUDController`