promotional bannermobile promotional banner

MiningTop

A lightweight server-side mod that counts every block each player breaks

MiningTop — Server-Side Mining Counter

Counts every block every player breaks.

MiningTop is a server-side Forge mod (clients don't need to install anything): every block a player breaks adds +1 to their counter, the data is saved with the world automatically, and the counts are synced live to the vanilla scoreboard so they can be shown above a player's head, in the sidebar, or in the Tab list. Perfect for mining competitions and survival-server leaderboards.

  • Supported versions: Minecraft 1.7.10 and 1.12.2 (same features on both)
  • Dependencies: None. No required mods, and nothing to install on the client.

Installation

  1. Download the jar that matches your game version (the version is in the file name — don't grab the wrong one)
  1. Drop it into the mods/ folder of your server and restart
  1. Single player / LAN: put it in .minecraft/mods/ instead, works the same

No configuration needed. It starts counting for every online player — and every player who joins later — right away.

Features

  • Counts everything: survival, creative, any dimension, vanilla and modded blocks alike (blocks destroyed by explosions or fire are not counted)
  • Purely server-side: clients install nothing, players don't need to sync anything
  • Reliable data: counts are stored in the overworld at data/miningtop_data.dat and keyed by UUID — survives restarts, unaffected by name changes
  • Per-block breakdown: besides the total, it records how many of each block type were mined (e.g. Stone ×1234)
  • Vanilla scoreboard integration: counts are mirrored into a dummy objective named mined, so you can use the vanilla /scoreboard command on it directly
  • Near-zero overhead: each break is handled in microseconds, no log spam, no extra disk writes — no noticeable impact on TPS
  • Bilingual: command output follows each player's client language (English / Chinese)

Display

Counts show below the player's name tag by default (belowName mode); OPs can switch this at any time with /mset:

Slot

Effect

belowName

Persistent number under the player's name (default)

sidebar

Leaderboard on the right side of the screen, auto-sorted; /mnick nicknames take effect here

list

Number shown after the name in the Tab player list

off

Hidden (still counting in the background)

Commands

Command

Permission

Description

/mcount [player]

Everyone

Show mining stats (total + top 5 most-mined blocks); works for offline players

/mtop [page]

Everyone

Server-wide leaderboard, 10 players per page

/mname [title|reset]

OP

Change the scoreboard title (sidebar header / belowName label); reset restores the default

/mnick <player> [name|clear]

OP

Set a player's nickname (works offline) for the sidebar and leaderboard; omit the name to query

/mset <belowName|sidebar|list|off>

OP

Switch where counts are displayed; default is belowName

/mreset <player|all>

OP

Reset one player's stats or everyone's

Examples:

 

Use cases

  • Mining contests: /mset sidebar plus a custom /mname title for a live ranking
  • Survival servers: keep it on belowName, and run /mreset all weekly for a new season
  • Single player: single-player worlds run an integrated server, so everything works identically; open to LAN and it counts everyone who joins

Known limitations

  • Nicknames (/mnick) only apply to the sidebar: belowName and the Tab list are matched by the client against the real player ID and can't be replaced (client-side limitation)
  • Only blocks broken by a player's own hands count. Blocks destroyed by TNT, pistons, or fire don't (so the leaderboard can't be farmed with TNT)
  • In 1.7.10 each dimension has its own scoreboard instance; the mod syncs all of them. 1.12.2 shares a single server-side scoreboard, so this is a non-issue there

<strong>How it works (for the curious)</strong>

  • BlockBreakHandler: listens to the server-side BlockEvent.BreakEvent (only fires for blocks broken by a player) and writes the count
  • MiningData: extends WorldSavedData, saved/loaded with the world, keyed by UUID
  • ScoreboardSync: mirrors the counts into the vanilla objective mined and syncs it across every loaded world's scoreboard
  • Data is categorized by block id (e.g. minecraft:stone), so vanilla and modded blocks both work

The MiningTop Team

profile avatar
  • 1
    Projects
  • 14
    Downloads