Hi, I’m making a plugin. Inside the plugin’s module is a GameInstanceSubsystem subclass.
I started working on the plugin in ProjectA, then copied the plugin source to ProjectB.
Unfortunately, the GameInstanceSubsystem only initializes in ProjectA. It doesn’t initialize in ProjectB.
ProjectA
- Created from 4.26 source build (or 4.26 from Epic store changed to source)
- “EngineAssociation”: “{E2D6E774-46BF-7EDB-3F3B-B190DCDB23D5}”,
- My GISS works here
ProjectB is this repo (4.17), upgraded to 4.26 source build.
- From this repo: GitHub - bluebubblebee/UE4_CoopPuzzleGame: UE4 & C++ Co-op Multiplayer Puzzle Game
- Initially 4.17, but attempted to upgrade to source build.
- added DefaultBuildSettings = BuildSettingsVersion.V2;
- “EngineAssociation”: “{E2D6E774-46BF-7EDB-3F3B-B190DCDB23D5}”,
I created two other GameInstanceSubsystems in ProjectB using the Editor’s new class UI:
- One in plugin module, other in the game’s main module
- Generate Visual Studio project files
- Open and run project
- No expected output.
The two new GISS’s were implemented like this:
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Subsystems/GameInstanceSubsystem.h"
#include "OtherGameInstanceSubsystem.generated.h"
/**
*
*/
UCLASS()
class COOPPUZZLEGAME_API UOtherGameInstanceSubsystem : public UGameInstanceSubsystem
{
GENERATED_BODY()
virtual void Initialize(FSubsystemCollectionBase & Collection) override;
virtual void Deinitialize() override;
};
and
void UOtherGameInstanceSubsystem::Initialize(FSubsystemCollectionBase & Collection)
{
UE_LOG(LogTemp, Log, TEXT("Initialize UOtherGameInstanceSubsystem ..."));
}
void UOtherGameInstanceSubsystem::Deinitialize()
{
UE_LOG(LogTemp, Log, TEXT("Initialize UOtherGameInstanceSubsystem ..."));
}
I poked through the build files and didn’t see any big differences.
I tried disabling the OnlineSubsystemSteam, but I’m really just flipping switches at this point.
How do I get these GameInstanceSubsystems to initialize?
Thanks!