Maintenance for the week of July 20:
• NA megaservers for patch maintenance – July 20, 4:00AM EDT (8:00 UTC) - 12:00PM EDT (16:00 UTC)
• EU megaservers for patch maintenance – July 20, 8:00 UTC (4:00AM EDT) - 16:00 UTC (12:00PM EDT)

Add MMR to Battlegrounds

  • Solantris
    Solantris
    ✭✭✭
    Can also confirm what impda is saying from my own experiments.

    Theres also an event that fires when someone leaves a match that reduces your mmr loss, so thats not just a text pop up. But the inner workings arent exposed
  • NxJoeyD
    NxJoeyD
    ✭✭✭✭
    imPDA wrote: »
    There is no official statement if it really exists or not as far as I know, there was an attempt to bring MMR (I don't remember exact PTS), but this was disabled next PTS iteration. Currently, no real MMR exists in user UI, and we don't know for sure what actually used under the hood, so all comments "MMR exists" are just copium rn. Game API has some MMR leftover and I blantly remember devs talking about this is going to be returned but in the far future because they don't have resources to continue this work rn. You can try GetPlayerMMRByType, it returned 0 or nil if I remember correctly.

    * GetPlayerMMRByType(*[LFGActivity|#LFGActivity]* _activity_)
    ** _Returns:_ *integer* _mmrRating_

    h5. LFGActivity
    * LFG_ACTIVITY_ADVENTURE_ZONE
    * LFG_ACTIVITY_ARENA
    * LFG_ACTIVITY_AVA
    * LFG_ACTIVITY_BATTLE_GROUND_CHAMPION
    * LFG_ACTIVITY_BATTLE_GROUND_LOW_LEVEL
    * LFG_ACTIVITY_BATTLE_GROUND_NON_CHAMPION
    * LFG_ACTIVITY_DUNGEON
    * LFG_ACTIVITY_ENDLESS_DUNGEON
    * LFG_ACTIVITY_EXPLORATION
    * LFG_ACTIVITY_HOME_SHOW
    * LFG_ACTIVITY_INVALID
    * LFG_ACTIVITY_MASTER_DUNGEON
    * LFG_ACTIVITY_TRIAL
    * LFG_ACTIVITY_TRIBUTE_CASUAL
    * LFG_ACTIVITY_TRIBUTE_COMPETITIVE

    I assume you should use LFG_ACTIVITY_BATTLE_GROUND_NON_CHAMPION as LFGActivity, so try to type this while on BG

    `/script d(tostring(GetPlayerMMRByType(LFG_ACTIVITY_BATTLE_GROUND_NON_CHAMPION)))`

    d prints debug (system) messages in chat, tostring - obviously, converts values to string (just in case function returns nil).
    You can try different LFGActivity.

    So, officially, there is no MMR, but some matchmaking system might exist under the hood, but sometimes I can get a lot of good players with me, while I am also a decent player, and only bad players against me, and it is actually pretty frequent situation, so if any matchmaking system exist, it is most likely poor and rough estimation. I am actually interested in real MMR, but taking into consideration PvP part is not that popular, I would assume we will not see any progress in a further 2 years at least.

    P.S. You can also verify what LFGActivity type to use,

    * GetActivityTypeAndIndex(*integer* _activityId_)
    ** _Returns:_ *[LFGActivity|#LFGActivity]* _activity_, *luaindex* _index_

    * GetCurrentLFGActivityId()
    ** _Returns:_ *integer* _activityId_

    `/script d(GetCurrentLFGActivityId())` returns current lfg activity id and then you can use it in GetActivityTypeAndIndex:
    `/script df('type: %d - index: %d', GetActivityTypeAndIndex(123456))` - replace 123456 with number you will get from GetCurrentLFGActivityId. And then

    `/script d(tostring(GetPlayerMMRByType(123)))` - replace 123 with `type` value from previous step, it will be a number.

    P.P.S. I worked on idea to make own MMR system, you can use Impressive Stats addon to capture match results. If I would be able to combine reports from different players, and if there were enough players using this addon, it would cover almost all BGs, and pretty reliable calculations could be carried out. I did a windows client to send result to server where it could be combined for different players, but I could not continue this project at that time and it is still only in a draft state. But I added some additional features to Impressive Stats - you can see results for all previous battlegrounds, results of all players participated, your average stats over selected characters, match types, etc. It also remembers players you played with or against and shows their average stats so you could have insight on their skill before match starts. It also calculates your average performance against average performance of other players, so you could know your potential. I might want to update description page on ESOUI, because it does not display some new features. My bad, I am lazy :P

    BGs definitely do have active MMR. All you have to do is watch the notice in the upper right hand corner of the screen when / if someone on your team drops; it alerts you that you’ve lost a team member and that any MMR loss will be reduced.

    So there’s clearly some element of MMR at work in BGs. This makes sense too, because I consistently observe a change in opponent base, roughly, monthly, which quickly evolves back into the matches against the “regulars” that I generally see most of the time. This would indicate that a reset MMR readjusted over the course of matches to try and pair “like” players again; based on whatever criteria and priority it might have.

    That’s not to say that the MMR is any good, just that something exists and is working on the back end.
    Edited by NxJoeyD on July 6, 2026 8:00PM
  • NxJoeyD
    NxJoeyD
    ✭✭✭✭
    Solantris wrote: »
    I wrote this for another thread elsewhere but im dumping here cause relevant. Its based on being a game designer myself (not an mmo combat designer, but still)

    I'll be frank, the BG MMR algorithm itself isnt the real problem with balancing teams. Its a symptom, not the cause. The real issue is that ESO lacks the systems and constraints that usually underpin how an mmr algorithm works.

    To put it succinctly, our current BG ecosystem doesnt define a consistent definition of success. As a result, any single MMR algorithm will struggle to produce a reliable estimate of player skill, because a win means different things from game to game

    Deathmatch primarily rewards combat dominance. Domination primarily rewards space control and speed. Crazy King primarily rewards rotations and timing. CTR and ball boy primarily reward movement, escorting and survival. In most of them, any kind of prolonged fight is directly detrimental to the objective, and each of them asks players to optimise for something completely different.

    Somebody with a high win rate at domination probably does perform equally well in crazy king, but neither of those wins means mean anything in a deathmatch. Because in ESO, our objective modes do not fundamentally require combat for effectiveness. Mechanically, we can often bypass combat and still be really effective.

    In games like MOBAs, macro decisions (map rotations, objectives, vision) are constrained by combat competency (micro decisions). If you lose every fight, you will generally lose map control. Avoiding fights will put you at an objective disadvantage, but so will fighting uneccesarily: they're designed in harmony, interdependent. But In ESO, our objective mechanics are much less dependent on combat performance, and the most efficient thing is often slapping on some running shoes and avoiding combat completely. Objective sucess does not follow or honestly even require combat sucess.

    This means, from an algorithmic perspective, two players can have identical win rates while possessing incredibly different actual combat ability. The wins just aren't comparable.

    This is especially the case with deathmatch. It meassures something substantially different from the other modes completely. But has the same impact on a winrate (im all for splitting off deathmatch completely, fwiw)

    In most games win rate is often one of the most reliable indicators, because a win is comparable to other wins. But in ESO, it's just... not.

    Regardless of implementation, an MMR algorithm fundamentally asks 'on average, which players consistently outperform others?' The problem we have is that our wins don't represent consistent or comparable performances. Sometimes it reflects combat dominance, sometimes objective play, sometimes rotation or escorting, sometimes building like a brick and holding block on an objective. It's... random

    When the definition of success changes from match to match, a single rating just cant converge on a single measure of skill. And thats why the mmr system feels so chaotic and unbalanced. Mathematically, I imagine it actually is creating a balanced match on paper behind the scenes: it's just that the data it bases that decision on doesnt actually mean anything specific in our context.

    Tldr: MMR systems estimate skill from outcomes. Outcomes need systemic consistency to be meaninful. Our bg wins represent different things, and thus, we have no consistency. So, regardless of the actual formula used, this means our mmr systems struggle to mathematically represent meaningful player brackets

    To make it an anlogy, some players are throwing shot put. Some players are jumping hurdles. Some players are playing football, some are in a sprint, some a marathon. All of them are in the same matches. Probably on average the shot put guy wins the shotput games ... but he's assessed on his overall win rate.

    Yes .. this 100%!

    My idea to address this was for ZoS to implement a “Competitive Index” system.

    In a nutshell, it’s a balance of performance algorithm, a calculated value that’s affected by player choices that goes on to adjust the values of non-role attributes to balance build capability.

    Players want to be able to theory craft, try new combinations, and play with uniquely different builds and roles; and they should be able to do that. A CI would let players do that but without being penalized for those choices (so long as there was a logical approach to the choices). A CI isn’t going to make a build with bad choices good, but what it could do is take a build that’s over tuned due to particular combinations of attributes & mechanics, and adjust them back to reality.

    What you end up with is a broader baseline of performance, from a build perspective. Now game match results are more dependent upon player skills, actions, and team cooperation as opposed to simply leaning on known combinations of busted mechanics that have reduced counterplay.

    I, personally, think this wouldn’t be hard to do; the only elephant in the room would be the algorithms base structure that would reference whenever an adjustment would be needed.

    This would only be in effect when Battle Spirit was active, so PvE could continue to work as it does now, but for PvP we’d have a built in balancer.

    Edited by NxJoeyD on July 6, 2026 8:22PM
  • imPDA
    imPDA
    ✭✭✭✭
    NxJoeyD wrote: »
    BGs definitely do have active MMR. All you have to do is watch the notice in the upper right hand corner of the screen when / if someone on your team drops; it alerts you that you’ve lost a team member and that any MMR loss will be reduced.

    It is just a leftover, there are tons of these across the game, not all text accurately represents what is going on, even new rule with 100 TV in IC has incorrect description atm. I probably saw a confirmation what it is not what it mentions - it was added with PTS with MMR and when MMR disabled - it just stayed, but I have no links, so you either have to believe or search on the forum :tongue:

    UI also has leftovers like these
    bf5j85nrzwgy.png
    lbf05rk252hk.png

    it is meant to show MMR on BG selection screen (when you choose 4x4 or 8x mode), but it is hidden. I can even log in and show how it should look like, I am in addon development for 2 years and I learned everything related and vanilla UI pretty much to the point I know almost every part by heart.

    As I said, it can have some balancing mechanism under the hood, but most likely it is far from MMR we (or I) are expecting to see, otherwise why would they hide it? Even API has everything set and ready to show it.
    Edited by imPDA on July 6, 2026 9:22PM
    Your Friendly Neighborhood PvP Enjoyer (prior to U48)
  • NxJoeyD
    NxJoeyD
    ✭✭✭✭
    imPDA wrote: »
    NxJoeyD wrote: »
    BGs definitely do have active MMR. All you have to do is watch the notice in the upper right hand corner of the screen when / if someone on your team drops; it alerts you that you’ve lost a team member and that any MMR loss will be reduced.

    It is just a leftover, there are tons of these across the game, not all text accurately represents what is going on, even new rule with 100 TV in IC has incorrect description atm. I probably saw a confirmation what it is not what it mentions - it was added with PTS with MMR and when MMR disabled - it just stayed, but I have no links, so you either have to believe or search on the forum :tongue:

    UI also has leftovers like these
    bf5j85nrzwgy.png
    lbf05rk252hk.png

    it is meant to show MMR on BG selection screen (when you choose 4x4 or 8x mode), but it is hidden. I can even log in and show how it should look like, I am in addon development for 2 years and I learned everything related and vanilla UI pretty much to the point I know almost every part by heart.

    As I said, it can have some balancing mechanism under the hood, but most likely it is far from MMR we (or I) are expecting to see, otherwise why would they hide it? Even API has everything set and ready to show it.

    Oh yeah, I’d agree that what you or I (or most) would expect to function as an “MMR” isn’t what we’re getting at all.

    I don’t know “what” the function is doing in the background. I’d venture to bet it’s trying to do “something” (albeit poorly).

    Perhaps a shell of a former, real, MMR system?

    I never knew the metrics or rubric for MMR and most anyone I’ve ever spoke to never knew it either. It was basically observation based, and even then, nobody knew what the criteria actually was.

    I wouldn’t go so far as to say it achieves any sort of balancing aspect but, perhaps, a duct-taped instrument to build match lobbies?

    If they gutted what had previously been a bona fide MMR that would explain a lot and also why nobody was ever able to identify how or why “MMR” made pairings.
  • Solantris
    Solantris
    ✭✭✭
    Ok hear me out...

    What if we made Battlegrounds like Vengeance.

    Skill based. No armor set exploits, no scribing cheese.

    Unpopular with certain PvPers? Probably. But a much more fair system.

    responding to expressly state dissent. Frankly, I hate the idea of raising the floor just to obscure the broken ceiling.
  • ceruulean
    ceruulean
    ✭✭✭✭
    I mean, MMR doesn't have to be complicated. Make 4v4 deathmatch+ranked/competitive only and show generic ELO/MMR brackets (like ToT oricalcum-rubedite) when people play in that mode, since the whole point of PvP is combat. Account for MMR in the other game modes when matchmaking but leave them unranked so nobody gains or loses MMR in those modes.

    Also I don't get why people think Vengeance has a high/low/whatever skill floor and don't seem to understand what they're arguing. A high skill floor means the minimum level of skill required to be competent or even survive is incredibly steep. ESO has always been high skill floor with esoteric theorycrafting and its worse now with newbies being bursted in 1 second. A low skill floor is the arcade/shooter/loadout type game mode like Vengeance. Even then, it's not like the skill floor has been lowered much. It's the same janky ESO combat system where animation cancel to spaz out, light attack weave, and bash weave. There's no Oakensoul, so players are forced to reckon with the 2-bar system. Most players can learn to survive, turtle, and heal, but they lose to attrition and won't kill anyone until they become competent at offense. I do agree that Vengeance rewards mechanical skill over intelligence, so players who are better at theorycrafting but less effective at pressing buttons will be at a disadvantage, and the mode needs a little extra build differentiation as well as higher AOE caps, and then it'll be enough for both types of players to be satisfied.

    Anyway, a low skill floor with high ceiling is probably for the best for an MMO: easy to learn, hard to master.
    Edited by ceruulean on July 7, 2026 4:48PM
  • Artisian0001
    Artisian0001
    ✭✭✭✭
    Lot of misconceptions here that some people just state without nay real knowledge. All MMR RESETS are soft resets, not hard resets. You will very likely still match up with the exact same people at higher MMR that you always did, even if you the MMR gets reset, the other players that were high MMR play matches, and you do nothing for a month, when you decide to que, your chances of matching with them should be very high.

    The main issue with MMR is not only that it should exist, per player, and per team, based MAINLY on win/loss, with some small percentage of it being performance, ideally, but solely win/loss is fine as well, but the main part that would make it not only more enjoyable for people who actually enjoy the system, but more clear. MAKE A REAL LADDER BASED ON MMR, MAKE IT PUBLIC FOR TOP PLAYERS. You can exclude all the lower rated players who would have their feelings hurt, but please, for the love of all that is holy, stop making every single PvP leaderboard tied to AMOUNT OF TIME PLAYED and not a real MMR system. All the real PvP players have wanted this for a long time, and if you only display the highest rated players, the lower rated ones will not suffer. Implement this, and properly. Thanks.
  • NxJoeyD
    NxJoeyD
    ✭✭✭✭
    Lot of misconceptions here that some people just state without nay real knowledge. All MMR RESETS are soft resets, not hard resets. You will very likely still match up with the exact same people at higher MMR that you always did, even if you the MMR gets reset, the other players that were high MMR play matches, and you do nothing for a month, when you decide to que, your chances of matching with them should be very high.

    The main issue with MMR is not only that it should exist, per player, and per team, based MAINLY on win/loss, with some small percentage of it being performance, ideally, but solely win/loss is fine as well, but the main part that would make it not only more enjoyable for people who actually enjoy the system, but more clear. MAKE A REAL LADDER BASED ON MMR, MAKE IT PUBLIC FOR TOP PLAYERS. You can exclude all the lower rated players who would have their feelings hurt, but please, for the love of all that is holy, stop making every single PvP leaderboard tied to AMOUNT OF TIME PLAYED and not a real MMR system. All the real PvP players have wanted this for a long time, and if you only display the highest rated players, the lower rated ones will not suffer. Implement this, and properly. Thanks.

    This is not what I see on XB NA.

    Usually, around once per month; I do notice that I end up getting matched with lower skill set players whereby I’m able to significantly out perform both the other team and most of my teammates. After a couple days of playing I then start to see my “regulars” that I tend to play with which are the more experienced player and/or the players running the current meta builds.

    I can’t say which day this happens on, I haven’t paid attention to that but I will say that within the last week I’ve been experiencing this and it wasn’t until the day before yesterday that I started to see my BG usual players showing up in the lobbies.

    Regardless of what sort of reset the system (or remnants of the system) are using, it only makes reasonable sense that the reset has some effect. What would be the point of a matchmaking system reset that had no impact? MMR isn’t a leaderboard it’s “supposed” to be a matchmaking instrument based on ranking .. but .. the nature of that system and its specifics have never been fully known by anyone and, more over, it seems that what semblance of an MMR that we do have is a shell of a system that used to be in place.

    So it’s likely that we don’t really even have an MMR at this point; just some script that’s having an impact on matchmaking but isn’t a proper ranking system anymore.

    Either way, something is causing players to observe different BG groupings on a recurring basis.
Sign In or Register to comment.