Editor Crashing on cast to gamestate while trying to retrieve my item datatable.

Am I constructing it incorrectly?

InventoryComponent = CreateDefaultSubobject<UMInventoryComponent>(TEXT("InventoryComponent"));
	UPROPERTY(VisibleAnywhere, Category = Inventory)
		UMInventoryComponent* InventoryComponent;

Or am i missing doing something?

component header

UCLASS( ClassGroup=(Inventory), meta=(BlueprintSpawnableComponent) )
class MGAME_API UMInventoryComponent : public UActorComponent
{
	GENERATED_BODY()

public:	
	// Sets default values for this component's properties
	UMInventoryComponent();

	UFUNCTION(BlueprintCallable)
		void AddItem(FName ItemID, AMItem* Item);

	// Equipment inventory
	UPROPERTY(EditAnywhere)
		TArray<FItem> Inventory;

protected:
	// Called when the game starts
	virtual void BeginPlay() override;
};

cpp

// Sets default values for this component's properties
UMInventoryComponent::UMInventoryComponent()
{

}

// Called when the game starts
void UMInventoryComponent::BeginPlay()
{
	Super::BeginPlay();

}

void UMInventoryComponent::AddItem(FName ItemID, AMItem* Item)
{
	AMGameGameModeBase* GameMode = Item->GetMyGameMode();
	bool bItemFound = false;
	FItem ItemFound = GameMode->FindItem(Item->ID, bItemFound);
	if (bItemFound == true)
	{
		FItem NewItem;
		NewItem.ID = Item->ID;
		NewItem.Quantity = ItemFound.Quantity;
		NewItem.MainParameters.Abbreviation = ItemFound.MainParameters.Abbreviation;
		NewItem.MainParameters.EquipType = ItemFound.MainParameters.EquipType;
		NewItem.MainParameters.InspectImage = ItemFound.MainParameters.InspectImage;
		NewItem.MainParameters.InventoryImage = ItemFound.MainParameters.InventoryImage;
		NewItem.MainParameters.IsUsable = ItemFound.MainParameters.IsUsable;
		NewItem.MainParameters.Name = ItemFound.MainParameters.Name;
		NewItem.MainParameters.SizeX = ItemFound.MainParameters.SizeX;
		NewItem.MainParameters.SizeY = ItemFound.MainParameters.SizeY;
		NewItem.MainParameters.StackSize = ItemFound.MainParameters.StackSize;
		NewItem.MainParameters.UseType = ItemFound.MainParameters.UseType;
		NewItem.Mesh.SkeletalMesh = ItemFound.Mesh.SkeletalMesh;
		NewItem.Mesh.StaticMesh = ItemFound.Mesh.StaticMesh;
		
		Inventory.Add(NewItem);
		GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor(255, 255, 255), "ADD ITEM");
	}
}