{"id":122609,"date":"2026-06-07T08:00:55","date_gmt":"2026-06-07T05:00:55","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/player_logger\/"},"modified":"2026-06-07T08:00:55","modified_gmt":"2026-06-07T05:00:55","slug":"player_logger","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/player_logger\/","title":{"rendered":"PlayerLogger"},"content":{"rendered":"<p># PlayerLogger \u2013 Advanced Playtime &#038; Command Logging<\/p>\n<p>**PlayerLogger** is a lightweight yet powerful Paper plugin that logs player activity to a database, including joins, quits, commands, total playtime, and online status.<\/p>\n<p>Designed for server administrators who need accurate tracking, moderation insights, or statistical data.<\/p>\n<p>Supports **SQLite and MySQL** out of the box.<\/p>\n<p>## What Does PlayerLogger Track?<\/p>\n<p>&#8211; Player Join &#038; Quit Events<br \/>\n&#8211; Total Playtime (with live session calculation)<br \/>\n&#8211; Online \/ Offline Status<br \/>\n&#8211; Command Execution Logs<br \/>\n&#8211; First Seen &#038; Last Seen timestamps<br \/>\n&#8211; Historical Session Data<\/p>\n<p>All data is stored efficiently in a database with optimized indexing for performance.<\/p>\n<p>## Features<\/p>\n<p>\u26a1 Optimized for Paper 1.21+<\/p>\n<p>\ud83d\udcbe SQLite (default) or MySQL support<\/p>\n<p>\ud83d\udd04 Real-time playtime calculation<\/p>\n<p>\ud83c\udf0d Multi-language support (English &#038; German)<\/p>\n<p>\ud83d\udcc3 Configurable command filtering (e.g., ignore \/login, \/register)<\/p>\n<p>\ud83e\uddf5 Async database handling (non-blocking)<\/p>\n<p>\ud83e\uddf9 Automatic offline correction after crashes<\/p>\n<p>\ud83d\udcc8 Top 10 playtime ranking<\/p>\n<p>\u2712\ufe0f Admin tools for adjusting or deleting data<\/p>\n<p>## Commands<\/p>\n<p>&#8220;`<br \/>\n\/plog stats<br \/>\n\/plog stats <player>\n\/plog top<br \/>\n\/plog reload<br \/>\n\/plog delete <player>\n\/plog add <player> <time><br \/>\n&#8220;`<br \/>\nPermissions included for each subcommand.<\/p>\n<p>## Permissions<\/p>\n<p>### Player Permissions<\/p>\n<p>| Permission               | Description                            |<br \/>\n| :&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-: | :&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;: |<br \/>\n|    playerlogger.stats    |      Allows viewing own playtime       |<br \/>\n| playerlogger.stats.other | Allows viewing other players&#8217; playtime |<br \/>\n|     playerlogger.top     |     Allows viewing the top ranking     |<\/p>\n<p>### Admin Permissions<\/p>\n<p>| Permission                | Description                        |<br \/>\n| :&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;: | :&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;: |<br \/>\n| playerlogger.Admin.reload |    Allows reloading the plugin     |<br \/>\n| playerlogger.Admin.delete | Allows deleting stored player data |<br \/>\n|  playerlogger.Admin.add   |   Allows viewing the top ranking   |<\/p>\n<p>## Database Structure<\/p>\n<p>Tables:<br \/>\n&#8220;`<br \/>\nplayer<br \/>\nsessions<br \/>\ncommand_logs<br \/>\n&#8220;`<br \/>\n&#8211; UPSERT support (MySQL + SQLite)<br \/>\n&#8211; Indexed queries<br \/>\n&#8211; Foreign keys<br \/>\n&#8211; Optimized schema for large servers<\/p>\n<p>## Configuration<\/p>\n<p>&#8211; SQLite or MySQL<br \/>\n&#8211; Command logging toggle<br \/>\n&#8211; Join\/Quit logging toggle<br \/>\n&#8211; Command blacklist filter<br \/>\n&#8211; Language selection<\/p>\n<details>\n<summary>config.yml<\/summary>\n<p>&#8220;`<br \/>\ndatabase:<br \/>\n  type: SQLITE # SQLITE or MYSQL<br \/>\n  sqlite-file: playerlogger.db<\/p>\n<p>  mysql:<br \/>\n    host: localhost<br \/>\n    port: 3306<br \/>\n    database: minecraft<br \/>\n    user: minecraft<br \/>\n    password: &#8220;&#8221;<\/p>\n<p>language: de #de or en<br \/>\nlanguage-auto: false<\/p>\n<p>logging:<br \/>\n  join-quit: true<br \/>\n  commands: true<\/p>\n<p>command-filter:<br \/>\n  enabled: true<br \/>\n  deny-prefixes:<br \/>\n    &#8211; &#8220;\/login&#8221;<br \/>\n    &#8211; &#8220;\/register&#8221;<br \/>\n    &#8211; &#8220;\/changepassword&#8221;<\/p>\n<p>&#8220;`<\/p>\n<\/details>\n<p>## Use Cases<\/p>\n<p>&#8211; Staff activity monitoring<br \/>\n&#8211; Player engagement tracking<br \/>\n&#8211; Server statistics<br \/>\n&#8211; Moderation investigation<br \/>\n&#8211; Playtime-based rewards<br \/>\n&#8211; Admin auditing<\/p>\n<p>## Performance<\/p>\n<p>&#8211; Uses a dedicated async database thread<br \/>\n&#8211; No main-thread blocking queries<br \/>\n&#8211; Safe shutdown handling<br \/>\n&#8211; Scales well for medium to large servers<\/p>\n<p>## Compatibility<\/p>\n<p>&#8211; Paper 1.21+<br \/>\n&#8211; Java 21<br \/>\n&#8211; Works on Windows, Linux, and hosting providers<br \/>\n&#8211; Compatible with MySQL &#038; MariaDB<\/p>\n<p>## Why Choose PlayerLogger?<\/p>\n<p>Unlike simple playtime plugins, PlayerLogger provides:<\/p>\n<p>&#8211; Command history logging<br \/>\n&#8211; Persistent session tracking<br \/>\n&#8211; Database-level integrity<br \/>\n&#8211; Clean and structured codebase<br \/>\n&#8211; Multilingual support<\/p>\n<p>If you&#8217;re looking for a reliable, database-driven player tracking solution for Paper servers \u2014 PlayerLogger delivers.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>PlayerLogger logs player joins, quits, commands, playtime, and online status to a SQLite or MySQL database and provides admin commands for statistics and management.<\/p>\n","protected":false},"featured_media":122610,"template":"","meta":{"_minecraft_slug":"player_logger","_minecraft_project_id":"Tp4EtCZA","_minecraft_author":"ZacianMC","_minecraft_license":"MIT","_minecraft_downloads":30,"_minecraft_follows":1,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"player_logger.zip","_minecraft_size_bytes":18288868,"_minecraft_version_count":1,"_minecraft_updated_at":"2026-05-15T22:05:52.508335Z","_minecraft_date_created":"2026-02-15T00:03:03.417006Z","_minecraft_date_modified":"2026-02-14T19:09:30.164218Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/player_logger","_minecraft_icon_attachment_id":122610,"_minecraft_imported_at":"2026-06-07T05:00:56+00:00","_minecraft_import_hash":"29112ad33dc9395409244adb276a5cf3","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[126,127,123,92],"mod_loader":[132],"minecraft_version":[62,37,40,41,73,74,38,78,79,80,81,82],"class_list":["post-122609","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-management","mod_category-paper","mod_category-technology","mod_category-utility","mod_loader-paper","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PlayerLogger - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/player_logger\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PlayerLogger - Minecraft\" \/>\n<meta property=\"og:description\" content=\"PlayerLogger logs player joins, quits, commands, playtime, and online status to a SQLite or MySQL database and provides admin commands for statistics and management.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/player_logger\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/player_logger\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/player_logger\\\/\",\"name\":\"PlayerLogger - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/player_logger\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/player_logger\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/player_logger-icon-7ff1d30940c9ecf6605661bdf02b54f48a0ee6a4_96.webp\",\"datePublished\":\"2026-06-07T05:00:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/player_logger\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/player_logger\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/player_logger\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/player_logger-icon-7ff1d30940c9ecf6605661bdf02b54f48a0ee6a4_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/player_logger-icon-7ff1d30940c9ecf6605661bdf02b54f48a0ee6a4_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/player_logger\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"PlayerLogger\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PlayerLogger - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/player_logger\/","og_locale":"en_US","og_type":"article","og_title":"PlayerLogger - Minecraft","og_description":"PlayerLogger logs player joins, quits, commands, playtime, and online status to a SQLite or MySQL database and provides admin commands for statistics and management.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/player_logger\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/player_logger\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/player_logger\/","name":"PlayerLogger - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/player_logger\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/player_logger\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/player_logger-icon-7ff1d30940c9ecf6605661bdf02b54f48a0ee6a4_96.webp","datePublished":"2026-06-07T05:00:55+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/player_logger\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/player_logger\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/player_logger\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/player_logger-icon-7ff1d30940c9ecf6605661bdf02b54f48a0ee6a4_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/player_logger-icon-7ff1d30940c9ecf6605661bdf02b54f48a0ee6a4_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/player_logger\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"PlayerLogger"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/122609","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/122610"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=122609"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=122609"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=122609"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=122609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}