Checks connecting users for configurable criteria of the Steam WebAPI and kicks if not fulfilled.
If you upgrade from the previous versions (< 5), please back-up your old config and delete it; like-wise the language file in oxide/lang/en etc.
steamchecks.use-- Allows to issue test commandssteamchecks.skip-- Users with this permission, won't be checked on connect
steamcheck <steamid64>-- Checks the given steamid64 (does not matter if connected), for all configured criteria and returns wether he would have been kickedsteamcheck.runtests <steamid64>-- Calls all WebAPI functions with the given steamid64 and returns detailed output. Use this output when creating an issue
{
"AdditionalKickMessage": "",
"ApiKey": "",
"CacheDeniedPlayers": false,
"CachePassedPlayers": true,
"Kicking": {
"CommunityBan": true,
"TradeBan": true,
"PrivateProfile": true,
"LimitedAccount": true,
"NoProfile": true,
"FamilyShare": false,
"ForceHoursPlayedKick": false
},
"LogInsteadofKick": false,
"Thresholds": {
"MaxVACBans": 1,
"MinDaysSinceLastBan": -1,
"MaxGameBans": 1,
"MinSteamLevel": 2,
"MaxAccountCreationTime": -1,
"MinGameCount": 3,
"MinRustHoursPlayed": -1,
"MaxRustHoursPlayed": -1,
"MinOtherGamesPlayed": 2,
"MinAllGamesHoursPlayed": -1
}
}ApiKey-- The Steam Web API Key, required. Generate one here: https://steamcommunity.com/dev/apikeyAdditionalKickMessage-- This will be appended to all kick-messages. E.g. you could write in a way to get whitelistedCachePassedPlayers-- Don't check players again, which passed the checks- Cache resets on plugin-reload / server restart
CacheDeniedPlayers-- Don't check players again, which failed checks and kick directly- Cache resets on plugin-reload / server restart
- 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
CommunityBan(trueorfalse) -- Kick when the player is community-bannedTradeBan(trueorfalse) -- Kick when the player is trade-bannedPrivateProfile(trueorfalse) -- Kick when the player has a private profile. Most checks depend on itLimitedAccount(trueorfalse) -- Kick when the player has a limited accountNoProfile(trueorfalse) -- Kick when the player has his steam community profile not yet set upForceHoursPlayedKick(trueorfalse) -- Kick the player, if hours played checks are on (e.g. MinRustHoursPlayed) - and he has his games hidden- Note: A lot of users have their Steam profiles on public BUT theirs hours-played hidden (new Steam default setting)
- With this option being false, it will only do the hour-checks if he has the hours-played-information on public (recommended)
LogInsteadofKick(trueorfalse) -- If true, will just log whether the player would pass the steamchecks, instead of actually kicking him on failureMaxVACBans-- If0, will kick if the user has any VAC Ban. If1, will kick if the user has at least 2 VAC Bans, etc.. Use-1to disable check.MinDaysSinceLastBan-- Minimum Number of days since the last ban. Use-1to disable check.- This option only makes sense, when
MaxVACBansis greater than 0 or disabled with -1.
- This option only makes sense, when
MaxGameBans-- If0, will kick if the user has any Game Ban. If1, will kick if the user has at least 2 Game Bans, etc.. Use-1to disable check.
MinSteamLevel-- The minimum Steam level the user must have- A steam level of 1 or higher also excludes all limited accounts
MaxAccountCreationTimeIn Unix time -- Accounts created after this time point will be kickedMinGameCount-- Minimum amount of games the user must have- If the user has hidden their hours played, it will use information from the Steam badges
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.
MinRustHoursPlayedin hours -- Minimum hours of Rust playedMaxRustHoursPlayedin hours -- Maximum hours of Rust played (could be useful for newbie servers)MinOtherGamesPlayedin hours -- Minimum hours of Steam games the user must have played (except rust)- Will only check, if the user has at least 2 steam games
MinAllGamesHoursPlayedin hours -- Minimum hours of games the user must have played (including rust)
All checks do NOT include free-2-play games. You can disable checks with -1.
Simply give your players/groups you want to whitelist the permission steamchecks.skip
You can also use a group for that:
oxide.group add whitelist -- Add whitelist group
oxide.grant group whitelist steamchecks.skip -- Add permission to whitelist group
oxide.usergroup add <steamid64> whitelist -- Add player to whitelist group
The plugin does the checks in this order:
- Bans
- Is game lended (family share)
- Player Summaries (is profile private, account creation time)
- Limited Profile and Steam-Commmunty profile
Only when profile public:
- Player Level
- Game Hours and Count
- Game badges, to get amount of games
- Only done if the user has his game hours hidden
The checks are completly asynchronous.
If you encounter a bug, please create an GitHub issue.
Please include the output of steamcheck <steamid64> and steamcheck.runtests <steamid64>, 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.
Clone the GitHub-repository. Copy the Oxide DLLs into the dep folder, and open the project with VSCode.