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:
- Reduces instant surrenders / AFK / griefing without needing more moderation
- Increases team queue retention - players don’t log off after one bad teammate
- 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!