Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Links
Creators
Details
StatsMod - Comprehensive Server-Side Statistics
StatsMod brings in-depth player statistics to your Minecraft server! 🎮 This powerful server-side Fabric mod automatically tracks a wide array of player actions and provides a highly customizable system for viewing, ranking, and managing this data. From blocks broken to entities killed, time played to items crafted, StatsMod offers a rich statistical experience for players and robust administrative tools for server owners.
StatsSigns
Check out our addon mod, StatsSigns! Display dynamic player statistics on signs throughout your world.
Features
📊 Automatic & Detailed Stat Tracking
- Extensive Coverage: Automatically tracks statistics for:
- Blocks broken and placed
- Items picked up, crafted, smelted, brewed, enchanted, and used
- Mobs and players killed
- Deaths (with specific death reasons/killers)
- Crops harvested
- Animals bred
- Items fished
- Trades completed
- Damage dealt and taken
- Distance traveled (walked, sprinted, crouched, swum, flown, elytra)
- Time played
- Unique biomes visited
- Persistent Data: All player statistics are saved persistently, supporting both file-based (JSON) and SQLite database storage.
- Accuracy: Uses correct API and Yarn mappings for 100% working and accurate code.
⚙️ Highly Customizable Commands & Display
- Personal Profile (
/profile
): Players can view a summary of their key statistics, including totals and their top stat within various genres (e.g., "Most Mined", "Most Killed").- Example:
%mining_top_display_name%
and%mining_top_value%
show the most mined block and its count. - Displays formatted playtime (e.g., "1d 2h 3m 4s").
- Example:
- Genre-Specific Stats (
/mining
,/combat
, etc.): View detailed statistics categorized by genres like Mining, Combat, Crafting, Farming, and more.- Configurable in
genres.yml
andgenre_blocks.yml
to define which blocks/items/entities belong to each genre. - Supports aliases for genre commands (e.g.,
/smelted
for/smelting
).
- Configurable in
- Type-Specific Stats (
/broken
,/crafted
, etc.): Dive into stats for specific action types across all relevant items/blocks/entities.- Configurable in
types.yml
.
- Configurable in
- Detailed Biome List (
/biomes
): See a paginated list of all unique biomes a player has visited. - Leaderboards (
/top
): Display server-wide rankings for:- Genres: Top players for an entire genre (e.g.,
/top mining
). - Types: Top players for a specific stat type (e.g.,
/top broken
,/top killed
). - Individual Stats: Top players for any single stat key (e.g.,
/top played
,/top deaths
,/top broken:minecraft:stone
).
- Genres: Top players for an entire genre (e.g.,
- Interactive Text: All command outputs support Minecraft color codes, hex colors, formatting, hover text, and clickable actions (running commands, suggesting commands, opening URLs, copying to clipboard).
- Configured in
profile.yml
,genres.yml
,types.yml
, andtop.yml
. /stats
command provides a clickable help menu.
- Configured in
🛠️ Admin & Debug Tools
- Reload Configs (
/statsmod reload
): Instantly apply changes to configuration files without a server restart. - Debug Mode (
/statsmod debug
): Toggle verbose logging for troubleshooting. - Manual Stat Editing (
/statsmod set
): Set a player's specific statistic to any value. - Stat Resets (
/statsmod reset
):- Reset all stats for a specific player (
/statsmod reset player <player>
). - Reset stats for a specific genre for a player (
/statsmod reset player <player> genre <genre_id>
). - Reset stats for a specific genre for ALL players (
/statsmod reset server genre <genre_id>
). - Wipe all server stats (
/statsmod reset server all
).
- Reset all stats for a specific player (
- Data Migration (
/statsmod migrate
): Seamlessly transfer all player data from file storage to a configured database.
📜 Comprehensive Configuration
settings.yml
: General mod settings, including page sizes for commands and database connection details.genre_blocks.yml
: Defines lists of blocks, items, entities, and death reasons for genre categorization.genres.yml
: Configures display names, aliases, tracked blocks key, and command formatting for each genre.types.yml
: Configures display names and command formatting for each statistic type.top.yml
: Customizes header, line, and footer formats for/top
commands.profile.yml
: Defines the layout and content of the/profile
command output.stats_command.yml
: Configures the main/stats
help command's content.README.yml
: Automatically generated reference for all available placeholders.
Commands
/statsmod
,/sm
- Displays the main help interface./profile [player]
- Displays a player's comprehensive stats profile./top <identifier>
- Displays server-wide leaderboards for genres, types, or specific stats./<genre_id> [player] [page]
- e.g.,/mining
,/combat
. Displays detailed stats for a specific genre./<type_id> [player] [page]
- e.g.,/broken
,/crafted
. Displays detailed stats for a specific stat type./damaged [player]
- Displays total damage dealt and taken./flown [player]
- Displays creative and elytra flight distances./biomes [player] [page]
- Lists all unique biomes visited by a player.
Permissions
This mod integrates with the Fabric Permissions API (v0). A permissions plugin like LuckPerms is required for these nodes to function. Admin commands require a higher OP level if no permissions plugin is present.
Click to view all permission nodes and their descriptions
statsmod.player
- Grants access to all non-administrative commands.statsmod.admins
- Grants access to all admin commands.statsmod.command.base
- Allows use of the base/statsmod
and/sm
commands. (Default: true)statsmod.command.stats
- Allows use of the/stats
command.statsmod.command.profile
- Allows use of/profile
for self.statsmod.command.profiles
- Allows use of/profile
for others.statsmod.command.others
- Allows viewing other players' stats in various commands.statsmod.genres
- Grants access to ALL genre commands (e.g.,/mining
).statsmod.types
- Grants access to ALL type commands (e.g.,/broken
).statsmod.genre.<genre_id>
- Allows access to a specific genre command (e.g.,statsmod.genre.mining
).statsmod.type.<type_id>
- Allows access to a specific type command (e.g.,statsmod.type.damaged
).statsmod.admin.reload
- Allows use of/statsmod reload
.statsmod.admin.debug
- Allows use of/statsmod debug
.statsmod.admin.migrate
- Allows use of/statsmod migrate
.statsmod.admin.set
- Allows use of/statsmod set
.statsmod.admin.reset.player
- Allows resetting all stats for a player.statsmod.admin.reset.genre
- Allows resetting a genre's stats.statsmod.admin.reset.all
- Allows wiping all server stats.
Available Placeholders
Click to view all available placeholders and their descriptions
Player Specific
%player%
: The name of the player.%played_formatted%
: Formatted time played (e.g., '1d 2h 3m 4s').%mining_top_display_name%
: Name of the most mined block.%mining_top_value%
: Count of the most mined block.%combat_top_died_display_name%
: Name of the entity the player has died to the most.%combat_top_died_value%
: Count of deaths to the top entity.- Other dynamic placeholders exist for other genres.
- Specific stat values:
%broken_value%
,%placed_value%
,%killed_value%
, etc.
Command Context Specific
%display_name%
: User-friendly name of the current item/block/entity.%stat_id%
: Full statistic ID (e.g., 'broken:minecraft:stone').%item_id%
: Minecraft ID of the current item (e.g., 'minecraft:stone').%value%
: Numerical value of the stat being displayed.%rank%
: Player's rank in a/top
list.%genre_display_name%
/%genre_id%
: Display name and ID of the current genre.%type_display_name%
/%type_id%
: Display name and ID of the current type.- Pagination:
%current_page%
,%total_pages%
,%prev_page%
,%next_page%
.
Global Stat Totals
%total_broken%
,%total_placed%
,%players_killed%
,%deaths%
,%total_crafted%
,%total_smelted%
,%total_brewed%
,%total_enchanted%
,%total_harvested%
,%total_animals_bred%
,%total_pickedup%
,%total_fished%
,%total_traded%
,%damaged:dealt%
,%damaged:taken%
,%distance%
,%biomes%
,%flown%
,%elytra%
.- Genre-specific totals:
%genre_total_broken%
,%genre_total_placed%
, etc.
Utility
%newline%
: Forces a new line.
Modpack Policy
- You ARE PERMITTED to include StatsMod in any modpack.
- Credit is appreciated but not strictly required.
- Please do not modify the mod's JAR file directly.
- The modpack itself, or access to this mod within the modpack, must not be sold.