CrystalCounter

CrystalCounter

Fast, server-authoritative End Crystal tracking with an in-game stats GUI, MySQL/SQLite support, and PlaceholderAPI integration for Paper/Spigot.

12 downloads
1 followers

CrystalCounter

Track End Crystal placements and breaks in real-time with zero lag! Built specifically for competitive PvP, Anarchy, and Crystal PvP servers, CrystalCounter delivers server-authoritative tracking, zero-impact asynchronous database handling, and an interactive stats interface for your players.

Works completely server-side—no client mods required!


Features

  • Server-Authoritative Tracking: Prevents client-side spoofing, ghost counting, and fake statistics during rapid combat.
  • Interactive Stats GUI: Run /cstats to open a sleek in-game chest menu displaying total placements, breaks, and placement-to-break ratios.
  • Dual Storage Engines: Out-of-the-box support for lightweight SQLite (zero setup) and high-performance MySQL for multi-server networks.
  • PlaceholderAPI Integration: Display player stats directly on scoreboards, tablists, hover messages, and chat formats.
  • Fully Asynchronous: Database reads, flushes, and calculations run completely off the main tick thread to keep TPS rock-solid.

Commands & Permissions

Command Permission Short Description
/cstats crystalcounter.stats Open your personal crystal statistics GUI
/cstats <player> crystalcounter.stats.others Inspect another online or offline player's stats
/cstats reload crystalcounter.reload Reload configuration files and database connections
/cstats reset <player> crystalcounter.admin.reset Clear all recorded statistics for a player

General Settings (config.yml)

Configure core tracking behavior and performance options directly in your configuration file:

Setting Description Default
database.type Select storage backend (SQLITE or MYSQL) SQLITE
tracking.track-placements Count every End Crystal placed by players true
tracking.track-breaks Count every End Crystal detonated by players true
gui.title Display header title for the /cstats menu &d&lCrystal Statistics
performance.cache-interval Time in seconds before stats flush to the database 300

PlaceholderAPI Support

Expose live player data anywhere across your server setup with built-in PAPI expansions:

  • %crystalcounter_placed% — Returns total crystals placed by the player.
  • %crystalcounter_broken% — Returns total crystals broken/exploded by the player.
  • %crystalcounter_ratio% — Returns the calculated placement-to-break ratio (K/D style).

Important Advice

  • Network Syncing: When using MySQL across multiple sub-servers (e.g., BungeeCord / Velocity network), ensure all instances point to the same database schema for automatic cross-server stat syncing.
  • Compatibility: Native for Paper, Spigot, and Purpur on Minecraft 1.20+ running Java 21.

No gallery available for this project.