Jump to content

Custom suffix and custom rating mod


AInur
 Share

Recommended Posts

Hi, I've made a mod that enables you to give yourself a custom rating number and a custom suffix after your name, like this:

image.thumb.png.4d490cf24530e1ea927c31966f7dd25d.png

 

Your custom rating and suffix can be configured in your options page once the mod is activated: this configuration below will give exactly the effect shown above.

image.thumb.png.1a2499ea9a7b628fddd1539241710738.png

 

The mod is attached as a zip file in the standard 0 A.D mod format. Works out of the box. Have fun!

customsuffix.zip

Edited by AInur
  • Like 2
Link to comment
Share on other sites

Please mind that this mod violates the Terms of Use for the multiplayer lobby:

Quote

7. Not attempt to artificially adjust any user of the service's rating or any of the statistics which impact it. (Examples of this are, but are not limited to: cheating in ranked games, reverse engineering the service, and taking advantage of other users of the service.)

https://gitea.wildfiregames.com/0ad/0ad/raw/branch/main/binaries/data/mods/public/gui/prelobby/common/terms/Terms_of_Use.txt

Link to comment
Share on other sites

4 hours ago, Dunedan said:

Not attempt to artificially adjust any user of the service's rating or any of the statistics which impact it.

I would like to argue that this mod does not impact the lobby statistics nor does it adjust anybody's rating.

It is a GUI level mod which changes the visual display of the user's rating and suffix only after they have joined a host. The custom rating only appear in the hosted game's gamesetup page; no change is visible in the lobby at all. The mod cannot alter the statistics stored in WFG servers and does not change any element of the lobby interface. All participants of the lobby and the hosted game can still see the player's true rating in the lobby page.

Experiment shows that the lobby calculates the average rating of the room using the players' true rating values instead of the custom rating. So no rating or statistic has been adjusted, only the visual element has been changed.

Leaving the custom rating box blank will result in your real rating being displayed.

The other examples stated in the Terms of Use are not relevant to this mod.

Link to comment
Share on other sites

Hi @AInur, thanks for the mod.

It might help players with ratings fix the rejoining game bug. Your mod is also much more compact then the one Kampot made although it's also because you don't have any presets options, but that's neat.

Edited by Atrik
  • Thanks 1
Link to comment
Share on other sites

12 minutes ago, Atrik said:

It might help players with ratings fix the rejoining game bug

I think it would.

The cause of players rejoining as spectators is due to querying the rating method from the attribs object in gamesetup_mp.js:

g_UserRating = attribs.rating;
Engine.StartNetworkJoinLobby(playername + (g_UserRating ? " (" + g_UserRating + ")" : ""), hostJID, password);

If the first line fails to extract the correct user rating (for example, due to slow network connection or server loading), then g_UserRating would be NoneType at the second line. The brackets with ratings would be replaced with an empty string. This changes the username perceived by the host, therefore the host will consider the rejoining player as a different person, hence they will be set as spectator.

The host will accept both pure playernames and usernames formatted with " ()" at the end of the playername, that are currently active in the lobby. The exact content inside and after the brackets are not considered by the host. This is why such errors can occur.

Using my mod, you can fix the g_UserRating variable to a custom string of your choice. You will not have to attempt to extract your rating from the attributes object and you will always join with the same username and formatting.  Failure to execute attribs.rating method will not impact the host's perceived username, so you will always rejoin exactly as who you are. In the demo case, we essentially have:

Engine.StartNetworkJoinLobby(playername + " (9999) OP", hostJID, password);

There is no point of failure here, so the rejoin bug has been fixed :) 

Note that extracting settings from user.cfg is much more reliable than requesting for the user's rating from the WFG server, especially for high ping cases.

Link to comment
Share on other sites

We need this rejoining game bug fixed ASAP. Especially because the fix should be ultra simple to implement. It has ruined countless games and it will continue to do so. The devs should simply identify rejoining players by name only ignoring rank. Including rank into the indentification of players in a game makes no sense, as there cannot be two players with the same name in the lobby.

In case of TGs, too often it ruins the TG for all 8 players, making them all waste the played time so far. But it gets even worse: as there is a small chance you can fix the rejoining issue by insisting for several minutes, most players try rejoining non-stop until they can join or the game is restarted. So we can easily add an average of 5 to 15 minutes of wasted time for all players every time this bug happens, on top of the time lost on aborted games. The longer the game has been going on, the longer most players are willing to wait for the missing player to try to join back, before closing the game.

Devs, plz look into this problem, as it is a serious quality of life bug affecting games, and surely very easily fixed. The effort-reward ratio must be very high on this one.

  • Like 1
Link to comment
Share on other sites

@Acero for now/this alpha the mod above do the job. It is safe and it only change 2 lines in gamesetup and absolutely doesn't interact, or interfere with any WFG service, and certainly not even it's rating system, as Dunedan seems to have made the assumption of.
I think, in general, making an opinion built on assumptions isn't too op.

  • Like 1
Link to comment
Share on other sites

Atrik, I am happy to hear it can solve this problem. Can you please explain how to use it to solve the game rejoin bug? You just install the mod and create a custom rating equal to your actual rating before rejoining the game? Hope to learn how to solve this problem using this mod.

On the other hand, as most players are not interested in having custom cosmetic ratings, few players will have this mod already installed when they disconnect, and most will probably not be willing to search for mods in the forum in the middle of a game just after disconnecting in order to rejoin. So, while this solution might be a band-aid for now, we need this problem fixed once and for all, as it surely is a simple thing to fix. Relying on the the ratings bot to work in order to rejoin games is like relying on your football team to win this weekend, in order for you to go to work next week. Those are two totally unrelated things. Is nice if your team wins, but it has nothing to do with your capacity to work. Creating a depency among both things does not make sense, and is preventing many many games from being played until the end.

Link to comment
Share on other sites

16 minutes ago, Acero said:

You just install the mod and create a custom rating equal to your actual rating before rejoining the game?

Exactly. But preferably, you set your rating before even joining the lobby to guarantee stability. This solves 99.9% of the bug.

The remaining 0.1% is caused by the very unlikely case that your engine fails to read your config file properly, maybe due to a hard drive error. To solve this, please go straight into your gamesetup_mp.js and edit the line like I did.

 

  • Haha 1
Link to comment
Share on other sites

5 minutes ago, real_tabasco_sauce said:

Thanks tabasco,

Maybe you could suggest in the posted issue to decouple the player rating from the identification of players in games. This might help devs to narrow down the issue and facilitate fixing it. The involvement of the ratings bot in the rejoin process is currently the issue, as it often happens that the ratings bot is not working for several minutes after a rejoin to the lobby.

Also to be super precise in the steps to reproduce, you could also have problems rejoining if you join the lobby, dont get a rating, and start a new game. When reconncting after disconnection, if you get a rating inmeditely, you will join as spec as well.

Link to comment
Share on other sites

If I remember correctly, guerringuerrin told me the problem with the ratings bot not giving ratings seems to be a bug related to the user getting a different xmpp ID on rejoin, which the ratings bot is not able to resolve quickly. But this problem should be totally unrelated to games being able to indentify a returning player, as ratings does not need to be part of the identification process. That's why I suggest decoupling the ratings bot from game rejoining altogether.

Link to comment
Share on other sites

20 minutes ago, Acero said:

That's why I suggest decoupling the ratings bot from game rejoining altogether.

Good idea.

We remove ratings from the username completely when players join a host, so all of this becomes irrelevant. Then, we can migrate the player profile lookup page to the gamesetup_mp page so that if someone needs to look up the ratings, they can do so here easily.

Link to comment
Share on other sites

4 hours ago, Acero said:

We need this rejoining game bug fixed ASAP. Especially because the fix should be ultra simple to implement. It has ruined countless games and it will continue to do so.

By the way: The best chance to get bugs fixed is to make the developers aware of them. I might be wrong, but as far as I know that hasn't happened before today.

Since when is this problem happening on a regular basis?

37 minutes ago, Acero said:

Also to be super precise in the steps to reproduce, you could also have problems rejoining if you join the lobby, dont get a rating, and start a new game. When reconncting after disconnection, if you get a rating inmeditely, you will join as spec as well.

Why wouldn't you get your rating after joining the lobby? Is there a common pattern for players affected by this? Locaction, network conditions, operating systems, active mods, ...?

Link to comment
Share on other sites

24 minutes ago, Dunedan said:

Since when is this problem happening on a regular basis?

When players drop from games, and rejoin the lobby, it`s very common that they don't see any ratings in the lobby. Not own rating nor other player's ratings. It can take several minutes for the ratings bot to be working again for this player.

We have tried a number of tricks, but none of them seems to solve the issue. Some of the tricks usually tried in order to recover the ratings after disconnects are:

  •  Rejoining the lobby several times
  •  Restarting 0AD several times
  • Rejoining the game several times
  •  Hosting a game and closing
  •  Hosting a rated game and closing

None of these tricks solve the issue. The ratings just come back on a random basis without any known pattern.

If the ratings bot would be trustable and work every time after rejoining, no other fix would be needed I guess. But still this dependency on ratings to rejoin a game as a player does not seem to be logical.

I remember this problem existing since at least the previous alpha. Not sure if it happened before.

If a player has an unstable connection, the problem becomes bigger, as even if he manages to rejoin after several minutes, on the next disconnect the problem has to be tackled again, and there is never certainty on when the ratings will come back.

Link to comment
Share on other sites

27 minutes ago, Dunedan said:

Is there a common pattern for players affected by this? Locaction, network conditions, operating systems, active mods, ...?

No pattern that anybody that I know had been able to indentify.

Link to comment
Share on other sites

29 minutes ago, Dunedan said:

Why wouldn't you get your rating after joining the lobby?

Even if you join the lobby without having disconnected recently you can get no ratings for a while. It is less common than loosing ratings just after disconnect, but it can happen as well. If you join a game in this state, and later disconnect, while the ratings are working as expected, you will join as spectator too.

Link to comment
Share on other sites

If you want to find the cause of the ratings bot malfunction, I suggest looking into the user beging given a different xmpp id after rejoining as guerringuerrin noticed, and see how the ratings bot behaves in that case.

Link to comment
Share on other sites

This issue so dreaded that I have known players with unstable connection to not play any rated 1v1 game just so they dont have a rating associated to their accounts in order not not have problems rejoining games after disconnections.

  • Like 1
Link to comment
Share on other sites

1 minute ago, Acero said:

This issue so dreaded that I have known players with unstable connection to not play any rated 1v1 game just so they dont have a rating associated to their accounts in order not not have problems rejoining games after disconnections.

You can use my mod as a temporary solution while the developers are fixing it B)

Link to comment
Share on other sites

1 hour ago, Acero said:

Thanks tabasco,

Maybe you could suggest in the posted issue to decouple the player rating from the identification of players in games. This might help devs to narrow down the issue and facilitate fixing it. The involvement of the ratings bot in the rejoin process is currently the issue, as it often happens that the ratings bot is not working for several minutes after a rejoin to the lobby.

Also to be super precise in the steps to reproduce, you could also have problems rejoining if you join the lobby, dont get a rating, and start a new game. When reconncting after disconnection, if you get a rating inmeditely, you will join as spec as well.

How would you get a rating in that case? I thought the problem only existed for those with a rating.

Link to comment
Share on other sites

14 minutes ago, real_tabasco_sauce said:

How would you get a rating in that case? I thought the problem only existed for those with a rating.

Sometimes you dont get a rating when joining the lobby freshly. If you then start a new game and later disconnect, you wont be able to rejoin the game as a player if the ratings bot is working well, because the game will be expecting a version of you without rating, but you will be joining with rating.

  • Like 2
Link to comment
Share on other sites

On 06/11/2024 at 2:05 PM, Acero said:

If I remember correctly, guerringuerrin told me the problem with the ratings bot not giving ratings seems to be a bug related to the user getting a different xmpp ID on rejoin, which the ratings bot is not able to resolve quickly. But this problem should be totally unrelated to games being able to indentify a returning player, as ratings does not need to be part of the identification process. That's why I suggest decoupling the ratings bot from game rejoining altogether.

If I remember correctly, the hypothesis was that RatingBot was still maintaining an open session with the previous xmppID and that was why it was not granting the rating to the player's new xmppID when rejoinin after disconnection

Edited by guerringuerrin
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...