diff --git a/Source/arnocMain/Private/ARNOPlayerController.cpp b/Source/arnocMain/Private/ARNOPlayerController.cpp
index 5f07dc1c939136e10ecf4f44ab80ac4cb72f36f1..f876ca6be353cf63a3651f6b2fc827f056c3646f 100644
--- a/Source/arnocMain/Private/ARNOPlayerController.cpp
+++ b/Source/arnocMain/Private/ARNOPlayerController.cpp
@@ -87,6 +87,35 @@ void AARNOPlayerController::JoinVoiceLobby_Implementation(const FString& InLobby
     }
 }
 
+TArray<FVoiceDevice> AARNOPlayerController::GetInputDevices()
+{
+    TArray<FVoiceDevice> InputDevices;
+    if (VoiceChatUser)
+    {
+        for (auto VoiceDevice : VoiceChatUser->GetAvailableInputDeviceInfos())
+        {
+            InputDevices.Emplace(FVoiceDevice(VoiceDevice.Id, VoiceDevice.DisplayName));
+            UE_LOG(LogTemp, Display, TEXT("ID: %s Device Name: %s"), *VoiceDevice.Id, *VoiceDevice.DisplayName);
+        }
+    }
+    return InputDevices;
+}
+
+TArray<FVoiceDevice> AARNOPlayerController::GetOutputDevices()
+{
+    TArray<FVoiceDevice> OutputDevices;
+    if (VoiceChatUser)
+    {
+        for (auto VoiceDevice : VoiceChatUser->GetAvailableOutputDeviceInfos())
+        {
+            OutputDevices.Emplace(FVoiceDevice(VoiceDevice.Id, VoiceDevice.DisplayName));
+            UE_LOG(LogTemp, Display, TEXT("ID: %s Device Name: %s"), *VoiceDevice.Id, *VoiceDevice.DisplayName);
+        }
+    }
+    return OutputDevices;
+}
+
+
 void AARNOPlayerController::BeginDestroy()
 {
 	Super::BeginDestroy();
diff --git a/Source/arnocMain/Private/VoiceDeviceStruct.cpp b/Source/arnocMain/Private/VoiceDeviceStruct.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..ace719cd038917a076c2bab145e1712409973771
--- /dev/null
+++ b/Source/arnocMain/Private/VoiceDeviceStruct.cpp
@@ -0,0 +1,5 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "VoiceDeviceStruct.h"
+
diff --git a/Source/arnocMain/Public/ARNOPlayerController.h b/Source/arnocMain/Public/ARNOPlayerController.h
index 4eedd8e2c09c1facf3c95f0b2367f8a48ffad354..5b154df1bb0f17a0080f63b0bd114e1068fa105b 100644
--- a/Source/arnocMain/Public/ARNOPlayerController.h
+++ b/Source/arnocMain/Public/ARNOPlayerController.h
@@ -7,6 +7,29 @@
 #include "VoiceChat.h"
 #include "ARNOPlayerController.generated.h"
 
+USTRUCT(BlueprintType)
+struct FVoiceDevice
+{
+	GENERATED_BODY()
+
+	FVoiceDevice()
+	{
+		
+	}
+
+	FVoiceDevice(FString ID, FString DeviceName)
+	{
+		this->ID = ID;
+		this->DeviceName = DeviceName;
+	}
+
+	UPROPERTY(BlueprintReadOnly)
+	FString ID;
+
+	UPROPERTY(BlueprintReadOnly)
+	FString DeviceName;
+};
+
 /**
  * 
  */
@@ -31,9 +54,14 @@ public:
 	UFUNCTION(Client, Reliable)
 	void JoinVoiceLobby(const FString& InLobbyId);
 
+	UFUNCTION(BlueprintCallable)
+	TArray<FVoiceDevice> GetInputDevices();
+	UFUNCTION(BlueprintCallable)
+	TArray<FVoiceDevice> GetOutputDevices();
+
 	virtual void BeginDestroy() override;
 
 	virtual void BeginPlay() override;
 
 	virtual void Tick(float DeltaSeconds) override;
-};
+};
\ No newline at end of file
diff --git a/Source/arnocMain/Public/VoiceDeviceStruct.h b/Source/arnocMain/Public/VoiceDeviceStruct.h
new file mode 100644
index 0000000000000000000000000000000000000000..caeb02a0b3f0365f711e95cb7b8f8e7d776baecf
--- /dev/null
+++ b/Source/arnocMain/Public/VoiceDeviceStruct.h
@@ -0,0 +1,17 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "Engine/UserDefinedStruct.h"
+#include "VoiceDeviceStruct.generated.h"
+
+/**
+ * 
+ */
+UCLASS()
+class ARNOCMAIN_API UVoiceDeviceStruct : public UUserDefinedStruct
+{
+	GENERATED_BODY()
+	
+};