Editor Crash on Play [RESOLVED]

This is not so much a question as a solution. I ran into this problem today and tore my hair out for the better part of the day, and wanted to share my solution for anyone who comes across this in the future. I finally scrapped the whole level and started over. The reason the editor was crashing on play is because I had declared an actor in the .h file, called the actor in the .cpp file but never loaded it in the editor. I don’t know why that would cause the editor to crash but. So, if you are having this problem this may be the reason. I hope this tidbit of “NEWB KNOWLEDGE” saves someone hours of frustration and line-by-line debugging. Here is my class.
.H FILE

// .h file

#pragma once

#include "Components/ActorComponent.h"
#include "PessurePlate.generated.h"


UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) )
class ESCAPE_API UPessurePlate : public UActorComponent
{
	GENERATED_BODY()

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

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

	void DoorClose();

	void DoorOpen();

	void PlateDown();

	void PlateUp();

	void OpenDoor();
	
	// Called every frame
	virtual void TickComponent( float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction ) override;

private:
	UPROPERTY(VisibleAnywhere)
		AActor* Player;
	UPROPERTY(VisibleAnywhere)
		AActor* Plate;
	UPROPERTY(VisibleAnywhere)
		float LastOpenTime;

	UPROPERTY(EditAnywhere)
		float PlateZPosUp;
	UPROPERTY(EditAnywhere)
		float PlateZPosDown;
	UPROPERTY(EditAnywhere)
		AActor* Door;
	UPROPERTY(EditAnywhere)
		ATriggerVolume* Trigger;
	UPROPERTY(EditAnywhere)
		float DoorCloseDelay = 1.0f;

};

CPP FILE

// .cpp file

#include "Escape.h"
#include "PessurePlate.h"


// Sets default values for this component's properties
UPessurePlate::UPessurePlate()
{
	// Set this component to be initialized when the game starts, and to be ticked every frame.  You can turn these features
	// off to improve performance if you don't need them.
	bWantsBeginPlay = true;
	PrimaryComponentTick.bCanEverTick = true;

	// ...
}


// Called when the game starts
void UPessurePlate::BeginPlay()
{
	Super::BeginPlay();
	Player = GetWorld()->GetFirstPlayerController()->GetPawn();
	Plate = GetOwner();
}

void UPessurePlate::DoorClose() {
	FRotator DoorPos = FRotator(0.0f, -90.0f, 0.0f);
	Door->SetActorRotation(DoorPos);
}

void UPessurePlate::DoorOpen() {
	FRotator DoorPos = FRotator(0.0f, -180.0f, 0.0f);
	Door->SetActorRotation(DoorPos);
}

void UPessurePlate::PlateDown() {
	FVector PlateLoc = Plate->GetActorLocation();
	PlateLoc.Z = PlateZPosDown;
	Plate->SetActorLocation(PlateLoc);
}

void UPessurePlate::PlateUp() {
	FVector PlateLoc = Plate->GetActorLocation();
	PlateLoc.Z = PlateZPosUp;
	Plate->SetActorLocation(PlateLoc);

}

// Called every frame
void UPessurePlate::TickComponent( float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction )
{
	Super::TickComponent( DeltaTime, TickType, ThisTickFunction );
	if (Plate->IsOverlappingActor(Player)) {
		PlateDown();
		DoorOpen();
		LastOpenTime = GetWorld()->GetTimeSeconds();
	} else {
		PlateUp();
	}
	if (GetWorld()->GetTimeSeconds() - LastOpenTime > DoorCloseDelay) {
		DoorClose();
	}
}