################ ISteamGameServer ################ .. note:: This documentation is auto-generated. Methods marked with 🤖 are automatically generated bindings. Methods marked with ✍️ are manually implemented and methods marked with ✋ are currently not implemented. List of Functions ----------------- * :func:`GameServer.AssociateWithClan` * :func:`GameServer.BLoggedOn` * :func:`GameServer.BSecure` * :func:`GameServer.BUpdateUserData` * :func:`GameServer.BeginAuthSession` * :func:`GameServer.CancelAuthTicket` * :func:`GameServer.ClearAllKeyValues` * :func:`GameServer.ComputeNewPlayerCompatibility` * :func:`GameServer.CreateUnauthenticatedUserConnection` * :func:`GameServer.EndAuthSession` * :func:`GameServer.GetAuthSessionTicket` * :func:`GameServer.GetGameplayStats` * :func:`GameServer.GetNextOutgoingPacket` * :func:`GameServer.GetPublicIP` * :func:`GameServer.GetServerReputation` * :func:`GameServer.GetSteamID` * :func:`GameServer.HandleIncomingPacket` * :func:`GameServer.LogOff` * :func:`GameServer.LogOn` * :func:`GameServer.LogOnAnonymous` * :func:`GameServer.RequestUserGroupStatus` * :func:`GameServer.SetAdvertiseServerActive` * :func:`GameServer.SetBotPlayerCount` * :func:`GameServer.SetDedicatedServer` * :func:`GameServer.SetGameData` * :func:`GameServer.SetGameDescription` * :func:`GameServer.SetGameTags` * :func:`GameServer.SetKeyValue` * :func:`GameServer.SetMapName` * :func:`GameServer.SetMaxPlayerCount` * :func:`GameServer.SetModDir` * :func:`GameServer.SetPasswordProtected` * :func:`GameServer.SetProduct` * :func:`GameServer.SetRegion` * :func:`GameServer.SetServerName` * :func:`GameServer.SetSpectatorPort` * :func:`GameServer.SetSpectatorServerName` * :func:`GameServer.UserHasLicenseForApp` * :func:`GameServer.WasRestartRequested` List of Callbacks ----------------- * :func:`GameServer.OnSteamServersConnected` * :func:`GameServer.OnSteamServerConnectFailure` * :func:`GameServer.OnSteamServersDisconnected` * :func:`GameServer.OnValidateAuthTicketResponse` * :func:`GameServer.OnGSClientApprove` * :func:`GameServer.OnGSClientDeny` * :func:`GameServer.OnGSClientKick` * :func:`GameServer.OnGSClientAchievementStatus` * :func:`GameServer.OnGSPolicyResponse` * :func:`GameServer.OnGSGameplayStats` * :func:`GameServer.OnGSClientGroupStatus` * :func:`GameServer.OnGSReputation` * :func:`GameServer.OnAssociateWithClanResult` * :func:`GameServer.OnComputeNewPlayerCompatibilityResult` Function Reference ------------------ .. function:: GameServer.AssociateWithClan(steamIDClan, callback) 🤖 **Auto-generated binding** :param uint64 - CSteamID steamIDClan: :param function callback: CallResult callback receiving struct :func:`AssociateWithClanResult_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `AssociateWithClan `_ .. function:: GameServer.BLoggedOn() 🤖 **Auto-generated binding** :returns: (bool) Return value :SteamWorks: `BLoggedOn `_ **Example**:: local loggedOn = Steam.GameServer.BLoggedOn() .. function:: GameServer.BSecure() 🤖 **Auto-generated binding** :returns: (bool) Return value :SteamWorks: `BSecure `_ **Example**:: local secure = Steam.GameServer.BSecure() if secure then print('Server is VAC-secured') end .. function:: GameServer.BUpdateUserData(steamIDUser, pchPlayerName, uScore) 🤖 **Auto-generated binding** :param uint64 - CSteamID steamIDUser: :param str? pchPlayerName: :param int uScore: :returns: (bool) Return value :SteamWorks: `BUpdateUserData `_ **Example**:: -- Update a connected player's display name and score Steam.GameServer.BUpdateUserData(playerSteamID, playerName, playerScore) .. function:: GameServer.BeginAuthSession(pAuthTicket, cbAuthTicket, steamID) 🤖 **Auto-generated binding** :param str? pAuthTicket: :param int cbAuthTicket: size of the input array ``pAuthTicket`` :param uint64 - CSteamID steamID: :returns: (int - EBeginAuthSessionResult) Return value :SteamWorks: `BeginAuthSession `_ **Example**:: -- Validate an auth ticket received from a client local result = Steam.GameServer.BeginAuthSession(authTicket, authTicketSize, clientSteamID) if result == k_EBeginAuthSessionResultOK then print('Started auth session for', clientSteamID) else print('Failed to start auth session', result) end .. function:: GameServer.CancelAuthTicket(hAuthTicket) 🤖 **Auto-generated binding** :param int - HAuthTicket hAuthTicket: :SteamWorks: `CancelAuthTicket `_ .. function:: GameServer.ClearAllKeyValues() 🤖 **Auto-generated binding** :SteamWorks: `ClearAllKeyValues `_ **Example**:: Steam.GameServer.ClearAllKeyValues() -- Reset and re-add updated values Steam.GameServer.SetKeyValue('version', '1.6.0') .. function:: GameServer.ComputeNewPlayerCompatibility(steamIDNewPlayer, callback) 🤖 **Auto-generated binding** :param uint64 - CSteamID steamIDNewPlayer: :param function callback: CallResult callback receiving struct :func:`ComputeNewPlayerCompatibilityResult_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `ComputeNewPlayerCompatibility `_ .. function:: GameServer.CreateUnauthenticatedUserConnection() 🤖 **Auto-generated binding** :returns: (uint64 - CSteamID) Return value :SteamWorks: `CreateUnauthenticatedUserConnection `_ .. function:: GameServer.EndAuthSession(steamID) 🤖 **Auto-generated binding** :param uint64 - CSteamID steamID: :SteamWorks: `EndAuthSession `_ **Example**:: Steam.GameServer.EndAuthSession(steamID) .. function:: GameServer.GetAuthSessionTicket(cbMaxTicket, pSnid) 🤖 **Auto-generated binding** :param int? cbMaxTicket: size of the buffer to allocate for ``pTicket``. If ``nil`` then the buffer will be ``NULL``. :param pSnid: (:ref:`SteamNetworkingIdentity `) :returns: (int - HAuthTicket) Return value :returns: (str) ``pTicket`` :returns: (int) ``pcbTicket`` :SteamWorks: `GetAuthSessionTicket `_ **Signature differences from C++ API:** * Parameter ``pTicket`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. * Parameter ``pcbTicket`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. .. function:: GameServer.GetGameplayStats() 🤖 **Auto-generated binding** :SteamWorks: `GetGameplayStats `_ .. function:: GameServer.GetNextOutgoingPacket(cbMaxOut) 🤖 **Auto-generated binding** :param int? cbMaxOut: size of the buffer to allocate for ``pOut``. If ``nil`` then the buffer will be ``NULL``. :returns: (int) Return value :returns: (str) ``pOut`` :returns: (int) ``pNetAdr`` :returns: (int) ``pPort`` :SteamWorks: `GetNextOutgoingPacket `_ **Signature differences from C++ API:** * Parameter ``pOut`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. * Parameter ``pNetAdr`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. * Parameter ``pPort`` is not a parameter in Lua — it is an output-only pointer in C++ and is returned as an additional return value. .. function:: GameServer.GetPublicIP() 🤖 **Auto-generated binding** :returns: (:ref:`SteamIPAddress_t `) Return value :SteamWorks: `GetPublicIP `_ **Example**:: local ip = Steam.GameServer.GetPublicIP() print('Server public IP:', ip.m_rgubIPv6) .. function:: GameServer.GetServerReputation(callback) 🤖 **Auto-generated binding** :param function callback: CallResult callback receiving struct :func:`GSReputation_t ` and a boolean :returns: (uint64) ``SteamAPICall_t`` handle for this async call. The result is delivered via the ``callback`` parameter when :func:`Steam.RunCallbacks` is called. :SteamWorks: `GetServerReputation `_ .. function:: GameServer.GetSteamID() 🤖 **Auto-generated binding** :returns: (uint64 - CSteamID) Return value :SteamWorks: `GetSteamID `_ **Example**:: local server_id = Steam.GameServer.GetSteamID() print('Server Steam ID:', tostring(server_id)) .. function:: GameServer.HandleIncomingPacket(pData, cbData, srcIP, srcPort) 🤖 **Auto-generated binding** :param str? pData: :param int cbData: size of the input array ``pData`` :param int srcIP: :param int srcPort: :returns: (bool) Return value :SteamWorks: `HandleIncomingPacket `_ .. function:: GameServer.LogOff() 🤖 **Auto-generated binding** :SteamWorks: `LogOff `_ **Example**:: Steam.GameServer.LogOff() .. function:: GameServer.LogOn(pszToken) 🤖 **Auto-generated binding** :param str? pszToken: :SteamWorks: `LogOn `_ **Example**:: local accessToken = 'abcdef123456' -- Access token from Steam partner site Steam.GameServer.LogOn(accessToken) .. function:: GameServer.LogOnAnonymous() 🤖 **Auto-generated binding** :SteamWorks: `LogOnAnonymous `_ **Example**:: Steam.GameServer.LogOnAnonymous() .. function:: GameServer.RequestUserGroupStatus(steamIDUser, steamIDGroup) 🤖 **Auto-generated binding** :param uint64 - CSteamID steamIDUser: :param uint64 - CSteamID steamIDGroup: :returns: (bool) Return value :SteamWorks: `RequestUserGroupStatus `_ **Example**:: -- Check if a player is in a Steam group (e.g. for whitelist) Steam.GameServer.RequestUserGroupStatus(playerSteamID, groupSteamID) .. function:: GameServer.SetAdvertiseServerActive(bActive) 🤖 **Auto-generated binding** :param bool bActive: :SteamWorks: `SetAdvertiseServerActive `_ **Example**:: -- Make the server visible in the server browser Steam.GameServer.SetAdvertiseServerActive(true) .. function:: GameServer.SetBotPlayerCount(cBotplayers) 🤖 **Auto-generated binding** :param int cBotplayers: :SteamWorks: `SetBotPlayerCount `_ **Example**:: Steam.GameServer.SetBotPlayerCount(0) .. function:: GameServer.SetDedicatedServer(bDedicated) 🤖 **Auto-generated binding** :param bool bDedicated: :SteamWorks: `SetDedicatedServer `_ **Example**:: Steam.GameServer.SetDedicatedServer(true) .. function:: GameServer.SetGameData(pchGameData) 🤖 **Auto-generated binding** :param str? pchGameData: :SteamWorks: `SetGameData `_ .. function:: GameServer.SetGameDescription(pszGameDescription) 🤖 **Auto-generated binding** :param str? pszGameDescription: :SteamWorks: `SetGameDescription `_ **Example**:: Steam.GameServer.SetGameDescription('A competitive FPS game') .. function:: GameServer.SetGameTags(pchGameTags) 🤖 **Auto-generated binding** :param str? pchGameTags: :SteamWorks: `SetGameTags `_ **Example**:: Steam.GameServer.SetGameTags('ranked,competitive') .. function:: GameServer.SetKeyValue(pKey, pValue) 🤖 **Auto-generated binding** :param str? pKey: :param str? pValue: :SteamWorks: `SetKeyValue `_ **Example**:: -- Set server rules visible in the server browser Steam.GameServer.SetKeyValue('version', '1.5.0') Steam.GameServer.SetKeyValue('region', 'us-east') .. function:: GameServer.SetMapName(pszMapName) 🤖 **Auto-generated binding** :param str? pszMapName: :SteamWorks: `SetMapName `_ **Example**:: Steam.GameServer.SetMapName('de_dust2') .. function:: GameServer.SetMaxPlayerCount(cPlayersMax) 🤖 **Auto-generated binding** :param int cPlayersMax: :SteamWorks: `SetMaxPlayerCount `_ **Example**:: Steam.GameServer.SetMaxPlayerCount(16) .. function:: GameServer.SetModDir(pszModDir) 🤖 **Auto-generated binding** :param str? pszModDir: :SteamWorks: `SetModDir `_ .. function:: GameServer.SetPasswordProtected(bPasswordProtected) 🤖 **Auto-generated binding** :param bool bPasswordProtected: :SteamWorks: `SetPasswordProtected `_ **Example**:: Steam.GameServer.SetPasswordProtected(false) .. function:: GameServer.SetProduct(pszProduct) 🤖 **Auto-generated binding** :param str? pszProduct: :SteamWorks: `SetProduct `_ .. function:: GameServer.SetRegion(pszRegion) 🤖 **Auto-generated binding** :param str? pszRegion: :SteamWorks: `SetRegion `_ .. function:: GameServer.SetServerName(pszServerName) 🤖 **Auto-generated binding** :param str? pszServerName: :SteamWorks: `SetServerName `_ **Example**:: Steam.GameServer.SetServerName('My Awesome Server') .. function:: GameServer.SetSpectatorPort(unSpectatorPort) 🤖 **Auto-generated binding** :param int unSpectatorPort: :SteamWorks: `SetSpectatorPort `_ .. function:: GameServer.SetSpectatorServerName(pszSpectatorServerName) 🤖 **Auto-generated binding** :param str? pszSpectatorServerName: :SteamWorks: `SetSpectatorServerName `_ .. function:: GameServer.UserHasLicenseForApp(steamID, appID) 🤖 **Auto-generated binding** :param uint64 - CSteamID steamID: :param int - AppId_t appID: :returns: (int - EUserHasLicenseForAppResult) Return value :SteamWorks: `UserHasLicenseForApp `_ .. function:: GameServer.WasRestartRequested() 🤖 **Auto-generated binding** :returns: (bool) Return value :SteamWorks: `WasRestartRequested `_ **Example**:: if Steam.GameServer.WasRestartRequested() then print('Steam requested server restart for update') scheduleRestart() end Callbacks --------- .. function:: GameServer.OnSteamServersConnected Callback for `SteamServersConnected_t `_ **callback(data)** receives no fields (notification only). **Example**:: function Steam.GameServer.OnSteamServersConnected() print('Connected to Steam servers') end .. function:: GameServer.OnSteamServerConnectFailure Callback for `SteamServerConnectFailure_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* * **data.m_bStillRetrying** *(bool)* **Example**:: function Steam.GameServer.OnSteamServerConnectFailure(data) print('Connection to Steam failed:', data.m_eResult, 'retrying:', data.m_bStillRetrying) end .. function:: GameServer.OnSteamServersDisconnected Callback for `SteamServersDisconnected_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* **Example**:: function Steam.GameServer.OnSteamServersDisconnected(data) print('Disconnected from Steam servers:', data.m_eResult) end .. function:: GameServer.OnValidateAuthTicketResponse Callback for `ValidateAuthTicketResponse_t `_ **callback(data)** receives: * **data.m_SteamID** *(uint64 - CSteamID)* * **data.m_eAuthSessionResponse** *(int - EAuthSessionResponse)* * **data.m_OwnerSteamID** *(uint64 - CSteamID)* **Example**:: function Steam.GameServer.OnValidateAuthTicketResponse(data) if data.m_eAuthSessionResponse == Steam.k_EAuthSessionResponseOK then print('User authenticated:', tostring(data.m_SteamID)) else print('Authentication failed:', data.m_eAuthSessionResponse) end end .. function:: GameServer.OnGSClientApprove Callback for `GSClientApprove_t `_ **callback(data)** receives: * **data.m_SteamID** *(uint64 - CSteamID)* * **data.m_OwnerSteamID** *(uint64 - CSteamID)* **Example**:: function Steam.GameServer.OnGSClientApprove(data) print('Client approved:', tostring(data.m_SteamID)) allowPlayerToJoin(data.m_SteamID) end .. function:: GameServer.OnGSClientDeny Callback for `GSClientDeny_t `_ **callback(data)** receives: * **data.m_SteamID** *(uint64 - CSteamID)* * **data.m_eDenyReason** *(int - EDenyReason)* * **data.m_rgchOptionalText** *(string)* **Example**:: function Steam.GameServer.OnGSClientDeny(data) print('Client denied:', tostring(data.m_SteamID), 'reason:', data.m_eDenyReason) kickPlayer(data.m_SteamID) end .. function:: GameServer.OnGSClientKick Callback for `GSClientKick_t `_ **callback(data)** receives: * **data.m_SteamID** *(uint64 - CSteamID)* * **data.m_eDenyReason** *(int - EDenyReason)* .. function:: GameServer.OnGSClientAchievementStatus Callback for `GSClientAchievementStatus_t `_ **callback(data)** receives: * **data.m_SteamID** *(uint64)* * **data.m_pchAchievement** *(string)* * **data.m_bUnlocked** *(bool)* .. function:: GameServer.OnGSPolicyResponse Callback for `GSPolicyResponse_t `_ **callback(data)** receives: * **data.m_bSecure** *(int)* **Example**:: function Steam.GameServer.OnGSPolicyResponse(data) if Steam.GameServer.BSecure() then print('Server is VAC secured') end end .. function:: GameServer.OnGSGameplayStats Callback for `GSGameplayStats_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* * **data.m_nRank** *(int)* * **data.m_unTotalConnects** *(int)* * **data.m_unTotalMinutesPlayed** *(int)* .. function:: GameServer.OnGSClientGroupStatus Callback for `GSClientGroupStatus_t `_ **callback(data)** receives: * **data.m_SteamIDUser** *(uint64 - CSteamID)* * **data.m_SteamIDGroup** *(uint64 - CSteamID)* * **data.m_bMember** *(bool)* * **data.m_bOfficer** *(bool)* **Example**:: function Steam.GameServer.OnGSClientGroupStatus(data) if data.m_bMember then print('Player is a member of the required group:', tostring(data.m_SteamIDUser)) end end .. function:: GameServer.OnGSReputation Callback for `GSReputation_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* * **data.m_unReputationScore** *(int)* * **data.m_bBanned** *(bool)* * **data.m_unBannedIP** *(int)* * **data.m_usBannedPort** *(int)* * **data.m_ulBannedGameID** *(uint64)* * **data.m_unBanExpires** *(int)* .. function:: GameServer.OnAssociateWithClanResult Callback for `AssociateWithClanResult_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* .. function:: GameServer.OnComputeNewPlayerCompatibilityResult Callback for `ComputeNewPlayerCompatibilityResult_t `_ **callback(data)** receives: * **data.m_eResult** *(int - EResult)* * **data.m_cPlayersThatDontLikeCandidate** *(int)* * **data.m_cPlayersThatCandidateDoesntLike** *(int)* * **data.m_cClanPlayersThatDontLikeCandidate** *(int)* * **data.m_SteamIDCandidate** *(uint64 - CSteamID)*