{"id":99677,"date":"2026-06-05T20:29:46","date_gmt":"2026-06-05T17:29:46","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/mcsl\/"},"modified":"2026-06-05T20:29:46","modified_gmt":"2026-06-05T17:29:46","slug":"mcsl","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/mcsl\/","title":{"rendered":"mcsl"},"content":{"rendered":"<div align=\"center\">\n<p># \ud83d\udccb MCSL \u2014 MineCraftServerLogs<\/p>\n<p>### The fastest way to capture, analyse, and share your Minecraft server logs.<\/p>\n<p>![Minecraft](https:\/\/modrinth.com\/plugin\/mcsl)<br \/>\n![Platform](https:\/\/modrinth.com\/plugin\/mcsl)<br \/>\n![License](https:\/\/github.com\/protectcord\/mcsl\/blob\/main\/LICENSE)<br \/>\n![Powered by HasteLog](https:\/\/logs.protectcord.com)<br \/>\n![bStats](https:\/\/bstats.org\/plugin\/bukkit\/MCSL\/30872)<\/p>\n<p>&#8212;<\/p>\n<p>> **MCSL** is a lightweight Minecraft server plugin that gives server administrators a single command to upload, parse, redact, and share server logs \u2014 all powered by HasteLog, a fast and free log-sharing service. No more copy-pasting giant log files into chat or Discord. One command and your log is live on the web, ready to share with support staff, developers, or your community.<\/p>\n<p>&#8212;<\/p>\n<p>&#8220;`<br \/>\n[17:34:12 INFO]: \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n[17:34:12 INFO]:   MCSL \u2014 MineCraftServerLogs v1.0.0<br \/>\n[17:34:12 INFO]:   Powered by https:\/\/logs.protectcord.com<br \/>\n[17:34:12 INFO]: \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n[17:34:12 INFO]:   \/mcsl upload [lines|all|errors] \u2014 Upload latest.log to HasteLog<br \/>\n[17:34:12 INFO]:   \/mcsl info                      \u2014 Print server info summary<br \/>\n[17:34:12 INFO]:   \/mcsl errors [lines]             \u2014 Show recent errors in chat<br \/>\n[17:34:12 INFO]:   \/mcsl players                   \u2014 Show player events from log<br \/>\n[17:34:12 INFO]:   \/mcsl plugins                   \u2014 List all plugins &#038; status<br \/>\n[17:34:12 INFO]:   \/mcsl share                     \u2014 Upload full diagnostic report<br \/>\n[17:34:12 INFO]:   \/mcsl crash                     \u2014 Upload latest crash report<br \/>\n[17:34:12 INFO]: \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n&#8220;`<\/p>\n<\/div>\n<p>&#8212;<\/p>\n<p>## \ud83c\udfaf Who Is This Plugin For?<\/p>\n<p>MCSL is built specifically for **server administrators and developers** who spend time diagnosing issues on Bukkit, Spigot, Paper, Purpur, or Folia servers.<\/p>\n<p>| If you are&#8230; | MCSL helps you&#8230; |<br \/>\n|&#8212;|&#8212;|<br \/>\n| A **server owner** with a broken plugin | Upload errors instantly and share the link with the plugin&#8217;s support team |<br \/>\n| A **developer** debugging your own plugin | Get a full diagnostic report \u2014 version, all loaded plugins, errors, TPS \u2014 in one link |<br \/>\n| A **network admin** managing multiple servers | Run `\/mcsl share` on any node and get a single URL to compare behaviour across servers |<br \/>\n| A **support volunteer** on a help Discord | Ask users to run `\/mcsl upload errors` instead of pasting 3,000 lines of log |<br \/>\n| A **hosting provider** | Include MCSL on your pre-installed plugin list \u2014 your clients get self-service diagnostics |<\/p>\n<p>&#8212;<\/p>\n<p>## \u2728 Features<\/p>\n<p>### \ud83d\udd3c One-Command Log Upload<br \/>\nUpload your entire `latest.log` \u2014 or just the last N lines, or only errors \u2014 to logs.protectcord.com with a single command. You get back a short, shareable URL that you can click directly from your in-game chat.<\/p>\n<p>### \ud83d\udd0d Intelligent Log Parsing<br \/>\nMCSL automatically scans your logs and categorises what it finds:<br \/>\n&#8211; **Errors &#038; Exceptions** \u2014 full stack traces, `[ERROR]`, `[SEVERE]` entries<br \/>\n&#8211; **Warnings** \u2014 `[WARN]` and `[WARNING]` entries<br \/>\n&#8211; **Plugin events** \u2014 which plugins enabled, disabled, or failed to load<br \/>\n&#8211; **Player events** \u2014 join, leave, kick, and ban entries<br \/>\n&#8211; **Crash signals** \u2014 Minecraft crash report headers and unhandled exceptions<\/p>\n<p>### \ud83d\udd12 Privacy-First Redaction<br \/>\nBefore anything leaves your server, MCSL scrubs sensitive data:<br \/>\n&#8211; IPv4 and IPv6 addresses \u2192 `[REDACTED_IP]`<br \/>\n&#8211; JWT tokens \u2192 `[REDACTED_TOKEN]`<br \/>\n&#8211; API keys and Bearer tokens \u2192 `[REDACTED_KEY]`<br \/>\n&#8211; JDBC\/database passwords \u2192 `password=[REDACTED]`<br \/>\n&#8211; Your own custom regex patterns (defined in `config.yml`)<\/p>\n<p>All redaction is configurable and can be turned on or off per category. **Player IPs are redacted by default.**<\/p>\n<p>### \ud83d\udcca Full Server Diagnostic Reports<br \/>\n`\/mcsl share` produces a rich, structured report including:<br \/>\n&#8211; Server software, version, and full build string<br \/>\n&#8211; All loaded plugins with version and enabled\/disabled status<br \/>\n&#8211; All loaded mods (Forge 1.12, Forge 1.13+, and Fabric all supported via reflection)<br \/>\n&#8211; Memory usage, TPS (1m\/5m\/15m), and server uptime<br \/>\n&#8211; MOTD, gamemode, difficulty, online mode, max players<br \/>\n&#8211; Parsed errors, warnings, and player events<br \/>\n&#8211; The full log tail<\/p>\n<p>### \ud83d\udca5 Automatic Crash Detection<br \/>\nIf your server crashes unexpectedly, MCSL&#8217;s JVM shutdown hook fires automatically, uploads the last 1,000 log lines along with the parsed error summary, and logs the HasteLog URL to console \u2014 even if the Bukkit scheduler is no longer running. Online operators receive an in-game notification with the link.<\/p>\n<p>### \u26a1 Fully Asynchronous<br \/>\nEvery upload runs off the main server thread. Your TPS will never drop because of a log upload.<\/p>\n<p>### \ud83e\udde9 Mod Server Support<br \/>\nMCSL detects and lists mods on:<br \/>\n&#8211; **Forge** (1.12.x via `fml.common.Loader`, 1.13+ via `fml.ModList`)<br \/>\n&#8211; **Fabric** (via `net.fabricmc.loader.api.FabricLoader`)<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udcf8 In Action<\/p>\n<p>### `\/mcsl upload 500`<br \/>\n&#8220;`<br \/>\n[MCSL] Uploading last 500 lines to HasteLog&#8230;<br \/>\n[MCSL] Uploaded (last 500 lines) successfully!<br \/>\n[MCSL] View report: https:\/\/logs.protectcord.com\/GvuuyVDqN2<br \/>\n&#8220;`<br \/>\n> The URL is **clickable** in-game \u2014 click it to open in your browser.<\/p>\n<p>&#8212;<\/p>\n<p>### `\/mcsl info`<br \/>\n&#8220;`<br \/>\n  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n  Server Information<br \/>\n  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n  Name:           My Minecraft Server<br \/>\n  Software:       Paper 1.20.4<br \/>\n  Version:        git-Paper-388 (MC: 1.20.4)<br \/>\n  Port:           25565<br \/>\n  Online Mode:    true<br \/>\n  Gamemode:       survival<br \/>\n  Difficulty:     normal<br \/>\n  Max Players:    100<br \/>\n  Online:         12 \/ 100<br \/>\n  Memory:         1842MB used \/ 4096MB max (committed: 2048MB)<br \/>\n  Uptime:         6h 34m 12s<br \/>\n  TPS:            19.98 \/ 19.97 \/ 19.95  (1m\/5m\/15m)<br \/>\n  Plugins:        32 enabled \/ 33 total<br \/>\n  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<p>### `\/mcsl plugins`<br \/>\n&#8220;`<br \/>\n  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n  Plugins \u2014 32 enabled \/ 33 total<br \/>\n  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n  [+] EssentialsX                v2.20.1   by EssentialsX Team<br \/>\n  [+] LuckPerms                  v5.4.108  by Luck<br \/>\n  [+] Vault                      v1.7.3    by MilkBowl<br \/>\n  [+] WorldEdit                  v7.3.1    by sk89q<br \/>\n  [-] BrokenPlugin               v1.0.0    by SomeAuthor<br \/>\n  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n&#8220;`<br \/>\n> `[+]` = enabled, `[-]` = disabled\/failed to load<\/p>\n<p>&#8212;<\/p>\n<p>### `\/mcsl errors`<br \/>\n&#8220;`<br \/>\n[MCSL] Found 3 errors and 7 warnings in the last 500 lines.<br \/>\n[MCSL] Last 3 errors:<br \/>\n  [ERROR] Could not load &#8216;plugins\/BrokenPlugin.jar&#8217; in folder &#8216;plugins&#8217;<br \/>\n  org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml<br \/>\n  [ERROR] Error occurred while enabling BrokenPlugin v1.0.0 (Is it up to date?)<br \/>\n[MCSL] Use \/mcsl upload errors to upload the full error log.<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<p>### Uploaded Report (example)<br \/>\n&#8220;`<br \/>\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550<br \/>\n              MCSL \u2014 Server Diagnostic Report<br \/>\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550<\/p>\n<p>Generated  : 2026-04-20 17:34:12 UTC<br \/>\nGenerator  : MCSL v1.0.0 (https:\/\/logs.protectcord.com)<\/p>\n<p>SERVER INFORMATION<br \/>\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n  Name         : My Minecraft Server<br \/>\n  Software     : Paper 1.20.4<br \/>\n  Full Version : git-Paper-388 (MC: 1.20.4)<br \/>\n  MOTD         : Welcome to My Server<br \/>\n  Online Mode  : true<br \/>\n  Port         : 25565<br \/>\n  Max Players  : 100<br \/>\n  Online Now   : 12 \/ 100<br \/>\n  Memory       : 1842MB used \/ 4096MB max<br \/>\n  Uptime       : 6h 34m 12s<br \/>\n  TPS          : 19.98 \/ 19.97 \/ 19.95<\/p>\n<p>PLUGINS (32 enabled \/ 33 total)<br \/>\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n  [+] EssentialsX               v2.20.1<br \/>\n  [+] LuckPerms                 v5.4.108<br \/>\n  [-] BrokenPlugin              v1.0.0   \u2190 DISABLED<\/p>\n<p>ERRORS &#038; EXCEPTIONS (3 found)<br \/>\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n  [ERROR] Could not load &#8216;plugins\/BrokenPlugin.jar&#8217;<br \/>\n  &#8230;<\/p>\n<p>FULL LOG (500 lines)<br \/>\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500<br \/>\n  &#8230; (redacted log content) &#8230;<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\ude80 Installation<\/p>\n<p>1. Download `MCSL-1.0.0.jar` from the Releases tab<br \/>\n2. Drop it into your server&#8217;s `\/plugins\/` folder<br \/>\n3. Restart or reload your server<br \/>\n4. A `plugins\/MCSL\/config.yml` will be generated automatically<br \/>\n5. Run `\/mcsl help` in-game or from console<\/p>\n<p>**No configuration required out of the box.** The plugin ships with a pre-configured API key and sane defaults.<\/p>\n<p>### Requirements<br \/>\n| Requirement | Version |<br \/>\n|&#8212;|&#8212;|<br \/>\n| Java | 8 or newer |<br \/>\n| Server | Bukkit \/ Spigot \/ Paper \/ Purpur \/ Folia |<br \/>\n| Minecraft | 1.8.8 \u2014 1.21.x |<\/p>\n<p>&#8212;<\/p>\n<p>## \u2699\ufe0f Configuration<\/p>\n<p>`plugins\/MCSL\/config.yml` is generated on first run. Every option is documented inline.<\/p>\n<p>&#8220;`yaml<br \/>\n# HasteLog API settings<br \/>\napi:<br \/>\n  timeout-ms: 50000             # HTTP request timeout<\/p>\n<p># Privacy &#038; redaction<br \/>\nredaction:<br \/>\n  enabled: true                 # Master toggle<br \/>\n  redact-player-ips: true       # Hide IPv4\/IPv6 addresses<br \/>\n  redact-server-ip: false       # Hide the server&#8217;s own IP (for \/mcsl share)<br \/>\n  redact-api-keys: true         # Hide JWT tokens, Bearer keys, sk- keys, etc.<br \/>\n  custom-patterns: []           # Your own regex patterns, e.g. &#8220;password=[^\\s]+&#8221;<\/p>\n<p># Log upload behaviour<br \/>\nupload:<br \/>\n  default-lines: 25000          # Lines uploaded when no argument is given<br \/>\n  include-server-info-header: true<br \/>\n  include-plugin-list: true<br \/>\n  include-mod-list: true<br \/>\n  async: true                   # Always recommended<\/p>\n<p># Automatic actions<br \/>\nauto:<br \/>\n  upload-on-crash: true         # Auto-upload on abnormal server exit<br \/>\n  upload-on-start: false        # Upload a summary when the server starts<br \/>\n  notify-ops-on-crash-upload: true<\/p>\n<p># \/mcsl share options<br \/>\nshare:<br \/>\n  include-server-ip: true<br \/>\n  include-port: true<br \/>\n  include-player-count: true<br \/>\n  include-performance: true<\/p>\n<p># Chat formatting<br \/>\nmessages:<br \/>\n  prefix: &#8220;&#038;8[&#038;bMCSL&#038;8]&#038;r &#8221;<br \/>\n&#8220;`<\/p>\n<p>### Live Config Changes<br \/>\nYou can change most settings without restarting:<br \/>\n&#8220;`<br \/>\n\/mcsl config redaction.redact-player-ips false<br \/>\n\/mcsl config upload.default-lines 1000<br \/>\n\/mcsl config auto.upload-on-crash false<br \/>\n\/mcsl reload<br \/>\n&#8220;`<\/p>\n<p>> \u26a0\ufe0f The API URL and API key are **baked into the JAR** and cannot be changed through config. This is intentional \u2014 it prevents misconfiguration and keeps the global key secure.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udcd6 Commands Reference<\/p>\n<p>All commands require the `mcsl.use` permission (op by default).<\/p>\n<p>### `\/mcsl upload [argument]`<br \/>\nUploads `latest.log` to HasteLog and returns a clickable URL.<\/p>\n<p>| Argument | Behaviour |<br \/>\n|&#8212;|&#8212;|<br \/>\n| *(none)* | Upload the last `upload.default-lines` lines (default: 25,000) |<br \/>\n| `500` | Upload the last 500 lines |<br \/>\n| `all` | Upload the entire log file |<br \/>\n| `errors` | Upload only lines containing errors or warnings |<\/p>\n<p>**Example:**<br \/>\n&#8220;`<br \/>\n\/mcsl upload 1000<br \/>\n\/mcsl upload errors<br \/>\n\/mcsl upload all<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<p>### `\/mcsl share`<br \/>\nGenerates and uploads a **full structured diagnostic report** \u2014 server info, plugin list, mod list, TPS, memory, errors, warnings, player events, and the full log tail \u2014 in a single HasteLog document.<\/p>\n<p>This is the command to use when asking for help. Share the link with a support team, developer, or community Discord and they have everything they need to diagnose your issue.<\/p>\n<p>&#8212;<\/p>\n<p>### `\/mcsl info`<br \/>\nPrints a formatted server information panel directly to your chat or console. Includes software version, performance metrics, player count, and plugin summary. Nothing is uploaded \u2014 it&#8217;s local only.<\/p>\n<p>&#8212;<\/p>\n<p>### `\/mcsl errors [lines]`<br \/>\nScans the last N lines of `latest.log` and prints a summary of errors and warnings directly in chat. Shows the last 10 errors inline. Suggests `\/mcsl upload errors` if there are more.<\/p>\n<p>&#8220;`<br \/>\n\/mcsl errors        \u2192 scan last 25,000 lines<br \/>\n\/mcsl errors 500    \u2192 scan last 500 lines<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<p>### `\/mcsl players`<br \/>\nScans the log for player events (join, leave, lost connection, kick, ban) and prints the last 15 in chat. Useful for quickly checking recent player activity without reading the full log.<\/p>\n<p>&#8212;<\/p>\n<p>### `\/mcsl plugins`<br \/>\nLists every plugin currently loaded by the server, with its version, author(s), and enabled\/disabled status. Disabled or failed plugins are shown with `[-]` in red so they&#8217;re immediately visible.<\/p>\n<p>&#8212;<\/p>\n<p>### `\/mcsl mods`<br \/>\nLists all loaded Forge or Fabric mods, including mod ID, display name, and version. Returns a message if the server is vanilla\/Bukkit-only with no mod loader.<\/p>\n<p>&#8212;<\/p>\n<p>### `\/mcsl crash`<br \/>\nFinds the most recently modified file in the `crash-reports\/` directory, uploads it with a plugin list header, and returns a HasteLog URL. Useful after a crash to quickly get the report online.<\/p>\n<p>&#8212;<\/p>\n<p>### `\/mcsl config <key> <value>`<br \/>\nChange a config setting at runtime without editing `config.yml` directly. Supports tab completion for key names and boolean values.<\/p>\n<p>&#8220;`<br \/>\n\/mcsl config redaction.enabled false<br \/>\n\/mcsl config share.include-server-ip false<br \/>\n\/mcsl config upload.default-lines 5000<br \/>\n&#8220;`<\/p>\n<p>&#8212;<\/p>\n<p>### `\/mcsl reload`<br \/>\nReloads `config.yml` from disk and recompiles any custom redaction patterns.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udd10 Permissions<\/p>\n<p>| Permission | Default | Description |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| `mcsl.use` | **op** | Access to all `\/mcsl` commands |<br \/>\n| `mcsl.upload` | **op** | Upload logs to HasteLog |<br \/>\n| `mcsl.info` | **op** | View server info |<br \/>\n| `mcsl.share` | **op** | Generate full diagnostic reports |<br \/>\n| `mcsl.config` | **op** | Change config at runtime |<\/p>\n<p>`mcsl.use` is a parent permission that grants all children automatically.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udee1\ufe0f Privacy &#038; Security<\/p>\n<p>### What is redacted by default?<br \/>\n| Data | Redacted? | Replacement |<br \/>\n|&#8212;|&#8212;|&#8212;|<br \/>\n| Player IPv4 addresses | \u2705 Yes | `[REDACTED_IP]` |<br \/>\n| Player IPv6 addresses | \u2705 Yes | `[REDACTED_IPv6]` |<br \/>\n| JWT tokens | \u2705 Yes | `[REDACTED_TOKEN]` |<br \/>\n| API keys (`sk-`, `Bearer`, `hl_`, etc.) | \u2705 Yes | `[REDACTED_KEY]` |<br \/>\n| JDBC\/database passwords | \u2705 Yes | `password=[REDACTED]` |<br \/>\n| Server IP (in `\/mcsl share`) | \u274c No (configurable) | `[SERVER_IP]` |<br \/>\n| Player usernames | \u274c No | \u2014 |<br \/>\n| World names | \u274c No | \u2014 |<\/p>\n<p>### What is uploaded?<br \/>\nOnly the content you explicitly request. MCSL never uploads in the background unless you have `auto.upload-on-crash: true` or `auto.upload-on-start: true` in your config. The API key is embedded in the JAR and cannot be read from config.yml.<\/p>\n<p>### Where is the data stored?<br \/>\nAll uploads go to logs.protectcord.com, which is a HasteLog instance operated by ProtectCord. Documents are accessible to anyone with the link.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udcca Analytics<\/p>\n<p>MCSL collects **anonymous usage statistics** via bStats. This includes:<br \/>\n&#8211; Number of servers using the plugin<br \/>\n&#8211; Minecraft and server software versions in use<\/p>\n<p>No log content, player data, or server-identifying information is ever collected. You can disable bStats server-wide in `plugins\/bStats\/config.yml`.<\/p>\n<p>&#8212;<\/p>\n<p>## \u2753 FAQ<\/p>\n<p>**Q: Does `\/mcsl upload` upload the entire log file?**<br \/>\nNo \u2014 by default it uploads the last 25,000 lines. Use `\/mcsl upload all` for the full file, or specify a number like `\/mcsl upload 500`.<\/p>\n<p>**Q: Can players see the uploaded URL?**<br \/>\nOnly operators (or players with `mcsl.use`) can run any MCSL command. The URL is shown only to the command sender.<\/p>\n<p>**Q: Is the API key safe?**<br \/>\nThe API key is XOR-obfuscated and compiled into the JAR \u2014 it does not appear as a readable string in the bytecode. It is also excluded from `config.yml` entirely and cannot be changed or read by server admins.<\/p>\n<p>**Q: Does this work on Folia?**<br \/>\nMCSL loads on Folia servers. Commands, log reading, and uploads all work. TPS detection uses Folia&#8217;s scheduler where available.<\/p>\n<p>**Q: Can I use a self-hosted HasteLog instance?**<br \/>\nNot through config \u2014 the URL is baked into the JAR. Contact ProtectCord if you need a custom build for your hosting environment.<\/p>\n<p>**Q: Does it work with Forge or Fabric?**<br \/>\nMCSL is a Bukkit plugin, so it runs on hybrid servers like Mohist (Forge+Bukkit) or Cardboard (Fabric+Bukkit). Mod detection works on these platforms via reflection.<\/p>\n<p>&#8212;<\/p>\n<p>## \ud83d\udd17 Links<\/p>\n<p>| Resource | Link |<br \/>\n|&#8212;|&#8212;|<br \/>\n| HasteLog Service | logs.protectcord.com |<br \/>\n| bStats Dashboard | bstats.org\/plugin\/bukkit\/MCSL\/30872 |<\/p>\n<p>&#8212;<\/p>\n<div align=\"center\">\n<p>Made with \u2764\ufe0f by **ProtectCord** \u00b7 Powered by HasteLog<\/p>\n<p>![Modrinth](https:\/\/modrinth.com\/plugin\/mcsl)<br \/>\n![bStats](https:\/\/bstats.org\/plugin\/bukkit\/MCSL\/30872)<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>MCSL is a dedicated server admin tool that lets you share your console logs, crash logs, timings, latest log and more. The platform allows sharing and management logs much easier.<\/p>\n","protected":false},"featured_media":99678,"template":"","meta":{"_minecraft_slug":"mcsl","_minecraft_project_id":"PvG9MjJ3","_minecraft_author":"protectcord","_minecraft_license":"MIT","_minecraft_downloads":34,"_minecraft_follows":1,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"mcsl.zip","_minecraft_size_bytes":839151,"_minecraft_version_count":12,"_minecraft_updated_at":"2026-05-15T22:00:15.358143Z","_minecraft_date_created":"2026-04-30T00:57:21.140248Z","_minecraft_date_modified":"2026-05-11T13:25:40.526520Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/mcsl","_minecraft_icon_attachment_id":99678,"_minecraft_imported_at":"2026-06-05T17:29:47+00:00","_minecraft_import_hash":"1d4c7a46e4bab0cd438a68213ef6b7f0","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[124,125,873,126,90,127,128,867,129,123,92],"mod_loader":[130,131,132,133,134],"minecraft_version":[339,340,341,357,359,360,379,382,385,438,446,449,110,111,112,113,114,115,116,117,118,119,120,46,47,48,49,50,51,52,53,54,55,56,57,58,59,36,60,93,94,101,102,62,37,40,41,73,74,38,78,79,80,81,82,30,31,860,861,862,863,864,83,167,163],"class_list":["post-99677","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-bukkit","mod_category-folia","mod_category-library","mod_category-management","mod_category-optimization","mod_category-paper","mod_category-purpur","mod_category-social","mod_category-spigot","mod_category-technology","mod_category-utility","mod_loader-bukkit","mod_loader-folia","mod_loader-paper","mod_loader-purpur","mod_loader-spigot","minecraft_version-1-10","minecraft_version-1-10-1","minecraft_version-1-10-2","minecraft_version-1-11","minecraft_version-1-11-1","minecraft_version-1-11-2","minecraft_version-1-12","minecraft_version-1-12-1","minecraft_version-1-12-2","minecraft_version-1-13","minecraft_version-1-13-1","minecraft_version-1-13-2","minecraft_version-1-14","minecraft_version-1-14-1","minecraft_version-1-14-2","minecraft_version-1-14-3","minecraft_version-1-14-4","minecraft_version-1-15","minecraft_version-1-15-1","minecraft_version-1-15-2","minecraft_version-1-16","minecraft_version-1-16-1","minecraft_version-1-16-2","minecraft_version-1-16-3","minecraft_version-1-16-4","minecraft_version-1-16-5","minecraft_version-1-17","minecraft_version-1-17-1","minecraft_version-1-18","minecraft_version-1-18-1","minecraft_version-1-18-2","minecraft_version-1-19","minecraft_version-1-19-1","minecraft_version-1-19-2","minecraft_version-1-19-3","minecraft_version-1-19-4","minecraft_version-1-20","minecraft_version-1-20-1","minecraft_version-1-20-2","minecraft_version-1-20-3","minecraft_version-1-20-4","minecraft_version-1-20-5","minecraft_version-1-20-6","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","minecraft_version-1-8-8","minecraft_version-1-8-9","minecraft_version-1-9","minecraft_version-1-9-1","minecraft_version-1-9-2","minecraft_version-1-9-3","minecraft_version-1-9-4","minecraft_version-26-1","minecraft_version-26-1-1","minecraft_version-26-1-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>mcsl - 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\/mcsl\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"mcsl - Minecraft\" \/>\n<meta property=\"og:description\" content=\"MCSL is a dedicated server admin tool that lets you share your console logs, crash logs, timings, latest log and more. The platform allows sharing and management logs much easier.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/mcsl\/\" \/>\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=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/mcsl\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/mcsl\\\/\",\"name\":\"mcsl - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/mcsl\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/mcsl\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/mcsl-icon-bcd729b461cc5246e40ea167592fe055bdcca777_96.webp\",\"datePublished\":\"2026-06-05T17:29:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/mcsl\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/mcsl\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/mcsl\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/mcsl-icon-bcd729b461cc5246e40ea167592fe055bdcca777_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/mcsl-icon-bcd729b461cc5246e40ea167592fe055bdcca777_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/mcsl\\\/#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\":\"mcsl\"}]},{\"@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":"mcsl - 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\/mcsl\/","og_locale":"en_US","og_type":"article","og_title":"mcsl - Minecraft","og_description":"MCSL is a dedicated server admin tool that lets you share your console logs, crash logs, timings, latest log and more. The platform allows sharing and management logs much easier.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/mcsl\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/mcsl\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/mcsl\/","name":"mcsl - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/mcsl\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/mcsl\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/mcsl-icon-bcd729b461cc5246e40ea167592fe055bdcca777_96.webp","datePublished":"2026-06-05T17:29:46+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/mcsl\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/mcsl\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/mcsl\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/mcsl-icon-bcd729b461cc5246e40ea167592fe055bdcca777_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/mcsl-icon-bcd729b461cc5246e40ea167592fe055bdcca777_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/mcsl\/#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":"mcsl"}]},{"@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\/99677","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\/99678"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=99677"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=99677"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=99677"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=99677"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}