DetailGroup.AddWidgetRow() wont build throws unresolved external symbols

I’m trying to create a custom spline component so that I can add custom metadata to each spline point. I’m following along the code they have in their repo, but when I try to add the slate sliders, I get tons of unresolved externals. Heres some of the few below. Does anyone know what I’m missing here?

	DetailGroup.AddWidgetRow()
		.RowTag("Depth")
		.FilterString(LOCTEXT("Depth", "Depth"))
		.Visibility(TAttribute<EVisibility>(this, &FWaterSplineMetadataDetails::IsDepthVisible))
		.NameContent()
		.HAlign(HAlign_Left)
		.VAlign(VAlign_Center)
		[
			SNew(STextBlock)
			.Text(LOCTEXT("Depth", "Depth"))
			.ToolTipText(LOCTEXT("RiverDepth_Tooltip", "The depth of the river at this spline point. Affects the terrain carving and collision"))
			.Font(IDetailLayoutBuilder::GetDetailFont())
		]
		.ValueContent()
		.MinDesiredWidth(125.0f)
		.MaxDesiredWidth(125.0f)
		[
			SNew(SNumericEntryBox<float>)
			.Value(this, &FWaterSplineMetadataDetails::GetDepth)
			.AllowSpin(true)
			.MinValue(0.0f)
			// Because we have no upper limit in MaxSliderValue, we need to "unspecify" the max value here, otherwise the spinner has a limited range,
			//  with TNumericLimits<NumericType>::Max() as the MaxValue and the spinning increment is huge
			.MaxValue(TOptional<float>()) 
			.MinSliderValue(0.0f)
			.MaxSliderValue(TOptional<float>()) // No upper limit
			.OnBeginSliderMovement(this, &FWaterSplineMetadataDetails::OnBeginSliderMovement)
			.OnEndSliderMovement(this, &FWaterSplineMetadataDetails::OnEndSliderMovement)
			.UndeterminedString(LOCTEXT("Multiple", "Multiple"))
			.OnValueCommitted(this, &FWaterSplineMetadataDetails::OnSetDepth)
			.OnValueChanged(this, &FWaterSplineMetadataDetails::OnSetDepth, ETextCommit::Default)
			.Font(IDetailLayoutBuilder::GetDetailFont())
		];

Sample Errors:

unresolved external symbol "__declspec(dllimport) public: class FReply & __cdecl FReply::SetUserFocus(class TSharedRef<class SWidget,1>,enum EFocusCause,bool)" (__imp_?SetUserFocus@FReply@@QEAAAEAV1@V?$TSharedRef@VSWidget@@$00@@W4EFocusCause@@_N@Z) referenced in function "private: virtual class FReply __cdecl SNumericEntryBox<float>::OnFocusReceived(struct FGeometry const &,struct FFocusEvent const &)" (?OnFocusReceived@?$SNumericEntryBox@M@@EEAA?AVFReply@@AEBUFGeometry@@AEBUFFocusEvent@@@Z)
unresolved external symbol "__declspec(dllimport) protected: void __cdecl SlateAttributePrivate::ISlateAttributeContainer::RemoveContainerWidget(class SWidget &)" (__imp_?RemoveContainerWidget@ISlateAttributeContainer@SlateAttributePrivate@@IEAAXAEAVSWidget@@@Z) referenced in function "public: virtual __cdecl TWidgetSlotWithAttributeSupport<class SHorizontalBox::FSlot>::~TWidgetSlotWithAttributeSupport<class SHorizontalBox::FSlot>(void)" (??1?$TWidgetSlotWithAttributeSupport@VFSlot@SHorizontalBox@@@@UEAA@XZ)
unresolved external symbol "__declspec(dllimport) protected: void __cdecl SlateAttributePrivate::FSlateAttributeImpl::ProtectedUnregisterAttribute(class SWidget &,enum SlateAttributePrivate::ESlateAttributeType)const " (__imp_?ProtectedUnregisterAttribute@FSlateAttributeImpl@SlateAttributePrivate@@IEBAXAEAVSWidget@@W4ESlateAttributeType@2@@Z) referenced in function "public: bool __cdecl SlateAttributePrivate::TSlateAttributeBase<class SWidget,bool,struct SlateAttributePrivate::FSlateAttributeNoInvalidationReason,struct TSlateAttributeComparePredicate<struct TEqualTo<void> >,0>::Assign(class SWidget &,class TAttribute<bool> &&,enum ESlateAttributeBindAction)" (?Assign@?$TSlateAttributeBase@VSWidget@@_NUFSlateAttributeNoInvalidationReason@SlateAttributePrivate@@U?$TSlateAttributeComparePredicate@U?$TEqualTo@X@@@@$0A@@SlateAttributePrivate@@QEAA_NAEAVSWidget@@$$QEAV?$TAttribute@_N@@W4ESlateAttributeBindAction@@@Z)
unresolved external symbol "__declspec(dllimport) protected: void __cdecl SlateAttributePrivate::FSlateAttributeImpl::ProtectedRegisterAttribute(class SWidget &,enum SlateAttributePrivate::ESlateAttributeType,class TUniquePtr<class SlateAttributePrivate::ISlateAttributeGetter,struct TDefaultDelete<class SlateAttributePrivate::ISlateAttributeGetter> > &&)" (__imp_?ProtectedRegisterAttribute@FSlateAttributeImpl@SlateAttributePrivate@@IEAAXAEAVSWidget@@W4ESlateAttributeType@2@$$QEAV?$TUniquePtr@VISlateAttributeGetter@SlateAttributePrivate@@U?$TDefaultDelete@VISlateAttributeGetter@SlateAttributePrivate@@@@@@@Z) referenced in function "private: void __cdecl SlateAttributePrivate::TSlateAttributeBase<class SWidget,bool,struct SlateAttributePrivate::FSlateAttributeNoInvalidationReason,struct TSlateAttributeComparePredicate<struct TEqualTo<void> >,0>::ConstructWrapper(class SWidget &,class TDelegate<bool __cdecl(void),struct FDefaultDelegateUserPolicy> &&,enum ESlateAttributeBindAction)" (?ConstructWrapper@?$TSlateAttributeBase@VSWidget@@_NUFSlateAttributeNoInvalidationReason@SlateAttributePrivate@@U?$TSlateAttributeComparePredicate@U?$TEqualTo@X@@@@$0A@@SlateAttributePrivate@@AEAAXAEAVSWidget@@$$QEAV?$TDelegate@$$A6A_NXZUFDefaultDelegateUserPolicy@@@@W4ESlateAttributeBindAction@@@Z)

You either don’t have the widget class included, or the Slate / SlateCore module added to your build dependencies.

How do I add these to my build dependencies? I tried to do this in my editor.target.cs but didn’t seem to help. Is there something else I need to do?

using UnrealBuildTool;
using System.Collections.Generic;

public class MyProjectsEditorTarget : TargetRules
{
	public MyProjectEditorTarget(TargetInfo Target) : base(Target)
	{
		Type = TargetType.Editor;
		DefaultBuildSettings = BuildSettingsVersion.V5;

		ExtraModuleNames.AddRange( new string[] { 
            "Core",
            "CoreUObject",
            "Engine",
            "Slate",
            "InputCore",
            "RenderCore",
            "SlateCore",
            "UnrealEd",
            "MyProject"
        } );
}
}