{"id":20068711,"url":"https://github.com/sapd/steamchecksreborn","last_synced_at":"2026-06-29T07:31:51.153Z","repository":{"id":85217287,"uuid":"331692122","full_name":"Sapd/SteamChecksReborn","owner":"Sapd","description":"Checks connecting users for configurable criteria of the Steam WebAPI and kicks if not fulfilled","archived":false,"fork":false,"pushed_at":"2022-01-25T19:11:33.000Z","size":99,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-02T11:25:20.324Z","etag":null,"topics":["modding","oxide","playrust","rust-game","steam","umod"],"latest_commit_sha":null,"homepage":"https://umod.org/plugins/steam-checks","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Sapd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2021-01-21T16:49:53.000Z","updated_at":"2023-09-08T18:17:33.000Z","dependencies_parsed_at":"2023-03-13T04:41:41.241Z","dependency_job_id":null,"html_url":"https://github.com/Sapd/SteamChecksReborn","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/Sapd/SteamChecksReborn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sapd%2FSteamChecksReborn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sapd%2FSteamChecksReborn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sapd%2FSteamChecksReborn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sapd%2FSteamChecksReborn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sapd","download_url":"https://codeload.github.com/Sapd/SteamChecksReborn/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sapd%2FSteamChecksReborn/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34918101,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-29T02:00:05.398Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["modding","oxide","playrust","rust-game","steam","umod"],"created_at":"2024-11-13T14:08:22.605Z","updated_at":"2026-06-29T07:31:51.128Z","avatar_url":"https://github.com/Sapd.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"Checks connecting users for configurable criteria of the Steam WebAPI and kicks if not fulfilled.  \n\nIf you upgrade from the previous versions (\u003c 5), please back-up your old config and delete it; like-wise the language file in oxide/lang/en etc.\n\n## Permissions\n\n* `steamchecks.use`  -- Allows to issue test commands\n* `steamchecks.skip` -- Users with this permission, won't be checked on connect\n\n## Console Commands\n\n* `steamcheck \u003csteamid64\u003e` -- Checks the given steamid64 (does not matter if connected), for all configured criteria and returns wether he would have been kicked\n* `steamcheck.runtests \u003csteamid64\u003e` -- Calls all WebAPI functions with the given steamid64 and returns detailed output. Use this output when creating an issue\n\n## Configuration\n\n```json\n{\n  \"AdditionalKickMessage\": \"\",\n  \"ApiKey\": \"\",\n  \"CacheDeniedPlayers\": false,\n  \"CachePassedPlayers\": true,\n  \"Kicking\": {\n    \"CommunityBan\": true,\n    \"TradeBan\": true,\n    \"PrivateProfile\": true,\n    \"LimitedAccount\": true,\n    \"NoProfile\": true,\n    \"FamilyShare\": false,\n    \"ForceHoursPlayedKick\": false\n  },\n  \"LogInsteadofKick\": false,\n  \"Thresholds\": {\n    \"MaxVACBans\": 1,\n    \"MinDaysSinceLastBan\": -1,\n    \"MaxGameBans\": 1,\n    \"MinSteamLevel\": 2,\n    \"MaxAccountCreationTime\": -1,\n    \"MinGameCount\": 3,\n    \"MinRustHoursPlayed\": -1,\n    \"MaxRustHoursPlayed\": -1,\n    \"MinOtherGamesPlayed\": 2,\n    \"MinAllGamesHoursPlayed\": -1\n  }\n}\n```\n\n##### Options explained\n\n* `ApiKey` -- The Steam Web API Key, required. Generate one here: https://steamcommunity.com/dev/apikey\n* `AdditionalKickMessage` -- This will be appended to all kick-messages. E.g. you could write in a way to get whitelisted\n* `CachePassedPlayers` -- Don't check players again, which passed the checks\n    * Cache resets on plugin-reload / server restart\n* `CacheDeniedPlayers` -- Don't check players again, which failed checks and kick directly\n    * Cache resets on plugin-reload / server restart\n    * Default is false, as players can't join if their have their profile on private - and then try to re-join with the same profile set to public\n* `CommunityBan` (`true` or `false`) -- Kick when the player is community-banned\n* `TradeBan` (`true` or `false`) -- Kick when the player is trade-banned\n* `PrivateProfile` (`true` or `false`) -- Kick when the player has a private profile. Most checks depend on it\n* `LimitedAccount` (`true` or `false`) -- Kick when the player has a limited account\n* `NoProfile` (`true` or `false`) -- Kick when the player has his steam community profile not yet set up\n* `ForceHoursPlayedKick` (`true` or `false`) -- Kick the player, if hours played checks are on (e.g. MinRustHoursPlayed) - and he has his games hidden\n    * Note: A lot of users have their Steam profiles on public BUT theirs hours-played hidden (new Steam default setting)\n    * With this option being false, it will only do the hour-checks if he has the hours-played-information on public (recommended)\n* `LogInsteadofKick` (`true` or `false`) -- If true, will just log whether the player would pass the steamchecks, instead of actually kicking him on failure\n* `MaxVACBans` -- If `0`, will kick if the user has any VAC Ban. If `1`, will kick if the user has at least 2 VAC Bans, etc.. Use `-1` to disable check.\n* `MinDaysSinceLastBan` -- Minimum Number of days since the last ban. Use `-1` to disable check.\n    * This option only makes sense, when `MaxVACBans` is greater than 0 or disabled with -1.\n* `MaxGameBans` -- If `0`, will kick if the user has any Game Ban. If `1`, will kick if the user has at least 2 Game Bans, etc.. Use `-1` to disable check.\n\n###### Those options require a **public** steam profile:\n* `MinSteamLevel` -- The minimum Steam level the user must have\n    * A steam level of 1 or higher also excludes all limited accounts\n* `MaxAccountCreationTime` In Unix time -- Accounts created after this time point will be kicked\n* `MinGameCount` -- Minimum amount of games the user must have\n    * If the user has hidden their hours played, it will use information from the Steam badges\n\n###### Those options require, that the user has their games/gametimes visible. If `ForceHoursPlayedKick` is false, it will only kick them, if their games are visible and the constraints below are not matched.\n* `MinRustHoursPlayed` in hours -- Minimum hours of Rust played \n* `MaxRustHoursPlayed` in hours -- Maximum hours of Rust played (could be useful for newbie servers)\n* `MinOtherGamesPlayed` in hours -- Minimum hours of Steam games the user must have played (except rust)\n    * Will only check, if the user has at least 2 steam games\n* `MinAllGamesHoursPlayed` in hours -- Minimum hours of games the user must have played (including rust)\n\nAll checks do NOT include free-2-play games. You can disable checks with `-1`.\n\n## Whitelist\n\nSimply give your players/groups you want to whitelist the permission `steamchecks.skip`\n\nYou can also use a group for that:  \n`oxide.group add whitelist` -- Add whitelist group  \n`oxide.grant group whitelist steamchecks.skip` -- Add permission to whitelist group  \n`oxide.usergroup add \u003csteamid64\u003e whitelist` -- Add player to whitelist group  \n\n## Behaviour\n\nThe plugin does the checks in this order:\n1. Bans\n2. Is game lended (family share)\n3. Player Summaries (is profile private, account creation time)\n    * Limited Profile and Steam-Commmunty profile\n\nOnly when profile public:  \n\n4. Player Level\n5. Game Hours and Count\n6. Game badges, to get amount of games\n    - Only done if the user has his game hours hidden\n\nThe checks are completly asynchronous.\n\n## Issues\n\nIf you encounter a bug, please create an GitHub issue.  \nPlease include the output of `steamcheck \u003csteamid64\u003e` and `steamcheck.runtests \u003csteamid64\u003e`, using the steamid on which the checks don't pass correctly. If you have an error, also include the offending steamids. Also your configuration file would be helpful.\n\n## Development\n\nClone the GitHub-repository. Copy the Oxide DLLs into the dep folder, and open the project with VSCode.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsapd%2Fsteamchecksreborn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsapd%2Fsteamchecksreborn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsapd%2Fsteamchecksreborn/lists"}