{"id":46069384,"url":"https://github.com/medvemarci/statssystem","last_synced_at":"2026-04-02T21:55:19.241Z","repository":{"id":313805794,"uuid":"1036696114","full_name":"MedveMarci/StatsSystem","owner":"MedveMarci","description":"A SCP: Secret Laboratory LabApi plugin and API to manage different statistics for the players.","archived":false,"fork":false,"pushed_at":"2025-12-15T20:11:58.000Z","size":66,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-19T03:48:51.119Z","etag":null,"topics":["api","labapi","plugin","scpsl","stats"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MedveMarci.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"medvemarci","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2025-08-12T13:01:50.000Z","updated_at":"2025-11-10T18:09:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"78af1f07-c3a6-46d4-88eb-be2f1851bc85","html_url":"https://github.com/MedveMarci/StatsSystem","commit_stats":null,"previous_names":["medvemarci/statssystem"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/MedveMarci/StatsSystem","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MedveMarci%2FStatsSystem","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MedveMarci%2FStatsSystem/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MedveMarci%2FStatsSystem/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MedveMarci%2FStatsSystem/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MedveMarci","download_url":"https://codeload.github.com/MedveMarci/StatsSystem/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MedveMarci%2FStatsSystem/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29969700,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T12:56:10.327Z","status":"ssl_error","status_checked_at":"2026-03-01T12:55:24.744Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","labapi","plugin","scpsl","stats"],"created_at":"2026-03-01T13:01:30.680Z","updated_at":"2026-04-02T21:55:19.235Z","avatar_url":"https://github.com/MedveMarci.png","language":"C#","funding_links":["https://ko-fi.com/medvemarci"],"categories":[],"sub_categories":[],"readme":"# StatsSystem\n\n![Downloads](https://img.shields.io/github/downloads/MedveMarci/StatsSystem/total)\n![Version](https://img.shields.io/badge/version-2.0.0-blue)\n![Framework](https://img.shields.io/badge/.NET-4.8-purple)\n![License](https://img.shields.io/badge/license-MIT-green)\n\u003ca href=\"https://github.com/KenleyundLeon/DeltaPatch\"\u003e\u003cimg src=\"https://image2url.com/images/1759565889245-ff2e02c2-1f19-4f72-bc06-43a3b77fb4bd.png\"\u003e\u003c/a\u003e\n\n\u003e **SCP: Secret Laboratory LabAPI plugin** for comprehensive, modular player statistics tracking.\n## Support\n\n\u003ca href='https://discord.gg/KmpA8cfaSA'\u003e\u003cimg src='https://www.allkpop.com/upload/2021/01/content/262046/1611711962-discord-button.png' height=\"80\"\u003e\u003c/a\u003e\n\n---\n\n## Features\n\n- **Modular stat tracking** — kills, deaths, playtime, SCP kills, MicroHID kills, Class D kills and more, all toggleable individually\n- **Daily / historical stats** — configurable time windows (e.g. last 7, 30, 90 days) for every tracked stat\n- **Two storage backends** — human-readable JSON or compact Binary format, swappable\n- **Leaderboards** — in-game leaderboard for any stat, including historical period views\n- **Public API** — full C# API for other plugins to read and write custom statistics\n- **Admin tools** — save, reload, reset and inspect stats via Remote Admin\n- **Auto-save** — configurable auto-save interval with file writes (no data corruption)\n\n---\n\n## Installation\n\n1. Download the latest `StatsSystem.dll` from [GitHub Releases](https://github.com/MedveMarci/StatsSystem/releases).\n2. Place the DLL in your server's folder.\n   - Linux: `~/.config/SCP Secret Laboratory/LabAPI/plugins/global/`\n   - Windows: `%appdata%/SCP Secret Laboratory/LabAPI/plugins/global/`\n3. Start the server — a default `config.yml` is generated automatically.\n4. Adjust the config to your needs and reload.\n\n---\n\n## Configuration\n\nConfiguration is located at:\n- Linux: `~/.config/SCP Secret Laboratory/LabAPI/configs/port/`\n- Windows: `%appdata%/SCP Secret Laboratory/LabAPI/configs/port/`\n\n| Key | Default | Description |\n|-----|---------|-------------|\n| `PlaytimeTracking` | `true` | Track total playtime per player |\n| `KillsTracking` | `true` | Track total kills |\n| `DeathsTracking` | `true` | Track total deaths |\n| `KillsAsClassDTracking` | `true` | Track kills made while playing as Class D |\n| `ClassDKillsTracking` | `true` | Track kills where the victim is Class D |\n| `ScpKillsTracking` | `true` | Track kills where the victim is an SCP |\n| `MicroHidKillsTracking` | `true` | Track kills made with MicroHID |\n| `LastDays` | `[7, 30, 90]` | Day ranges for historical stat display |\n| `StatsDataFolder` | `StatsSystem` | Folder name for stat storage files |\n| `AutoSaveIntervalSeconds` | `60` | How often stats are saved (minimum: 10) |\n| `StorageProvider` | `Json` | Storage format: `Json` or `Binary` |\n| `Debug` | `false` | Enable verbose debug logging |\n\n---\n\n## Commands\n\n### Player Commands (Client / Remote Admin)\n\n| Command | Aliases | Description |\n|---------|---------|-------------|\n| `.getstat` | `.gs` | View your own stats |\n| `.getstat \u003cplayer\u003e` | `.gs \u003cplayer\u003e` | View another player's stats by name or user ID |\n| `.getleaderboard \u003cstat\u003e` | `.gl \u003cstat\u003e` | Top 10 players for a given stat |\n| `.gl \u003cstat\u003e \u003ctop\u003e` | | Top N players for a stat |\n| `.gl \u003cstat\u003e last \u003cdays\u003e` | | Top players for the last N days |\n| `.gl \u003cstat\u003e last \u003cdays\u003e \u003ctop\u003e` | | Top N players for the last N days |\n\n**Leaderboard examples:**\n```\n.gl Kills 20\n.gl TotalPlayTime last 7\n.gl ScpKills last 30 15\n```\n\n### Admin Commands (Remote Admin / Game Console)\n\n\u003e Requires the `stat.manage` permission.\n\n| Command | Aliases | Description |\n|---------|---------|-------------|\n| `ss save` | `ss s` | Immediately save all stats to disk |\n| `ss reload` | `ss r` | Reload stats from disk |\n| `ss resetplayer \u003cuserId\u003e` | `ss rp`, `ss reset` | Delete all stats for a player |\n| `ss migrate` | `ss m` | Repair legacy v1 counter inconsistencies |\n| `ss info` | `ss i` | Show system status (player count, keys, auto-save interval) |\n\n#### Stat Modification (Remote Admin)\n\n\u003e Requires the `stat.manage` permission.\n\n| Command | Description |\n|---------|-------------|\n| `addstat \u003cplayer\u003e \u003cstatKey\u003e \u003camount\u003e` | Add to a stat value |\n| `removestat \u003cplayer\u003e \u003cstatKey\u003e \u003camount\u003e` | Subtract from a stat value |\n| `setstat \u003cplayer\u003e \u003cstatKey\u003e \u003cvalue\u003e` | Set a stat to an exact value |\n| `deletestat \u003cuserId\u003e \u003cstatKey\u003e` | Remove a stat key entirely |\n\n---\n\n## Storage\n\nStats are saved to:\n\n- Linux: `~/.config/SCP Secret Laboratory/LabAPI/configs/StatsSystem`\n- Windows: `%appdata%/SCP Secret Laboratory/LabAPI/configs/StatsSystem`\n\n(or `player_stats.bin` when using Binary storage)\n\n### JSON vs Binary\n\n| | JSON | Binary |\n|--|------|--------|\n| Human-readable | Yes | No |\n| File size | Larger | ~70% smaller |\n| Speed | Slower | Faster |\n| Editability | Easy | Requires tool |\n\nYou can switch between formats at runtime — the plugin will automatically save in the old format and reload in the new one.\n\n---\n\n## Default Stat Keys\n\n| Key | Type | Description |\n|-----|------|-------------|\n| `Kills` | Counter | Total kills |\n| `Deaths` | Counter | Total deaths |\n| `KillsAsClassD` | Counter | Kills made while Class D |\n| `ClassDKills` | Counter | Kills where victim was Class D |\n| `ScpKills` | Counter | Kills where victim was an SCP |\n| `MicroHidKills` | Counter | Kills with MicroHID |\n| `TotalPlayTime` | Duration | Total time spent on server |\n\n## Credits\n\n- Plugin developed by **MedveMarci**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmedvemarci%2Fstatssystem","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmedvemarci%2Fstatssystem","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmedvemarci%2Fstatssystem/lists"}