diff --git a/Plugins/Developer/RiderLink/Resources/checksum b/Plugins/Developer/RiderLink/Resources/checksum
index dc1c9539..201646f8 100644
--- a/Plugins/Developer/RiderLink/Resources/checksum
+++ b/Plugins/Developer/RiderLink/Resources/checksum
@@ -1 +1 @@
-‘×Ã5æL9OHnŸqè
\ No newline at end of file
+Ü‹Tü¨�HçTüµ¢j÷~
\ No newline at end of file
diff --git a/Plugins/Developer/RiderLink/RiderLink.uplugin b/Plugins/Developer/RiderLink/RiderLink.uplugin
index 55b6e7da..9c90ef82 100644
--- a/Plugins/Developer/RiderLink/RiderLink.uplugin
+++ b/Plugins/Developer/RiderLink/RiderLink.uplugin
@@ -1,7 +1,7 @@
 {
   "FileVersion": 3,
   "Version": 1,
-  "VersionName": "2025.3.0.1708",
+  "VersionName": "2025.3.3",
   "FriendlyName": "RiderLink",
   "Description": "Plugin for establishing IPC connection with JetBrains Rider IDE",
   "Category": "Programming",
diff --git a/Source/DedicatedServers/Private/UI/Portal/PortalManager.cpp b/Source/DedicatedServers/Private/UI/Portal/PortalManager.cpp
index e9e54522..3c66bd13 100644
--- a/Source/DedicatedServers/Private/UI/Portal/PortalManager.cpp
+++ b/Source/DedicatedServers/Private/UI/Portal/PortalManager.cpp
@@ -6,6 +6,7 @@
 #include "HttpModule.h"
 #include "JsonObjectConverter.h"
 #include "Data/API/APIData.h"
+#include "GameFramework/PlayerState.h"
 #include "GameplayTags/DedicatedServerTags.h"
 #include "Interfaces/IHttpResponse.h"
 #include "UI/HTTP/HTTPRequestTypes.h"
@@ -30,8 +31,6 @@ void UPortalManager::JoinGameSession()
 void UPortalManager::FindOrCreateGameSession_Response(FHttpRequestPtr Request, FHttpResponsePtr Response,
 	bool bWasSuccessful)
 {
-	GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Find or Create Game Session Response Received"));
-	
 	if (!bWasSuccessful)
 	{
 		BroadcastJoinGameSessionMessage.Broadcast(HTTPStatusMessages::SomethingWentWrong, true);
@@ -45,8 +44,7 @@ void UPortalManager::FindOrCreateGameSession_Response(FHttpRequestPtr Request, F
 		{
 			BroadcastJoinGameSessionMessage.Broadcast(HTTPStatusMessages::SomethingWentWrong, true);
 		}
-		DumpMetadata(JsonObject);
-		
+	
 		if (JsonObject->HasField(TEXT("GameProperties")))
 		{
 			auto PropertiesArray = JsonObject->GetArrayField(TEXT("GameProperties"));
@@ -66,7 +64,59 @@ void UPortalManager::FindOrCreateGameSession_Response(FHttpRequestPtr Request, F
 		
 		FDSGameSession GameSession;
 		FJsonObjectConverter::JsonObjectToUStruct(JsonObject.ToSharedRef(), &GameSession);
-		GameSession.Dump();
-		BroadcastJoinGameSessionMessage.Broadcast(TEXT("Found Game Session."), false);
+		
+		const FString GameSessionId = GameSession.GameSessionId;
+		const FString GameSessionStatus = GameSession.Status;
+		const FString UniquePlayerId = GetUniquePlayerId();
+		
+		HandleGameSessionStatus(GameSessionId, GameSessionStatus);
+		
 	}
 }
+
+FString UPortalManager::GetUniquePlayerId() const
+{
+	APlayerController* LocalPlayerController = GEngine->GetFirstLocalPlayerController(GetWorld());
+	if (IsValid(LocalPlayerController))
+	{
+		APlayerState* LocalPlayerState = LocalPlayerController->GetPlayerState<APlayerState>();
+		if (IsValid(LocalPlayerState) && LocalPlayerState->GetUniqueId().IsValid())
+		{
+			return TEXT("Player_") +  FString::FromInt(LocalPlayerState->GetUniqueID());
+		}
+	}
+	return FString();
+}
+
+void UPortalManager::HandleGameSessionStatus(const FString& Status, const FString& SessionId)
+{
+
+	if (Status.Equals(TEXT("ACTIVE")))
+	{
+		BroadcastJoinGameSessionMessage.Broadcast(TEXT("Found Active Game Session.  Creating Player Session..."), false);
+		TryCreatePlayerSession(GetUniquePlayerId(), SessionId);
+	}
+	else if (Status.Equals(TEXT("ACTIVATING")))
+	{
+		FTimerDelegate CreateSessionDelegate;
+		CreateSessionDelegate.BindLambda([this]()
+		{
+			JoinGameSession();
+		});
+		APlayerController* LocalPlayerController = GEngine->GetFirstLocalPlayerController(GetWorld());
+		if (IsValid(LocalPlayerController))
+		{
+			LocalPlayerController->GetWorldTimerManager().SetTimer(CreateSessionTimer, CreateSessionDelegate, 0.5f, false);
+		}
+
+	}
+	else
+	{
+		BroadcastJoinGameSessionMessage.Broadcast(HTTPStatusMessages::SomethingWentWrong, true);
+
+	}
+}
+
+void UPortalManager::TryCreatePlayerSession(const FString& PlayerId, const FString& GameSessionId)
+{
+}
diff --git a/Source/DedicatedServers/Public/UI/Portal/PortalManager.h b/Source/DedicatedServers/Public/UI/Portal/PortalManager.h
index 6c1f1c7b..9bb57c93 100644
--- a/Source/DedicatedServers/Public/UI/Portal/PortalManager.h
+++ b/Source/DedicatedServers/Public/UI/Portal/PortalManager.h
@@ -27,4 +27,10 @@ public:
 private:
 	
 	void FindOrCreateGameSession_Response(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful);
+	FString GetUniquePlayerId() const;
+	void HandleGameSessionStatus(const FString& Status, const FString& SessionId);
+	void TryCreatePlayerSession(const FString& PlayerId, const FString& GameSessionId);
+	
+	FTimerHandle CreateSessionTimer;
+	
 };
