diff --git a/Source/DisplayClusterExtensions/Private/VirtualRealityPawn.cpp b/Source/DisplayClusterExtensions/Private/VirtualRealityPawn.cpp
index 9390d1ad170b15cbe434c528d491b8f7a09f03c5..4f272da0fdf5b8fbf2e3d768a6d3d685faf1ac88 100644
--- a/Source/DisplayClusterExtensions/Private/VirtualRealityPawn.cpp
+++ b/Source/DisplayClusterExtensions/Private/VirtualRealityPawn.cpp
@@ -9,6 +9,7 @@
 #include "Kismet/GameplayStatics.h"
 #include "DisplayClusterSettings.h"
 #include "HeadMountedDisplayFunctionLibrary.h"
+#include "IDisplayClusterConfigManager.h"
 #include "IDisplayCluster.h"
 #include "IXRTrackingSystem.h"
 
@@ -98,6 +99,14 @@ bool                           AVirtualRealityPawn::IsHeadMountedMode
   return GEngine->XRSystem.IsValid() && GEngine->XRSystem->IsHeadTrackingAllowed();
 }
 
+FString                        AVirtualRealityPawn::GetNodeName                         ()
+{
+  return IsRoomMountedMode() ? IDisplayCluster::Get().GetClusterMgr()->GetNodeId() : FString(TEXT("Localhost"));
+}
+float                          AVirtualRealityPawn::GetEyeDistance()
+{
+  return IDisplayCluster::Get().GetConfigMgr()->GetConfigStereo().EyeDist;
+}
 
 float                          AVirtualRealityPawn::GetBaseTurnRate                     () const
 {
@@ -176,7 +185,7 @@ void                           AVirtualRealityPawn::BeginPlay
     LeftHand  = Flystick;
     RightHand = Flystick;
 
-    // TODO
+    RootComponent->SetWorldLocation(FVector(0, 2, 0), false, nullptr, ETeleportType::None);
   }
   else if (IsHeadMountedMode())
   {
@@ -223,24 +232,25 @@ void                           AVirtualRealityPawn::SetupPlayerInputComponent
   Super::SetupPlayerInputComponent(PlayerInputComponent);
   if (PlayerInputComponent)
   {
-    PlayerInputComponent->BindAxis                   ("MoveForward"             , this, &AVirtualRealityPawn::OnForward             );
-    PlayerInputComponent->BindAxis                   ("MoveRight"               , this, &AVirtualRealityPawn::OnRight               );
-    PlayerInputComponent->BindAxis                   ("TurnRate"                , this, &AVirtualRealityPawn::OnTurnRate            );
-    PlayerInputComponent->BindAxis                   ("LookUpRate"              , this, &AVirtualRealityPawn::OnLookUpRate          );
-
-    PlayerInputComponent->BindAction<FFireDelegate>  ("Fire"       , IE_Pressed , this, &AVirtualRealityPawn::OnFire      , true    );
-    PlayerInputComponent->BindAction<FActionDelegate>("Action1"    , IE_Pressed , this, &AVirtualRealityPawn::OnAction    , true , 1);
-    PlayerInputComponent->BindAction<FActionDelegate>("Action2"    , IE_Pressed , this, &AVirtualRealityPawn::OnAction    , true , 2);
-    PlayerInputComponent->BindAction<FActionDelegate>("Action3"    , IE_Pressed , this, &AVirtualRealityPawn::OnAction    , true , 3);
-    PlayerInputComponent->BindAction<FActionDelegate>("Action4"    , IE_Pressed , this, &AVirtualRealityPawn::OnAction    , true , 4);
-    PlayerInputComponent->BindAction<FActionDelegate>("Action5"    , IE_Pressed , this, &AVirtualRealityPawn::OnAction    , true , 5);
-    
-    PlayerInputComponent->BindAction<FFireDelegate>  ("Fire"       , IE_Released, this, &AVirtualRealityPawn::OnFire      , false   );
-    PlayerInputComponent->BindAction<FActionDelegate>("Action1"    , IE_Released, this, &AVirtualRealityPawn::OnAction    , false, 1);
-    PlayerInputComponent->BindAction<FActionDelegate>("Action2"    , IE_Released, this, &AVirtualRealityPawn::OnAction    , false, 2);
-    PlayerInputComponent->BindAction<FActionDelegate>("Action3"    , IE_Released, this, &AVirtualRealityPawn::OnAction    , false, 3);
-    PlayerInputComponent->BindAction<FActionDelegate>("Action4"    , IE_Released, this, &AVirtualRealityPawn::OnAction    , false, 4);
-    PlayerInputComponent->BindAction<FActionDelegate>("Action5"    , IE_Released, this, &AVirtualRealityPawn::OnAction    , false, 5);
+    PlayerInputComponent->BindAxis                   ("MoveForward"    , this, &AVirtualRealityPawn::OnForward   );
+    PlayerInputComponent->BindAxis                   ("MoveRight"      , this, &AVirtualRealityPawn::OnRight     );
+    PlayerInputComponent->BindAxis                   ("TurnRate"       , this, &AVirtualRealityPawn::OnTurnRate  );
+    PlayerInputComponent->BindAxis                   ("LookUpRate"     , this, &AVirtualRealityPawn::OnLookUpRate);
+
+    // The button names are based on the definitions in aixcave_422.cfg.
+    PlayerInputComponent->BindAction<FFireDelegate>  ("nDisplayButton0", IE_Pressed , this, &AVirtualRealityPawn::OnFire  , true    );
+    PlayerInputComponent->BindAction<FActionDelegate>("nDisplayButton1", IE_Pressed , this, &AVirtualRealityPawn::OnAction, true , 1);
+    PlayerInputComponent->BindAction<FActionDelegate>("nDisplayButton2", IE_Pressed , this, &AVirtualRealityPawn::OnAction, true , 2);
+    PlayerInputComponent->BindAction<FActionDelegate>("nDisplayButton3", IE_Pressed , this, &AVirtualRealityPawn::OnAction, true , 3);
+    PlayerInputComponent->BindAction<FActionDelegate>("nDisplayButton4", IE_Pressed , this, &AVirtualRealityPawn::OnAction, true , 4);
+    PlayerInputComponent->BindAction<FActionDelegate>("nDisplayButton5", IE_Pressed , this, &AVirtualRealityPawn::OnAction, true , 5);
+
+    PlayerInputComponent->BindAction<FFireDelegate>  ("nDisplayButton0", IE_Released, this, &AVirtualRealityPawn::OnFire  , false   );
+    PlayerInputComponent->BindAction<FActionDelegate>("nDisplayButton1", IE_Released, this, &AVirtualRealityPawn::OnAction, false, 1);
+    PlayerInputComponent->BindAction<FActionDelegate>("nDisplayButton2", IE_Released, this, &AVirtualRealityPawn::OnAction, false, 2);
+    PlayerInputComponent->BindAction<FActionDelegate>("nDisplayButton3", IE_Released, this, &AVirtualRealityPawn::OnAction, false, 3);
+    PlayerInputComponent->BindAction<FActionDelegate>("nDisplayButton4", IE_Released, this, &AVirtualRealityPawn::OnAction, false, 4);
+    PlayerInputComponent->BindAction<FActionDelegate>("nDisplayButton5", IE_Released, this, &AVirtualRealityPawn::OnAction, false, 5);
   }
 }
 UPawnMovementComponent*        AVirtualRealityPawn::GetMovementComponent                () const
diff --git a/Source/DisplayClusterExtensions/Public/VirtualRealityPawn.h b/Source/DisplayClusterExtensions/Public/VirtualRealityPawn.h
index fe7002d28c35d3e45efafccdd895c925d4a6b4b0..2fab742d475e04bf4ccae1e5e1626f5033f44902 100644
--- a/Source/DisplayClusterExtensions/Public/VirtualRealityPawn.h
+++ b/Source/DisplayClusterExtensions/Public/VirtualRealityPawn.h
@@ -33,6 +33,9 @@ public:
   UFUNCTION(BlueprintCallable, Category = "Pawn") bool                           IsRoomMountedMode                   ();
   UFUNCTION(BlueprintCallable, Category = "Pawn") bool                           IsHeadMountedMode                   ();
 
+  UFUNCTION(BlueprintCallable, Category = "Pawn") FString                        GetNodeName                         ();
+  UFUNCTION(BlueprintCallable, Category = "Pawn") float                          GetEyeDistance                      ();
+
   UFUNCTION(BlueprintCallable, Category = "Pawn") float                          GetBaseTurnRate                     () const;
   UFUNCTION(BlueprintCallable, Category = "Pawn") UFloatingPawnMovement*         GetFloatingPawnMovement             ();
   UFUNCTION(BlueprintCallable, Category = "Pawn") URotatingMovementComponent*    GetRotatingMovementComponent        ();