Request for Devs: AI takes over players that leave

More info in the link. I am requesting a change that makes a multiplayer match less unplayable if a teammate drops. Namely, the AI takes control of the faction.

Please due this on mythology as well

+1 yes please m’lord

This is a fantastic idea. Keeps the Master Builder at their best.

Any moderators or devs going to give feedback for this thread?

The code function should be like this:
OnPlayerDisconnect(player):
if GameMode == vs_AI:
faction = GetFaction(player)
difficulty = GetAIDifficulty() // e.g. Hard, Hardest
SetController(faction, AI)
SetAIDifficulty(faction, difficulty)
BroadcastMessage(faction + " is now controlled by AI (" + difficulty + “)”)

To the dev team,

Can we please make the block list affect team games?

Right now blocking a player only mutes chat, but you can still get the same teammate 3 games in a row even after blocking him. This was requested back in 2021:

“Can we please not get paired up with someone we have on our block list? I had the unfortunate situation where I played 3 times with the same teammate, even though I blocked him on our first game.”

Problem: In team ranked, one bad experience with a teammate makes players quit team queue entirely. You report, you block, and you get them again next game. This is the #1 reason people stop queuing team games.

Proposed Solution: Avoid as Teammate
Not a full ban. Just this rule:

If Player A has blocked Player B on Steam / Xbox Live, they can still face each other as ENEMIES, but they will never be placed on the SAME team.

This is what Overwatch and Dota 2 call “Avoid as Teammate”. It does NOT increase queue time much because you are not removing the player from the lobby - you are just forcing them to the enemy team.

Why this is good for the game:

  1. Reduces instant surrenders / AFK / griefing without needing more moderation
  2. Increases team queue retention - players don’t log off after one bad teammate
  3. Zero impact on 1v1, minimal impact on team queue times

Technical implementation - this is cheap:

AoE4 already reads the block flag for chat. You just need to cache it for matchmaking.

C#

// Pseudocode for matchmaking serverbool CanBeTeammates(playerA, playerB, blockedMap){    // blockedMap is Dictionary<playerID, HashSet<blockedPlayerID>>    // built from Steam k_EFriendFlagBlocked + Xbox Live block list    if (blockedMap[playerA].Contains(playerB)) return false;    if (blockedMap[playerB].Contains(playerA)) return false;    return true;}
// When forming a teambool IsValidTeam(team){    for each pair (p1, p2) in team:        if (!CanBeTeammates(p1, p2)) return false;    return true;}

Flow:
Pool -> Form Teams -> IsValidTeam()? If no, swap blocked player to Team 2 or re-queue that one player -> Start Match

This is ∼100 lines of code, O(n^2) on team size (for 4v4 = 6 checks), micro-seconds of CPU. No new UI needed for v1, just reuse existing block list.

Could we get this as an option: [x] Don't match blocked players as teammates in options?

Thanks!