Better Statistics Screen

Better Statistics Screen

Mod

A Minecraft mod that improves the statistics screen and makes it more useful.

Client or server Utility

2.61M downloads
1,755 followers
Follow Save
90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!

BSS (fabric-1.20.1) - v3.8

Changelog

Given the changes and additions made in this release, it is highly recommended to read through this changelog before using this release.

Release v3.8 makes some changes to some exiting features, and adds a new server-sided feature called "stat announcement system". It also adds some new config properties that let the user control how this mod behaves.

The "betterstats" network protocol

This feature allows betterstats clients and servers to communicate, which enables some extra features when this mod is present on a server. Some changes were made to this system;

  • (Change 1) The protocol version has been changed to 2. Was previously set to 1.
    • Note that both the client and the server must use the same protocol version for the server-sided features to work. If the client encounters a server with a different betterstats protocol version, the client will then treat the server as if it dosn't have betterstats installed, and vice-versa.
    • This was done because of the changes that were made to the protocol.
  • (Change 2) After a client enables the betterstats connection with a server, they can no longer disable it until they disconnect. This change was done because it's pointless to disable the protocol once enabled, as the server still knows the client has betterstats installed.
  • (Change 3) Next up, by default the client will now automatically always enable the betterstats protocol connection with the server, that is, when the client detects betterstats on the server as well.
    • A config property called client-trustAllServersBssNet was added to control this behavior as well.
    • The first reason is so the user doesn't have to go to the "Statistics" menu to manually enable the connection each time they join a server.
    • The second reason is because the "stat announcement system" recommends that the client have betterstats installed. If the client doesn't have betterstats, then all announed messages will appear in English and will not translate for that client.
    • The third reason is because of how Fabric API works. Previously, I made it so clients have to manually enable the connection every time they join a server, out of concern for privacy and the server finding out about the client being modded. However, it turns out Fabric API's registry synchronization system already likely exposes this information to the server anyways. So at that point, it's kinda pointless to have a manual toggle, as other mods and even Fabric itself may alreaydy be screaming to the server saying "I am a modded client".

The "stat announcement system"

(Always remember, this mod will never require being installed on the server. All server-sided features are optional)

The stat announcement system is a new optional server-sided feature whose purpose is to use the chat to announce players doing various unique things and achieving certain stats. As of v3.8, the "SAS" only announces players doing certain things for their first time, however more features may be added to it in the future.

This system is also completely configurable, and may be disabled by those who don't like it or don't want it. The config properties are server-enableSAS (Boolean) and server-sasConfig (JsonObject).

This goal with SAS is to promote people's engagement with the game and their stats, as well as to let players acknowledge they've done something special. Well, unless you die in hardcore that is.. then the mod's gonna roast you;
image

The commands

  • My personal library mod TCDCommons API's /badges command was moved over to this mod, so as to avoid registering features in my API mod.
  • Added a config property called server-registerCommands. It lets you control whether or not /statistics and /badges will be registered.

The player-badge system

Given the player badge system wasn't really all that useful or even used (at least, as far as I've noticed), I have decided to make it disabled by default. It may be re-enabled at any time using the tcdcommons's config file. More info on that can be found in the v3.8 changelogs for tcdcommons.

The mod configuration

For clarity and readability reasons, existing config properties were renamed, so it's easier to tell which one is for the client and which one is for the server. Note that server-sided config properties apply to singleplayer as well, and not just dedicated servers.

Config changes for this mod:

  • guiMobsFollowCursor was renamed to client-guiMobsFollowCursor.
  • Added client-trustAllServersBssNet (Boolean)
  • Added server-registerCommands (Boolean)
  • Added server-enableSAS (Boolean)
  • Added server-sasConfig (JsonObject, aka the {} JSON thingy)

Config changes for tcdcommons:

  • Renamed enablePlayerBadges to server-enablePlayerBadges
  • Renamed broadcastEarningPlayerBadges to server-broadcastEarningPlayerBadges
  • Renamed enableHttpUtils to common-enableHttpUtils

Now that looks a lot more readable. Because I mean.. prior to that, the config for both this mod and for tcdcommons looked about as unreadable as this is:
image

To learn how to configure this mod, and tcdcommons, here are the wiki pages I wrote:

Files

betterstats-3.8+fabric-1.20.1.jar(997.06 KiB) Primary Download

Project members

TheCSDev

Owner

Details

Licensed LGPL-3.0-only
Created 2 years ago
Updated a month ago