Garry's Mod Wiki

Revision Difference

GM:CheckPassword#546807

<function name="CheckPassword" parent="GM" type="hook"> <ishook>yes</ishook> <description> Called when a non local player connects to allow the Lua system to check the password. The default behaviour in the base gamemodes emulates what would normally happen. If sv_password is set and its value matches the password passed in by the client - then they are allowed to join. If it isn't set it lets them in too. </description> <realm>Server</realm> <predicted>No</predicted> <args> <arg name="steamID64" type="string">The 64bit Steam ID of the joining player, use <page>util.SteamIDFrom64</page> to convert it to a `STEAM_0:` one.</arg> <arg name="ipAddress" type="string">The IP of the connecting client</arg> <arg name="svPassword" type="string">The current value of sv_password (the password set by the server)</arg> <arg name="clPassword" type="string">The password provided by the client</arg> <arg name="name" type="string">The name of the joining player</arg> </args> <rets> <ret name="" type="boolean">If the hook returns false then the player is disconnected</ret> <ret name="" type="string">If returning false in the first argument, then this should be the disconnect message. This will default to `#GameUI_ServerRejectBadPassword`, which is `Bad Password.` translated to the client's language.</ret> </rets> </function> <example> <description> A user access whitelist to the server. Available pre-defined messages can be found in `../sourceengine/resource/gameui_english.txt` files or [here](https://github.com/Facepunch/garrysmod/blob/master/garrysmod/resource/gameui_english.txt). Suggested messages are `#GameUI_ConnectionFailed` and `#GameUI_ServerRejectLANRestrict`. </description> <code> local allowed = { [ "76561198012345678" ] = true, -- Me [ "76561198123456789" ] = true, -- Friend #1 [ "76561198234567890" ] = true, -- Friend #2 } hook.Add( "CheckPassword", "access_whitelist", function( steamID64 ) if not allowed[ steamID64 ] then return false, "#GameUI_ServerRejectLANRestrict" end end ) </code> </example>