Skip to content

esmith443/JSExtendedStats

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JSExtendedStats

A modern, feature-rich leaderboard system for Rust game servers

Built specifically for Pterodactyl Panel deployment with full theme customization, multi-server support, and real-time statistics tracking.

Version Node License


📖 Documentation

📚 View Full Documentation in Wiki →

🚀 Installation ⚙️ Configuration 🖥️ Console Commands 🔧 Rust Plugin 🛠️ Troubleshooting

📦 What's Included

  • Node.js Leaderboard Application - Complete web interface with admin panel
  • Rust Oxide Plugin (JSExtendedStats.cs) - Tracks 40+ player stats and sends to API
  • Database Schema - Pre-configured MySQL tables (ruststats)
  • Console Management Tools - Built-in commands for server administration
  • First-Time Setup Wizard - Interactive admin credential creation

🎮 Features

Core Features

  • Comprehensive Player Statistics - Track kills, deaths, K/D ratio, headshots, accuracy, gathering, raiding, explosives, resources, animals, NPCs, and much more
  • Multi-Server Support - Manage and track stats across multiple Rust servers from one dashboard
  • Real-Time Updates - REST API integration with automatic stat synchronization
  • Pterodactyl Native - Built specifically for Pterodactyl Panel with console command support

Admin Panel

  • Dashboard - View top players and server statistics at a glance
  • Server Management - Add, remove, and monitor multiple servers with heartbeat tracking
  • Statistics Wiper - Wipe stats per-server or globally via console or web interface
  • Full Theme Customization - 29 customizable color options with export/import functionality
  • Custom Branding - Upload logos, favicons, and background images
  • Secure Authentication - Bcrypt password hashing with interactive setup wizard

Console Commands

help                      # Show all available commands
setup-admin               # Reconfigure admin username and password
change-admin-password     # Change admin password interactively
list-servers              # List all registered Rust servers
wipe <serverid>           # Wipe stats for a specific server
hash-password <password>  # Generate bcrypt password hash
stop                      # Stop the server gracefully

📸 Screenshots

Admin Panel

Admin Panel Complete admin panel featuring dashboard, theme customization, branding settings, and server management

Player Leaderboard

Player Leaderboard Interactive leaderboard with detailed player statistics and profile views


📋 Requirements

  • Pterodactyl Panel with Node.js egg (v18.0.0+)
  • MySQL 5.7+ or MariaDB 10.3+
  • Rust server with Oxide/uMod installed

🚀 Quick Start

  1. Upload files to Pterodactyl Node.js server
  2. Create MySQL database named ruststats
  3. Import database/schema.sql
  4. Configure .env file (copy from .env.example)
  5. Start server - first-time wizard will prompt for admin credentials
  6. Access admin panel at http://your-ip:3000/admin/login
  7. Install Rust plugin and configure with API URL and secret key

See Installation Guide for detailed steps.


🎨 Theme Customization

Access Admin > Theme to customize 29 color options:

  • Background Gradients - Main page background colors
  • Card Colors - Background and border colors for cards
  • Text Colors - Primary, secondary, and muted text
  • Navigation - Navbar and sidebar backgrounds
  • Stat Badges - Kills, Deaths, K/D ratio gradient colors
  • Tables - Header background and row hover colors
  • Tabs - Active, inactive, and hover colors
  • Buttons - Primary gradient colors
  • Player Cards - Profile card gradient colors
  • Status Colors - Success, danger, warning, info indicators

Export/Import - Share themes between installations or backup your customizations


🔒 Security Features

  • Bcrypt Password Hashing - Admin passwords hashed with bcrypt (12 rounds)
  • Session Management - Secure session handling with express-session
  • Rate Limiting - Configurable rate limiting on login and API endpoints
  • API Authentication - Secret key validation for all stat updates
  • CORS Protection - Configurable allowed origins
  • SQL Injection Protection - Parameterized queries with mysql2
  • XSS Protection - Input validation and sanitization

🏗️ Tech Stack

  • Backend: Node.js 18+, Express.js
  • Database: MySQL 5.7+ / MariaDB 10.3+
  • Frontend: EJS templating, Bootstrap 5, Socket.IO
  • Security: bcrypt, express-session, express-rate-limit
  • Data Tables: DataTables for leaderboard display
  • Real-time: Socket.IO for WebSocket support

🎯 Credits

Powered by Emma-Tech

Built for Pterodactyl Panel | Node.js, Express & MySQL

About

Leaderboard and stats system for Rust game servers: Node.js web app with admin panel, MySQL schema, and an Oxide plugin tracking 40+ player stats. Built for Pterodactyl Panel.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages