How to add a viewport to custom editor window?

I’ve been recently working on this for another project. You can’t move your actors by default. You’ll have to implement this logic yourself. You can copy most of the functionality from SLevelViewport / FLevelEditorViewportClient (used in the level editor) or from SSCSEditorViewport / FSCSEditorViewportClient (the blueprint editor). It requires some work but it can be done

Override the following functions in the viewport client and implement them like the way they are done in the level editor or the blueprint editor

virtual bool InputWidgetDelta( FViewport* Viewport, EAxisList::Type CurrentAxis, FVector& Drag, FRotator& Rot, FVector& Scale ) override;
virtual void TrackingStarted( const struct FInputEventState& InInputState, bool bIsDraggingWidget, bool bNudge ) override;
virtual void TrackingStopped() override;
virtual void AbortTracking() override;

virtual void ProcessClick(FSceneView& View, HHitProxy* HitProxy, FKey Key, EInputEvent Event, uint32 HitX, uint32 HitY) override;

You’ll also need a lot of other supporting code to be copied to your plugin and modified locally for snapping and spawning to work (as they depend on FLevelEditorViewportClient, which you cannot use if you want to host your own world)