diff --git a/src/mpgame/Game_local.cpp b/src/mpgame/Game_local.cpp
--- a/src/mpgame/Game_local.cpp
+++ b/src/mpgame/Game_local.cpp
@@ -9107,6 +9107,66 @@ int idGameLocal::GetSpawnedBotEntityCount( void ) const {
 	return count;
 }
 
+/*
+======================
+idGameLocal::PrintBotNavigationStatus
+======================
+*/
+void idGameLocal::PrintBotNavigationStatus( void ) {
+	idAAS* botAAS = GetBotAAS();
+
+	for ( int clientNum = 0; clientNum < MAX_CLIENTS; ++clientNum ) {
+		if ( !networkSystem->ServerIsBotClient( clientNum ) ) {
+			continue;
+		}
+
+		idEntity* entity = entities[ clientNum ];
+		if ( entity == NULL || !entity->IsType( rvmBot::GetClassType() ) ) {
+			continue;
+		}
+
+		rvmBot* bot = static_cast<rvmBot*>( entity );
+		if ( !bot->HasSpawned() ) {
+			continue;
+		}
+
+		bool registered = false;
+		for ( int botIndex = 0; botIndex < registeredBots.Num(); ++botIndex ) {
+			if ( registeredBots[ botIndex ] == bot ) {
+				registered = true;
+				break;
+			}
+		}
+		if ( !registered ) {
+			continue;
+		}
+
+		const idVec3 origin = bot->GetPhysics()->GetOrigin();
+		idVec3 areaOrigin = origin;
+		const int areaNum = botAAS != NULL && botAAS->IsValid()
+			? botAAS->AdjustPositionAndGetArea( areaOrigin )
+			: 0;
+
+		common->Printf(
+			"botNavigation client=%d health=%d spectating=%d respawning=%d teleporting=%d "
+			"spawnAt=%d minRespawnTime=%d area=%d origin=%.3f,%.3f,%.3f forward=%d right=%d\n",
+			clientNum,
+			bot->health,
+			bot->spectating ? 1 : 0,
+			bot->IsRespawning() ? 1 : 0,
+			( bot->IsInTeleport() || bot->pfl.teleport ) ? 1 : 0,
+			bot->spawnedTime,
+			bot->minRespawnTime,
+			areaNum,
+			origin[ 0 ],
+			origin[ 1 ],
+			origin[ 2 ],
+			static_cast<int>( bot->usercmd.forwardmove ),
+			static_cast<int>( bot->usercmd.rightmove )
+		);
+	}
+}
+
 /*
 ======================
 idGameLocal::AddBot
diff --git a/src/mpgame/Game_local.h b/src/mpgame/Game_local.h
--- a/src/mpgame/Game_local.h
+++ b/src/mpgame/Game_local.h
@@ -639,6 +639,7 @@ public:
 		registeredBots.Remove( bot );
 	}
 	int					GetSpawnedBotEntityCount( void ) const;
+	void					PrintBotNavigationStatus( void );
 
 	float					SysScriptTime( void ) const {
 		return MS2SEC( realClientTime );
diff --git a/src/mpgame/gamesys/SysCmds.cpp b/src/mpgame/gamesys/SysCmds.cpp
--- a/src/mpgame/gamesys/SysCmds.cpp
+++ b/src/mpgame/gamesys/SysCmds.cpp
@@ -3362,6 +3362,7 @@ void Cmd_BotStatus_f( const idCmdArgs& ) {
 		gameLocal.GetSpawnedBotEntityCount(),
 		networkSystem->ServerGetNumActiveClients()
 	);
+	gameLocal.PrintBotNavigationStatus();
 }
 
 /*
