SwiftlyS2

SteamGameServerUtils

Class SteamGameServerUtils

Namespace: SwiftlyS2.Shared.SteamAPI

Assembly: SwiftlyS2.CS2.dll

public static class SteamGameServerUtils

Inheritance

Inherited Members

Methods

BOverlayNeedsPresent()

Normally this call is unneeded if your game has a constantly running frame loop that calls the

D3D Present API, or OGL SwapBuffers API every frame.

However, if you have a game that only refreshes the screen on an event driven basis then that can break

the overlay, as it uses your Present/SwapBuffers calls to drive it's internal frame loop and it may also

need to Present() to the screen any time an even needing a notification happens or when the overlay is

brought up over the game by a user. You can use this API to ask the overlay if it currently need a present

in that case, and then you can check for this periodically (roughly 33hz is desirable) and make sure you

refresh the screen with Present or SwapBuffers to allow the overlay to do it's work.

public static bool BOverlayNeedsPresent()
Returns

CheckFileSignature(string)

Asynchronous call to check if an executable file has been signed using the public key set on the signing tab

of the partner site, for example to refuse to load modified executable files.

The result is returned in CheckFileSignature_t.

k_ECheckFileSignatureNoSignaturesFoundForThisApp - This app has not been configured on the signing tab of the partner site to enable this function.

k_ECheckFileSignatureNoSignaturesFoundForThisFile - This file is not listed on the signing tab for the partner site.

k_ECheckFileSignatureFileNotFound - The file does not exist on disk.

k_ECheckFileSignatureInvalidSignature - The file exists, and the signing tab has been set for this file, but the file is either not signed or the signature does not match.

k_ECheckFileSignatureValidSignature - The file is signed and the signature is valid.

public static SteamAPICall_t CheckFileSignature(string szFileName)
Parameters
Returns

DismissFloatingGamepadTextInput()

Dismisses the floating keyboard.

public static bool DismissFloatingGamepadTextInput()
Returns

DismissGamepadTextInput()

Dismisses the full-screen text input dialog.

public static bool DismissGamepadTextInput()
Returns

FilterText(ETextFilteringContext, CSteamID, string, out string, uint)

Filters the provided input message and places the filtered result into pchOutFilteredText, using legally required filtering and additional filtering based on the context and user settings

eContext is the type of content in the input string

sourceSteamID is the Steam ID that is the source of the input string (e.g. the player with the name, or who said the chat text)

pchInputText is the input string that should be filtered, which can be ASCII or UTF-8

pchOutFilteredText is where the output will be placed, even if no filtering is performed

nByteSizeOutFilteredText is the size (in bytes) of pchOutFilteredText, should be at least strlen(pchInputText)+1

Returns the number of characters (not bytes) filtered

public static int FilterText(ETextFilteringContext eContext, CSteamID sourceSteamID, string pchInputMessage, out string pchOutFilteredText, uint nByteSizeOutFilteredText)
Parameters
Returns

GetAPICallFailureReason(SteamAPICall_t)

public static ESteamAPICallFailure GetAPICallFailureReason(SteamAPICall_t hSteamAPICall)
Parameters
Returns

GetAPICallResult(SteamAPICall_t, nint, int, int, out bool)

public static bool GetAPICallResult(SteamAPICall_t hSteamAPICall, nint pCallback, int cubCallback, int iCallbackExpected, out bool pbFailed)
Parameters
Returns

GetAppID()

returns the appID of the current process

public static AppId_t GetAppID()
Returns

GetConnectedUniverse()

the universe this client is connecting to

public static EUniverse GetConnectedUniverse()
Returns

GetCurrentBatteryPower()

return the amount of battery power left in the current system in % [0..100], 255 for being on AC power

public static byte GetCurrentBatteryPower()
Returns

GetEnteredGamepadTextInput(out string, uint)

public static bool GetEnteredGamepadTextInput(out string pchText, uint cchText)
Parameters
Returns

GetEnteredGamepadTextLength()

Returns previously entered text & length

public static uint GetEnteredGamepadTextLength()
Returns

GetIPCCallCount()

returns the number of IPC calls made since the last time this function was called

Used for perf debugging so you can understand how many IPC calls your game makes per frame

Every IPC call is at minimum a thread context switch if not a process one so you want to rate

control how often you do them.

public static uint GetIPCCallCount()
Returns

GetIPCountry()

returns the 2 digit ISO 3166-1-alpha-2 format country code this client is running in (as looked up via an IP-to-location database)

e.g "US" or "UK".

public static string GetIPCountry()
Returns

GetIPv6ConnectivityState(ESteamIPv6ConnectivityProtocol)

Return what we believe your current ipv6 connectivity to "the internet" is on the specified protocol.

This does NOT tell you if the Steam client is currently connected to Steam via ipv6.

public static ESteamIPv6ConnectivityState GetIPv6ConnectivityState(ESteamIPv6ConnectivityProtocol eProtocol)
Parameters
Returns

GetImageRGBA(int, byte[], int)

returns true if the image exists, and the buffer was successfully filled out

results are returned in RGBA format

the destination buffer size should be 4 * height * width * sizeof(char)

public static bool GetImageRGBA(int iImage, byte[] pubDest, int nDestBufferSize)
Parameters
Returns

GetImageSize(int, out uint, out uint)

returns true if the image exists, and valid sizes were filled out

public static bool GetImageSize(int iImage, out uint pnWidth, out uint pnHeight)
Parameters
Returns

GetSecondsSinceAppActive()

return the number of seconds since the user

public static uint GetSecondsSinceAppActive()
Returns

GetSecondsSinceComputerActive()

public static uint GetSecondsSinceComputerActive()
Returns

GetServerRealTime()

Steam server time. Number of seconds since January 1, 1970, GMT (i.e unix time)

public static uint GetServerRealTime()
Returns

GetSteamUILanguage()

returns the language the steam client is running in, you probably want ISteamApps::GetCurrentGameLanguage instead, this is for very special usage cases

public static string GetSteamUILanguage()
Returns

InitFilterText(uint)

Initializes text filtering, loading dictionaries for the language the game is running in.

unFilterOptions are reserved for future use and should be set to 0

Returns false if filtering is unavailable for the game's language, in which case FilterText() will act as a passthrough.

Users can customize the text filter behavior in their Steam Account preferences:

https://store.steampowered.com/account/preferences#CommunityContentPreferences

public static bool InitFilterText(uint unFilterOptions = 0)
Parameters
  • unFilterOptions uint
Returns

IsAPICallCompleted(SteamAPICall_t, out bool)

API asynchronous call results

can be used directly, but more commonly used via the callback dispatch API (see steam_api.h)

public static bool IsAPICallCompleted(SteamAPICall_t hSteamAPICall, out bool pbFailed)
Parameters
Returns

IsOverlayEnabled()

Returns true if the overlay is running & the user can access it. The overlay process could take a few seconds to

start & hook the game process, so this function will initially return false while the overlay is loading.

public static bool IsOverlayEnabled()
Returns

IsSteamChinaLauncher()

Returns whether this steam client is a Steam China specific client, vs the global client.

public static bool IsSteamChinaLauncher()
Returns

IsSteamInBigPictureMode()

returns true if Steam & the Steam Overlay are running in Big Picture mode

Games much be launched through the Steam client to enable the Big Picture overlay. During development,

a game can be added as a non-steam game to the developers library to test this feature

public static bool IsSteamInBigPictureMode()
Returns

IsSteamRunningInVR()

returns true if Steam itself is running in VR mode

public static bool IsSteamRunningInVR()
Returns

IsSteamRunningOnSteamDeck()

returns true if currently running on the Steam Deck device

public static bool IsSteamRunningOnSteamDeck()
Returns

IsVRHeadsetStreamingEnabled()

Returns true if the HMD content will be streamed via Steam Remote Play

public static bool IsVRHeadsetStreamingEnabled()
Returns

SetGameLauncherMode(bool)

In game launchers that don't have controller support you can call this to have Steam Input translate the controller input into mouse/kb to navigate the launcher

public static void SetGameLauncherMode(bool bLauncherMode)
Parameters
  • bLauncherMode bool

SetOverlayNotificationInset(int, int)

Sets the inset of the overlay notification from the corner specified by SetOverlayNotificationPosition.

public static void SetOverlayNotificationInset(int nHorizontalInset, int nVerticalInset)
Parameters
  • nHorizontalInset int
  • nVerticalInset int

SetOverlayNotificationPosition(ENotificationPosition)

Sets the position where the overlay instance for the currently calling game should show notifications.

This position is per-game and if this function is called from outside of a game context it will do nothing.

public static void SetOverlayNotificationPosition(ENotificationPosition eNotificationPosition)
Parameters

SetVRHeadsetStreamingEnabled(bool)

Set whether the HMD content will be streamed via Steam Remote Play

If this is set to true, then the scene in the HMD headset will be streamed, and remote input will not be allowed.

If this is set to false, then the application window will be streamed instead, and remote input will be allowed.

The default is true unless "VRHeadsetStreaming" "0" is in the extended appinfo for a game.

(this is useful for games that have asymmetric multiplayer gameplay)

public static void SetVRHeadsetStreamingEnabled(bool bEnabled)
Parameters

SetWarningMessageHook(SteamAPIWarningMessageHook_t)

API warning handling

'int' is the severity; 0 for msg, 1 for warning

'const char *' is the text of the message

callbacks will occur directly after the API function is called that generated the warning or message

public static void SetWarningMessageHook(SteamAPIWarningMessageHook_t pFunction)
Parameters

ShowFloatingGamepadTextInput(EFloatingGamepadTextInputMode, int, int, int, int)

Opens a floating keyboard over the game content and sends OS keyboard keys directly to the game.

The text field position is specified in pixels relative the origin of the game window and is used to position the floating keyboard in a way that doesn't cover the text field

public static bool ShowFloatingGamepadTextInput(EFloatingGamepadTextInputMode eKeyboardMode, int nTextFieldXPosition, int nTextFieldYPosition, int nTextFieldWidth, int nTextFieldHeight)
Parameters
Returns

ShowGamepadTextInput(EGamepadTextInputMode, EGamepadTextInputLineMode, string, uint, string)

Activates the full-screen text input dialog which takes a initial text string and returns the text the user has typed

public static bool ShowGamepadTextInput(EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, string pchDescription, uint unCharMax, string pchExistingText)
Parameters
Returns

StartVRDashboard()

ask SteamUI to create and render its OpenVR dashboard

public static void StartVRDashboard()

On this page