Documentación de Steamworks
steam_api.h
Proporciona la base principal para inicializar y acceder a la API de Steamworks.

Todos los tipos incluidos en esta lista son definiciones globales y no están asociadas con ninguna otra API específica.

Funciones


Estas son funciones globales que no requieren de interfaz para su uso. Puedes leer más sobre estas funciones en laDescripción general de la API de Steamworks.

SteamAPI_Init

S_API bool S_CALLTYPE SteamAPI_Init();
Inicializa la API de Steamworks.

Consulta Inicialización y cierre para más información.

Devuelve: bool
True indica que todas las interfaces necesarias han sido adquiridas y son accesibles.
False indica una de las siguientes condiciones:
  • El cliente de Steam no se está ejecutando. Se requiere un cliente de Steam en ejecución para aportar implementaciones de las diversas interfaces de Steamworks.
  • El cliente de Steam no pudo determinar el id. de aplicación del juego. Si estás ejecutando tu aplicación desde el ejecutable o el depurador directamente, debes tener un steam_appid.txt en tu directorio de juegos al lado del ejecutable, con tu id. de aplicación y nada más. Steam buscará este archivo en el directorio actual de trabajo. Si estás ejecutando tu ejecutable desde un directorio diferente, es posible que debas reubicar el archivo steam_appid.txt.
  • La aplicación no se está ejecutando bajo el mismo contexto de usuario del SO que el cliente de Steam, por ejemplo, bajo un usuario distinto o un nivel de acceso administrativo diferente.
  • Asegúrate de tener una licencia para la id. de aplicación en la cuenta actual activa de Steam. Tu juego deberá aparecer en tu biblioteca de Steam.
  • Tu id. de aplicación no está completamente configurada, es decir, en Estado de la versión: no disponible, o faltan paquetes predeterminados.

Ejemplo:
int main() { si ( SteamAPI_RestartAppIfNecessary( k_uAppIdInvalid ) ) // cambialo con tu App id. { return 1; } si ( !SteamAPI_Init() ) { printf( "Error fatal: Steam debe estar en ejecución para jugar a este juego (SteamAPI_Init() failed).\n" ); return 1; } return 0; }

SteamAPI_ReleaseCurrentThreadMemory

S_API void S_CALLTYPE SteamAPI_ReleaseCurrentThreadMemory();
Libera la memoria interna de la API de Steamworks asociada con el subproceso de llamada.

La mayoría de las funciones de la API de Steamworks reservan una pequeña cantidad de memoria local en el subproceso para almacenar parámetros; llamar a esta función liberará manualmente esa memoria. Se llama a esta función automáticamente mediante SteamGameServer_RunCallbacks, de forma que un programa que solo acceda a la API de Steamworks desde un único subproceso nunca necesita llamar a esta función expresamente.

SteamAPI_RestartAppIfNecessary

S_API bool S_CALLTYPE SteamAPI_RestartAppIfNecessary( uint32 unOwnAppID );
NombreTipoDescripción
unOwnAppIDuint32Id. de la aplicación de este título.

Comprueba si el ejecutable se inició mediante Steam y, en caso contrario, vuelve a iniciarlo desde Steam.

Consulta Inicialización y cierre para más información.

Devuelve: bool
Si devuelve true, inicia el cliente de Steam si se requiere e inicia el juego a través del mismo, y deberás abandonar el proceso lo antes posible. Esto ejecuta efectivamente steam://run/<AppId> por lo que no puedes relanzar el ejecutable exacto que lo llamó, ya que siempre se volverá a lanzar desde la versión instalada en la carpeta de la biblioteca de Steam.

Si devuelve false, entonces tu juego se inició desde el cliente de Steam y no es necesario realizar otras acciones. Una excepción es si un archivo steam_appid.txt está presente, esto devolverá false independientemente. Esto te permite desarrollar y hacer pruebas sin iniciar tu juego a través del cliente de Steam. ¡Asegúrate de eliminar el archivo steam_appid.txt cuando subas el juego a tu depósito de Steam!

Ejemplo:
int main() { si ( SteamAPI_RestartAppIfNecessary( k_uAppIdInvalid ) ) // cambia con tu id. de la aplicación { return 1; } si ( !SteamAPI_Init() ) { printf( "Error fatal: Steam debe estar en ejecución para jugar a este juego (SteamAPI_Init() failed).\n" ); return 1; } return 0; }

SteamAPI_RunCallbacks

S_API void S_CALLTYPE SteamAPI_RunCallbacks();
Envía devoluciones y resultados de llamada a todas las escuchas registradas.

Lo mejor es llamar a esta función a >10Hz; cuanto mayor sea el intervalo entre llamadas, mayor el potencial de que se produzca latencia entre los eventos de recepción o entre los resultados de la API de Steamworks. La mayoría de los juegos llaman a esta función una vez por cada cuadro de representación. Se invocarán todas las funciones de escucha registradas durante esta llamada, en el contexto del subproceso del origen de la llamada.

Es seguro llamar a SteamAPI_RunCallbacks desde subprocesos múltiples simultáneamente, pero si eliges hacerlo, el código de función callback podría ejecutarse en cualquier subproceso. Una alternativa es llamar a SteamAPI_RunCallbacks solo desde el subproceso principal, y llamar a una alternativa es llamar a SteamGameServer_RunCallbacks solo desde el subproceso principal, y llamar a SteamAPI_ReleaseCurrentThreadMemory regularmente en otros subprocesos.

SteamAPI_SetMiniDumpComment

S_API void S_CALLTYPE SteamAPI_SetMiniDumpComment( const char *pchMsg );
NombreTipoDescripción
pchMsgconst char *El mensaje a adjuntar a minidump. Debe terminar en NULL.

Asocia un comentario arbitrario para integrarlo en el minivolcado.

Algunos ejemplos que podrías incluir son qué nivel jugaba el usuario, cuántos jugadores había en el servidor, cuánta memoria libre hay, etc.
Deberá llamarse antes de llamar a SteamAPI_WriteMiniDump.
NOTA. ¡Solo funciona en Windows de 32 bits!

SteamAPI_Shutdown

S_API void S_CALLTYPE SteamAPI_Shutdown();
Cierra la API de Steamworks, libera punteros y libera memoria.

Debes llamar a esta función durante el proceso de cierre, en caso de ser posible.

No desenlazará la Interfaz de Steam del juego, ya que no hay garantía de que la API de representación haya terminado de usarla.

SteamAPI_WriteMiniDump

S_API void S_CALLTYPE SteamAPI_WriteMiniDump( uint32 uStructuredExceptionCode, void* pvExceptionInfo, uint32 uBuildID );
NombreTipoDescripción
uStructuredExceptionCodeuint32El código de excepción estructurado.
pvExceptionInfovoid*Los EXCEPTION_POINTERS que contienen la información de excepción real.
uBuildIDuint32Id. de compilación para rastrear qué versión de la aplicación envió este minidump. No es lo mismo que un id. de compilación de Steam y sirve solo para informes sobre bloqueos.

Escribe y carga un minidump para informar sobre bloqueos.

Consulta Informe de errores de Steam para más información.

Puedes agregar un comentario opcional llamando a SteamAPI_SetMiniDumpComment antes de llamar a esta función.
NOTA. ¡Solo funciona en Windows de 32 bits!

Ejemplo:
#ifdef _WIN32 #include <Windows.h> void MiniDumpFunction( unsigned int nExceptionCode, EXCEPTION_POINTERS *pException ) { // Puedes crear y establecer un comentario arbitrario para incrustar en el minidump aquí , // quizás quieras poner el nivel que estaba jugando el usuario, cuántos jugadores en el servidor, // cuánta memoria está libre, etc ... SteamAPI_SetMiniDumpComment( "Minidump comment: SteamworksExample.exe/n" ); // El 0 aquí es un Id. de compilación, no lo configuramos SteamAPI_WriteMiniDump( nExceptionCode, pException, 0 ); } int RealMain( HINSTANCE hInstance, LPSTR lpCmdLine, int nCmdShow ) { __debugbreak(); return 0; } int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { // Todo lo que hacemos aquí es llamar a la función principal real después de configurar nuestro traductor // esto nos permite detectar excepciones e informar errores a Steam. // // Ten en cuenta que debes configurar las marcas de compilación correctamente para habilitar la excepción estructurada // manejado para que este método de configuración en particular funcione. if ( IsDebuggerPresent() ) { // No queremos enmascarar las excepciones (¡o informarlas a Steam!) cuando se realiza la depuración. // Si deseas pasar por el controlador de excepciones, adjunta un depurador // después de ejecutar el juego fuera del depurador. return RealMain( lpCmdLine, hInstance, nCmdShow ); } _set_se_translator( MiniDumpFunction ); try // this try block allows the SE translator to work { return RealMain( hInstance, lpCmdLine, nCmdShow ); } catch( ... ) { return -1; } } #endif

Structs

Estas son las estructuras cuyas funciones en steam_api pueden hacer devoluciones o con las que se puede interactuar.

CGameID

Identificador global único para juegos de Steam.

CSteamID

Identificador único global para todas las cuentas de Steam, grupos de Steam, salas y salas de chat.
Consulta EAccountType y EUniverse.

Enums

Estas son las enumeraciones establecidas para usarse con steam_api.

EAccountType

Tipos de cuenta de Steam. Esto se usa internamente en CSteamID.

NombreValorDescripción
k_EAccountTypeInvalid0Se usa para los ids. de Steam no válidos.
k_EAccountTypeIndividual1Cuenta ordinaria de usuario.
k_EAccountTypeMultiseat2Cuenta multiasiento (p. ej., para cibercafés).
k_EAccountTypeGameServer3Cuenta en servidor de juego persistente (no anónima).
k_EAccountTypeAnonGameServer4Cuenta anónima en servidor de juego.
k_EAccountTypePending5Pendiente.
k_EAccountTypeContentServer6Cuenta en servidor de contenido interno de Valve.
k_EAccountTypeClan7Grupo de Steam (clan).
k_EAccountTypeChat8Chat de grupo o sala de espera de Steam.
k_EAccountTypeConsoleUser9Steam false para cuenta local de PSN en PS3 o cuenta Live en Xbox 360, etc.
k_EAccountTypeAnonUser10Cuenta anónima de usuario. (Usada para crear una cuenta o restablecer una contraseña).
k_EAccountTypeMax11Hay un máximo de 16 elementos en este campo.

EAppOwnershipFlags

Los marcadores representan la información de propiedad de un id. de aplicación (solo para uso interno de Steam).

NombreValorDescripción
k_EAppOwnershipFlags_None0x0000Desconocido.
k_EAppOwnershipFlags_OwnsLicense0x0001Posee una licencia para esta aplicación.
k_EAppOwnershipFlags_FreeLicense0x0002El usuario no ha pagado por la aplicación.
k_EAppOwnershipFlags_RegionRestricted0x0004Posee la aplicación, pero no el permiso para jugar en la región actual.
k_EAppOwnershipFlags_LowViolence0x0008Solo posee una versión de violencia reducida.
k_EAppOwnershipFlags_InvalidPlatform0x0010La aplicación no es compatible con la plataforma actual.
k_EAppOwnershipFlags_SharedLicense0x0020La licencia se compartió mediante un dispositivo autorizado a través del préstamo familiar de Steam.
k_EAppOwnershipFlags_FreeWeekend0x0040Propiedad de licencia gratuita de fin de semana.
k_EAppOwnershipFlags_RetailLicense0x0080Posee una licencia comercial para un juego (clave de CD, etc.). Obsoleto.
k_EAppOwnershipFlags_LicenseLocked0x0100La licencia compartida está bloqueada (en uso) por parte de otro usuario.
k_EAppOwnershipFlags_LicensePending0x0200Posee la aplicación, pero la transacción continúa pendiente. Todavía no puede instalarse o jugarse.
k_EAppOwnershipFlags_LicenseExpired0x0400Ya no posee la aplicación, puesto que la licencia ha caducado.
k_EAppOwnershipFlags_LicensePermanent0x0800Licencia permanente, no compartida, invitado o fin de semana gratuito, etc.
k_EAppOwnershipFlags_LicenseRecurring0x1000Licencia por subscripción; el usuario realiza un pago periódico.
k_EAppOwnershipFlags_LicenseCanceled0x2000Marcada como cancelada, pero podría seguir activa si es una subscripción.
k_EAppOwnershipFlags_AutoGrant0x4000La propiedad está basada en cualquier tipo de licencia de concesión automática.
k_EAppOwnershipFlags_PendingGift0x8000El usuario tiene un regalo pendiente de canjear.
k_EAppOwnershipFlags_RentalNotActivated0x10000El alquiler todavía no se ha activado.
k_EAppOwnershipFlags_Rental0x20000Es un alquiler.
k_EAppOwnershipFlags_SiteLicense0x40000Es de una licencia para local.

EAppReleaseState

Estado de publicación de un id. de aplicación (solo para uso interno de Steam).

NombreValorDescripción
k_EAppReleaseState_Unknown0Desconocido, no se puede obtener información sobre la aplicación o falta información de licencia.
k_EAppReleaseState_Unavailable1Incluso si el usuario posee la aplicación, no puede ver el juego en absoluto.
k_EAppReleaseState_Prerelease2Puede comprarse y está visible en la lista de juegos, nada más.
k_EAppReleaseState_PreloadOnly3Los propietarios pueden precargar la aplicación, pero no jugarla.
k_EAppReleaseState_Released4Los propietarios pueden descargar y jugar la aplicación.

EAppType

Tipo de id. de aplicación. Más información disponible en Tipos de aplicaciones (solo para uso interno de Steam).

NombreValorDescripción
k_EAppType_Invalid0x000Desconocido o no válido.
k_EAppType_Game0x001La aplicación es jugable; tipo predeterminado.
k_EAppType_Application0x002Aplicación de software.
k_EAppType_Tool0x004SDK, editores y servidores dedicados.
k_EAppType_Demo0x008Demo del juego.
k_EAppType_Media_DEPRECATED0x010Heredado: se utilizó para avances de juegos, que ahora son solos videos en la red.
k_EAppType_DLC0x020Contenido descargable.
k_EAppType_Guide0x040Guía de juego, PDF, etc.
k_EAppType_Driver0x080Actualizador de los controladores de hardware (ATI, Razor, etc.).
k_EAppType_Config0x100Aplicación oculta usada para configurar características de Steam (mochila, ventas, etc.).
k_EAppType_Hardware0x200Dispositivos de hardware de Steam (Steam Machine, Steam Controller, Steam Link, etc.).
k_EAppType_Franchise0x400Un punto de encuentro para colecciones, aplicaciones, películas, series, juegos, etc.
k_EAppType_Video0x800Un componente de video, ya sea de una película o serie de televisión (podría ser completa, un episodio, un avance, el "detrás de cámaras", etc.)
k_EAppType_Plugin0x1000Tipos de complementos para otras aplicaciones.
k_EAppType_Music0x2000Archivos de música.
k_EAppType_Series0x4000Aplicación que contiene series de video.
k_EAppType_Shortcut0x40000000Es un simple acceso directo, únicamente para el cliente.
k_EAppType_DepotOnly0x80000000Es un marcador, ya que los repositorios y las aplicaciones comparten el mismo espacio de nomenclatura.

EAuthSessionResponse

Valores devueltos de función callback para la ValidateAuthTicketResponse_t función callback que se publica como respuesta a ISteamUser::BeginAuthSession y ISteamGameServer::BeginAuthSession.

NombreValorDescripción
k_EAuthSessionResponseOK0Steam ha verificado que el usuario está conectado y que el ticket es válido, y no se ha reutilizado.
k_EAuthSessionResponseUserNotConnectedToSteam1El usuario en cuestión no está conectado a Steam.
k_EAuthSessionResponseNoLicenseOrExpired2El usuario no tiene licencia para este id. de aplicación o el ticket ha caducado.
k_EAuthSessionResponseVACBanned3El usuario está bloqueado por VAC en este juego.
k_EAuthSessionResponseLoggedInElseWhere4La cuenta del usuario ha iniciado sesión en otra parte y la sesión que contenía la instancia del juego se ha desconectado.
k_EAuthSessionResponseVACCheckTimedOut5VAC no ha podido realizar las comprobaciones antitrampas para este usuario.
k_EAuthSessionResponseAuthTicketCanceled6El emisor del ticket lo ha cancelado.
k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed7Este ticket ya se ha utilizado y no es válido.
k_EAuthSessionResponseAuthTicketInvalid8Este ticket no pertenece a una instancia de usuario conectada a Steam en este momento.
k_EAuthSessionResponsePublisherIssuedBan9El usuario está bloqueado en este juego. El bloqueo llegó mediante la Web de API, no por VAC.

EBeginAuthSessionResult

Los resultados se obtuvieron de ISteamUser::BeginAuthSession y de ISteamGameServer::BeginAuthSession.

NombreValorDescripción
k_EBeginAuthSessionResultOK0El ticket es válido para este juego y este id. de Steam.
k_EBeginAuthSessionResultInvalidTicket1El ticket no es válido.
k_EBeginAuthSessionResultDuplicateRequest2Ya se ha enviado un ticket para este id. de Steam.
k_EBeginAuthSessionResultInvalidVersion3El ticket pertenece a una versión de interfaz incompatible.
k_EBeginAuthSessionResultGameMismatch4El ticket no es para este juego.
k_EBeginAuthSessionResultExpiredTicket5El ticket ha caducado.

EBroadcastUploadResult

Resultado de carga de difusión desde BroadcastUploadStop_t.

NombreValorDescripción
k_EBroadcastUploadResultNone0Estado de retransmisión desconocido.
k_EBroadcastUploadResultOK1La retransmisión fue buena, sin problemas.
k_EBroadcastUploadResultInitFailed2La inicialización de la retransmisión falló.
k_EBroadcastUploadResultFrameFailed3La carga de cuadros de retransmisión ha cambiado.
k_EBroadcastUploadResultTimeout4El tiempo de espera de carga de la retransmisión se agotó.
k_EBroadcastUploadResultBandwidthExceeded5La retransmisión envía demasiados datos.
k_EBroadcastUploadResultLowFPS6Los FPS de la retransmisión son demasiado bajos.
k_EBroadcastUploadResultMissingKeyFrames7La retransmisión no envía suficientes cuadros clave.
k_EBroadcastUploadResultNoConnection8El cliente de retransmisión no pudo conectar con el servidor.
k_EBroadcastUploadResultRelayFailed9El servidor de retransmisión interrumpió la carga.
k_EBroadcastUploadResultSettingsChanged10El cliente cambió los ajustes de retransmisión.
k_EBroadcastUploadResultMissingAudio11El cliente no envió datos de audio.
k_EBroadcastUploadResultTooFarBehind12El cliente tardó demasiado al cargar.
k_EBroadcastUploadResultTranscodeBehind13El servidor no pudo seguir con la transcodificación.

EChatEntryType

Tipos de entrada de chat.

Devuelto por ISteamFriends::GetFriendMessage, ISteamFriends::GetClanChatMessage y ISteamMatchmaking::GetLobbyChatEntry.

NombreValorDescripción
k_EChatEntryTypeInvalid0No válido.
k_EChatEntryTypeChatMsg1Mensaje de texto normal de otro usuario.
k_EChatEntryTypeTyping2El otro usuario está escribiendo, no se usa en chats multiusuario.
k_EChatEntryTypeInviteGame3Invitación de otro usuario a la partida en la que está actualmente.
k_EChatEntryTypeEmote4Mensaje de emoticonos de texto (obsoleto, debería tratarse como ChatMsg).
k_EChatEntryTypeLeftConversation6Un usuario ha dejado la conversación (cerró la ventana de chat).
k_EChatEntryTypeEntered7Un usuario ha entrado en la conversación; se usa en chats multiusuario y chats de grupo.
k_EChatEntryTypeWasKicked8El usuario fue expulsado (Datos: Id. de Steam del usuario que realiza la expulsión).
k_EChatEntryTypeWasBanned9El usuario fue bloqueado (Datos: Id. de Steam del usuario que realiza el bloqueo).
k_EChatEntryTypeDisconnected10Usuario desconectado.
k_EChatEntryTypeHistoricalChat11Mensaje de chat del historial de chat del usuario o un mensaje desconectado.
k_EChatEntryTypeLinkBlocked14El filtro de chat eliminó un vínculo.

EChatRoomEnterResponse

Respuestas a entradas en sala de chat.

NombreValorDescripción
k_EChatRoomEnterResponseSuccess1Hecho.
k_EChatRoomEnterResponseDoesntExist2El chat no existe (probablemente esté cerrado).
k_EChatRoomEnterResponseNotAllowed3Denegación general: no tienes los permisos necesarios para unirte al chat.
k_EChatRoomEnterResponseFull4La sala de chat ha llegado a su tamaño máximo.
k_EChatRoomEnterResponseError5Error inesperado.
k_EChatRoomEnterResponseBanned6Fuiste bloqueado de esta sala de chat y no puedes unirte.
k_EChatRoomEnterResponseLimited7No tienes permiso para unirte a este chat debido a que eres un usuario limitado (sin valor en la cuenta).
k_EChatRoomEnterResponseClanDisabled8Intenta unirse a un chat de clan cuando el clan está bloqueado o desactivado.
k_EChatRoomEnterResponseCommunityBan9Intento de unirse a un chat cuando el usuario tiene un bloqueo de comunidad en su cuenta.
k_EChatRoomEnterResponseMemberBlockedYou10Se ha producido un error al unirte: un usuario del chat te ha bloqueado.
k_EChatRoomEnterResponseYouBlockedMember11Se produjo un error al unirte: bloqueaste a un usuario que ya está en el chat.
k_EChatRoomEnterResponseRatelimitExceeded15Se produjo un error al unirte: demasiados intentos para unirte en un periodo de tiempo muy breve.

EChatSteamIDInstanceFlags

Marcas especiales para cuentas de chat: van en 8 bits superiores de la "instancia" del id. de Steam, lo que deja 12 bits para las instancias actuales.

NombreValorDescripción
k_EChatAccountInstanceMask0x00000FFFLos 8 bits superiores son marcas.
k_EChatInstanceFlagClan( k_unSteamAccountInstanceMask + 1 ) >> 1Id. de Steam es para un grupo de Steam.
k_EChatInstanceFlagLobby( k_unSteamAccountInstanceMask + 1 ) >> 2Id. de Steam es para una sala.
k_EChatInstanceFlagMMSLobby( k_unSteamAccountInstanceMask + 1 ) >> 3Id. de Steam es para una sala de espera MMS.

EDenyReason

Valores resultantes cuando un cliente no consigue unirse o es expulsado de un servidor de juego. Obtenido desde GSClientDeny_t y GSClientKick_t.

NombreValorDescripción
k_EDenyInvalid0Desconocido.
k_EDenyInvalidVersion1El cliente y el servidor no tienen la misma versión.
k_EDenyGeneric2Genérico.
k_EDenyNotLoggedOn3El cliente no ha iniciado sesión.
k_EDenyNoLicense4El cliente no tiene licencia para jugar a este juego.
k_EDenyCheater5El cliente está bloqueado por VAC.
k_EDenyLoggedInElseWhere6El cliente ha iniciado sesión en otra parte.
k_EDenyUnknownText7
k_EDenyIncompatibleAnticheat8
k_EDenyMemoryCorruption9
k_EDenyIncompatibleSoftware10
k_EDenySteamConnectionLost11El servidor ha perdido la conexión a Steam.
k_EDenySteamConnectionError12El servidor sufrió un error general al conectarse a Steam.
k_EDenySteamResponseTimedOut13El servidor ha excedido el tiempo de espera al conectarse a Steam.
k_EDenySteamValidationStalled14El cliente aún no está autorizado con Steam.
k_EDenySteamOwnerLeftGuestUser15El propietario del juego compartido se ha ido; lo reciben todos los invitados del propietario.

EGameIDType

Se usa para describir el tipo de CGameID.

NombreValorDescripción
k_EGameIDTypeApp0El id. de juego es una aplicación normal de Steam.
k_EGameIDTypeGameMod1El id. de juego es un mod.
k_EGameIDTypeShortcut2El id. de juego es un acceso directo.
k_EGameIDTypeP2P3Id. de juego es un archivo P2P.

ELaunchOptionType

Códigos para parámetros de lanzamiento bien definidos; se corresponde con el tipo de inicio en los "parámetros de lanzamiento" de la aplicación, que se encuentran en la página Ajustes generales de instalación.

Existe una función especial, BIsVRLaunchOptionType, para comprobar si el tipo es cualquiera de las configuraciones de lanzamiento de RV.

NombreValorDescripción
k_ELaunchOptionType_None0Sin especificar.
k_ELaunchOptionType_Default1Ejecuta la aplicación en modo predeterminado.
k_ELaunchOptionType_SafeMode2Ejecuta el juego en modo seguro.
k_ELaunchOptionType_Multiplayer3Ejecuta el juego en modo multijugador.
k_ELaunchOptionType_Config4Ejecuta la herramienta de configuración para este juego.
k_ELaunchOptionType_OpenVR5Ejecuta el juego en modo RV con OpenVR.
k_ELaunchOptionType_Server6Ejecuta el servidor dedicado para este juego.
k_ELaunchOptionType_Editor7Ejecuta el editor de juego.
k_ELaunchOptionType_Manual8Muestra el manual del juego.
k_ELaunchOptionType_Benchmark9Ejecuta la prueba de rendimiento del juego.
k_ELaunchOptionType_Option110Opción de ejecución genérica; usa el campo de descripción para el nombre del juego.
k_ELaunchOptionType_Option211Opción de ejecución genérica; usa el campo de descripción para el nombre del juego.
k_ELaunchOptionType_Option312Opción de ejecución genérica; usa el campo de descripción para el nombre del juego.
k_ELaunchOptionType_OculusVR13Ejecuta el juego en modo RV con el SDK de Oculus.
k_ELaunchOptionType_OpenVROverlay14Ejecuta una interfaz de panel OpenVR.
k_ELaunchOptionType_OSVR15Ejecuta el juego en modo RV con el SDK de OSVR.
k_ELaunchOptionType_Dialog1000Muestra el cuadro de diálogo Configuraciones de lanzamiento.

EMarketingMessageFlags

Marcas internas de mensajes de marketing de Steam que cambian el modo en que un cliente los gestiona.

NombreValorDescripción
k_EMarketingMessageFlagsNone0
k_EMarketingMessageFlagsHighPriority1 << 0
k_EMarketingMessageFlagsPlatformWindows1 << 1
k_EMarketingMessageFlagsPlatformMac1 << 2
k_EMarketingMessageFlagsPlatformLinux1 << 3
k_EMarketingMessageFlagsPlatformRestrictions=marcas agregadas

ENotificationPosition

Posibles posiciones para que la interfaz muestre notificaciones. Utilizado con ISteamUtils::SetOverlayNotificationPosition.

NombreValorDescripción
k_EPositionTopLeft0Esquina superior izquierda.
k_EPositionTopRight1Esquina superior derecha.
k_EPositionBottomLeft2Esquina inferior izquierda.
k_EPositionBottomRight3Esquina inferior derecha.

EResult

Códigos de resultado de error de Steam.

Estos son frecuentemente devueltos por las funciones, funciones de callback y resultados de llamada tanto de la API de Steamworks como de Web de API. Una API puede devolver códigos EResult arbitrarios. Consulta la documentación de esa función API o callback para ver lo que podría devolver y lo que significan en el contexto de esa llamada a la API.
Esto es similar al tipo HRESULT de Win32 o POSIXs errno.

NombreValorDescripción
k_EResultOK1Completado.
k_EResultFail2Fallo genérico.
k_EResultNoConnection3Tu cliente de Steam no tiene conexión con el backend.
k_EResultInvalidPassword5La contraseña/ticket no es válida.
k_EResultLoggedInElsewhere6El usuario ha iniciado sesión en otra parte.
k_EResultInvalidProtocolVer7La versión del protocolo no es correcta.
k_EResultInvalidParam8Un parámetro es incorrecto.
k_EResultFileNotFound9No se encontró el archivo.
k_EResultBusy10El método llamado está ocupado; no se ha realizado la acción.
k_EResultInvalidState11El objeto llamado estaba en un estado no válido.
k_EResultInvalidName12El nombre no es válido.
k_EResultInvalidEmail13El correo electrónico no es válido.
k_EResultDuplicateName14El nombre no es único.
k_EResultAccessDenied15El acceso está denegado.
k_EResultTimeout16Se ha superado el tiempo de espera de la operación.
k_EResultBanned17El usuario tiene un bloqueo por VAC2.
k_EResultAccountNotFound18No se ha encontrado la cuenta.
k_EResultInvalidSteamID19Id. de Steam no es válido.
k_EResultServiceUnavailable20El servicio solicitado no está disponible en este momento.
k_EResultNotLoggedOn21El usuario no ha iniciado sesión.
k_EResultPending22La solicitud está pendiente: puede estar en proceso o esperando a un tercero.
k_EResultEncryptionFailure23El cifrado o descifrado ha fallado.
k_EResultInsufficientPrivilege24Privilegios insuficientes.
k_EResultLimitExceeded25Los excesos no son buenos.
k_EResultRevoked26El acceso se ha revocado (se usa para los pases de invitado revocados).
k_EResultExpired27La licencia/pase de invitado al que el usuario intenta acceder ha caducado.
k_EResultAlreadyRedeemed28Los pases de invitado ya se han canjeado por cuenta y no pueden volver a usarse.
k_EResultDuplicateRequest29La solicitud es un duplicado y la acción ya ha ocurrido en el pasado; esta vez se ha ignorado.
k_EResultAlreadyOwned30Todos los juegos en esta solicitud de canje de pase de invitado ya son propiedad del usuario.
k_EResultIPNotFound31No se ha encontrado la dirección IP.
k_EResultPersistFailed32Se produjo un error al escribir el cambio en el almacén de datos.
k_EResultLockingFailed33Se produjo un error al obtener el bloqueo de acceso para esta operación.
k_EResultLogonSessionReplaced34La sesión de inicio de sesión se ha reemplazado.
k_EResultConnectFailed35Error al conectar.
k_EResultHandshakeFailed36Se ha producido un error en el saludo de autenticación.
k_EResultIOFailure37Se ha producido un error genérico de E/S.
k_EResultRemoteDisconnect38El servidor remoto se ha desconectado.
k_EResultShoppingCartNotFound39No se pudo encontrar el carro de la compra solicitado.
k_EResultBlocked40Un usuario ha bloqueado la acción.
k_EResultIgnored41El objetivo está ignorando al remitente.
k_EResultNoMatch42No se ha encontrado nada que coincida con la solicitud.
k_EResultAccountDisabled43La cuenta está desactivada.
k_EResultServiceReadOnly44Este servicio no acepta cambios de contenido en este momento.
k_EResultAccountNotFeatured45La cuenta no tiene valor, por lo que esta función no está disponible.
k_EResultAdministratorOK46Tiene permiso para realizar esta acción, pero solo porque el solicitante es administrador.
k_EResultContentVersion47Existe una discrepancia de versión en el contenido transmitido dentro del protocolo de Steam.
k_EResultTryAnotherCM48El CM actual no puede brindar servicio al usuario que realiza la solicitud; el usuario debería intentar otro.
k_EResultPasswordRequiredToKickSession49Ya iniciaste sesión en otra parte; se ha producido un error con estas credenciales de inicio de sesión guardadas en la memoria caché.
k_EResultAlreadyLoggedInElsewhere50El usuario inició sesión en otra parte. (¡Utiliza k_EResultLoggedInElsewhere en su lugar!).
k_EResultSuspended51La operación de larga ejecución se suspendió/pausó. (por ejemplo, descargas de contenido.)
k_EResultCancelled52La operación ha sido cancelada, normalmente por el usuario. (por ejemplo, descargas de contenido.)
k_EResultDataCorruption53Operación cancelada porque los datos están mal formados o son irrecuperables.
k_EResultDiskFull54Operación cancelada: no hay suficiente espacio en el disco.
k_EResultRemoteCallFailed55La llamada remota o IPC ha fallado.
k_EResultPasswordUnset56No se pudo verificar la contraseña porque no está establecida en el servidor.
k_EResultExternalAccountUnlinked57La cuenta externa (PSN, Facebook...) no está vinculada a una cuenta de Steam.
k_EResultPSNTicketInvalid58El ticket de PSN no es válido.
k_EResultExternalAccountAlreadyLinked59La cuenta externa (PSN, Facebook...) ya está vinculada a alguna otra cuenta; debe solicitarse primero explícitamente la sustitución/eliminación del enlace.
k_EResultRemoteFileConflict60La sincronización no puede reanudarse debido a un conflicto entre los archivos locales y remotos.
k_EResultIllegalPassword61La nueva contraseña solicitada no está permitida.
k_EResultSameAsPreviousValue62El nuevo valor es igual que el antiguo. Se usa para la pregunta secreta y su respuesta.
k_EResultAccountLogonDenied63Se ha denegado el inicio de sesión en la cuenta por un fallo en la autenticación de doble factor.
k_EResultCannotUseOldPassword64La nueva contraseña solicitada no es legal.
k_EResultInvalidLoginAuthCode65Se denegó el inicio de sesión en la cuenta debido a un código de autenticación no válido.
k_EResultAccountLogonDeniedNoMail66Se denegó el inicio de sesión de la cuenta debido a un problema con la autenticación de doble factor, y no se envió ningún correo.
k_EResultHardwareNotCapableOfIPT67El hardware del usuario no admite la tecnología de protección de la identidad (IPT) de Intel.
k_EResultIPTInitError68Se produjo un error al iniciar la tecnología de protección de la identidad (IPT) de Intel.
k_EResultParentalControlRestricted69Error en la operación debido a las restricciones de control parental para el usuario actual.
k_EResultFacebookQueryError70La consulta de Facebook devolvió un error.
k_EResultExpiredLoginAuthCode71Se denegó el inicio de sesión a la cuenta debido a un código de autenticación caducado.
k_EResultIPLoginRestrictionFailed72Falló el inicio de sesión debido a una restricción de la IP.
k_EResultAccountLockedDown73El uso de la cuenta del usuario actual está bloqueado en este momento. Probablemente se deba a una suplantación y una verificación de propiedad pendiente.
k_EResultAccountLogonDeniedVerifiedEmailRequired74Se produjo un error al iniciar sesión porque el correo electrónico de la cuenta no está verificado.
k_EResultNoMatchingURL75No existe una URL que coincida con los valores proporcionados.
k_EResultBadResponse76Respuesta incorrecta debido a un fallo de análisis, un campo ausente, etc.
k_EResultRequirePasswordReEntry77El usuario no puede completar la acción hasta que vuelva a introducir la contraseña.
k_EResultValueOutOfRange78El valor introducido queda fuera del intervalo aceptable.
k_EResultUnexpectedError79Sucedió algo que no esperábamos que sucediera nunca.
k_EResultDisabled80El servicio solicitado se ha configurado como no disponible.
k_EResultInvalidCEGSubmission81Los archivos enviados al servidor CEG no son válidos.
k_EResultRestrictedDevice82El dispositivo utilizado no tiene permiso para realizar esta acción.
k_EResultRegionLocked83La acción no se pudo completar porque tiene restricción regional.
k_EResultRateLimitExceeded84Se ha excedido el límite de frecuencia temporal, inténtalo de nuevo más tarde; es distinto a k_EResultLimitExceeded, que puede ser permanente.
k_EResultAccountLoginDeniedNeedTwoFactor85Necesita un código de dos factores para iniciar sesión.
k_EResultItemDeleted86El elemento al que se intenta acceder se ha eliminado.
k_EResultAccountLoginDeniedThrottle87El intento de inicio de sesión ha fallado; intentar limitar la respuesta al posible atacante.
k_EResultTwoFactorCodeMismatch88El código de la autenticación de dos factores (Steam Guard) no es correcto.
k_EResultTwoFactorActivationCodeMismatch89El código de activación para la autenticación de dos factores (Steam Guard) no coincide.
k_EResultAccountAssociatedToMultiplePartners90La cuenta actual está asociada a varios asociados.
k_EResultNotModified91Los datos no se han modificado.
k_EResultNoMobileDevice92La cuenta no tiene asociado un dispositivo móvil.
k_EResultTimeNotSynced93El tiempo presentado está fuera de intervalo o tolerancia.
k_EResultSmsCodeFailed94Fallo de código SMS: no hay coincidencia, ninguno pendiente, etc.
k_EResultAccountLimitExceeded95Demasiadas cuentas acceden a este recurso.
k_EResultAccountActivityLimitExceeded96Demasiados cambios en esta cuenta.
k_EResultPhoneActivityLimitExceeded97Demasiados cambios en este teléfono.
k_EResultRefundToWallet98No se puede reembolsar en el método de pago; debe usarse la cartera.
k_EResultEmailSendFailure99No se puede enviar un correo electrónico.
k_EResultNotSettled100No se puede realizar la operación hasta que se resuelva el pago.
k_EResultNeedCaptcha101El usuario tiene que proporcionar un captcha válido.
k_EResultGSLTDenied102Un token de inicio de sesión en un servidor de juego del propietario de dicho token ha sido bloqueado.
k_EResultGSOwnerDenied103Se rechazó al propietario del juego por algún otro motivo, como un bloqueo de cuenta, bloqueo en una comunidad, bloqueo por VAC, falta de teléfono, etc.
k_EResultInvalidItemType104El tipo de elemento sobre el que se nos ha solicitado actuar no es válido.
k_EResultIPBanned105La dirección IP tiene bloqueada la realización de esta acción.
k_EResultGSLTExpired106Este token de inicio de sesión en servidor de juego (GSLT) ha caducado por estar obsoleto; se puede reiniciar.
k_EResultInsufficientFunds107El usuario no tiene fondos suficientes en su cartera para completar la acción.
k_EResultTooManyPending108Ya hay demasiados elementos de este tipo pendientes.

ESteamUserStatType

Campos usados internamente para almacenar estadísticas de usuarios.

NombreValorDescripción
k_ESteamUserStatTypeINVALID0No válido.
k_ESteamUserStatTypeINT1Estadística entera de 32 bits.
k_ESteamUserStatTypeFLOAT2Estadística flotante de 32 bits.
k_ESteamUserStatTypeAVGRATE3Se lee como FLOAT y se establece con la longitud de conteo/sesión.
k_ESteamUserStatTypeACHIEVEMENTS4Logro de usuario estándar.
k_ESteamUserStatTypeGROUPACHIEVEMENTS5Obsoleto.
k_ESteamUserStatTypeMAX6Número total de tipos de estadística de usuario; se usa para comprobaciones de estado.

ETextFilteringContext

Parámetro de ISteamUtils::FilterText.

NombreValorDescripción
k_ETextFilteringContextUnknown0Contexto desconocido.
k_ETextFilteringContextGameContent1Contenido del juego, solo se realiza el filtrado legalmente requerido.
k_ETextFilteringContextChat2Chat de otro jugador.
k_ETextFilteringContextName3Caracter o nombre del elemento.

EUniverse

Universos de Steam. Cada universo es una instancia autocontenida de Steam.

NombreValorDescripción
k_EUniverseInvalid0No válido.
k_EUniversePublic1Universo público estándar.
k_EUniverseBeta2Universo beta utilizado dentro de Valve.
k_EUniverseInternal3Universo interno utilizado dentro de Valve.
k_EUniverseDev4Universo de desarrollo utilizado dentro de Valve.
k_EUniverseMax5Número total de universos, empleados para verificaciones internas.

EUserHasLicenseForAppResult

Resultado de ISteamUser::UserHasLicenseForApp.

NombreValorDescripción
k_EUserHasLicenseResultHasLicense0El usuario tiene una licencia para la aplicación especificada.
k_EUserHasLicenseResultDoesNotHaveLicense1El usuario no tiene una licencia para la aplicación especificada.
k_EUserHasLicenseResultNoAuth2El usuario no se ha autenticado.

EVoiceResult

Resultados para usar con las funciones Steam Voice.

NombreValorDescripción
k_EVoiceResultOK0La llamada se ha completado correctamente.
k_EVoiceResultNotInitialized1La interfaz de Steam Voice no se ha inicializado.
k_EVoiceResultNotRecording2Steam Voice no está grabando en este momento.
k_EVoiceResultNoData3No hay datos de voz disponibles.
k_EVoiceResultBufferTooSmall4El búfer proporcionado es demasiado pequeño para recibir los datos.
k_EVoiceResultDataCorrupted5Los datos de voz están dañados.
k_EVoiceResultRestricted6El usuario tiene restricciones de chat.
k_EVoiceResultUnsupportedCodec7Obsoleto.
k_EVoiceResultReceiverOutOfDate8Obsoleto.
k_EVoiceResultReceiverDidNotAnswer9Obsoleto.

EVRHMDType

Puntos de código para modelos y proveedores de visores de RV. Usa las funciones especiales BIsOculusHMD y BIsViveHMD para comprobar marcas concretas.

NombreValorDescripción
k_eEVRHMDType_None-1Proveedor y modelo desconocidos.
k_eEVRHMDType_Unknown0Proveedor y modelo desconocidos.
k_eEVRHMDType_HTC_Dev1Kits de desarrollo de HTC originales.
k_eEVRHMDType_HTC_VivePre2Kits de desarrollo de HTC Vive Pre.
k_eEVRHMDType_HTC_Vive3Versión para el consumidor de HTC Vive.
k_eEVRHMDType_HTC_Unknown20Visor de HTC desconocido.
k_eEVRHMDType_Oculus_DK121Kit de desarrollo 1 de Oculus Rift.
k_eEVRHMDType_Oculus_DK222Kit de desarrollo 2 de Oculus Rift.
k_eEVRHMDType_Oculus_Rift23Versión 1 para consumidores de Oculus Rift.
k_eEVRHMDType_Oculus_Unknown40Visor Oculus desconocido.

Typedefs

Estas son las definiciones de tipo establecidas para usarse con steam_api.

NombreTipo de baseDescripción
AccountID_tuint32Esto se usa internamente en CSteamID para representar una cuenta de usuario concreta, con independencia del universo Steam en el que esté.
AppId_tuint32Identificador único para una aplicación. Para obtener más información, consulta la documentación de Aplicaciones.
AssetClassId_tuint64Solo se usa internamente en Steam.
BREAKPAD_HANDLEvoid *Lo utilizan las interfaces de los controladores de bloqueo de Steam para hacer referencia a controladores de bloqueo concretos instalados.
BundleId_tuint32Identificador único para un lote. (Solo se usa internamente en Steam).
CellID_tuint32Solo se usa internamente en Steam.
DepotId_tuint32Identificador único de un repositorio.
GID_tuint64Solo se usa internamente en Steam.
HAuthTicketuint32Identificador o handle del ticket de autenticación de un usuario. Tipo de retorno de ISteamUser::GetAuthSessionTicket.
int16shortVersión para Steam de un entero de 16 bits, equivalente a int16_t.
int32intVersión para Steam de un entero de 32 bits, equivalente a int32_t.
int64long longVersión para Steam de un entero de 64 bits, equivalente a int64_t.
int8signed charVersión para Steam de un entero de 8 bits, equivalente a int8_t.
intpint/long longVersión para Steam de un tipo con signo que puede contener un puntero, equivalente a intptr_t. (Solo se usa internamente en Steam).
JobID_tuint64Solo se usa internamente en Steam.
lint64long intSolo se usa internamente en Steam.
ManifestId_tuint64Solo se usa internamente en Steam.
PackageId_tuint32Solo se usa internamente en Steam.
PartnerId_tuint32Solo se usa internamente en Steam.
PhysicalItemId_tuint32Solo se usa internamente en Steam.
RTime32uint32Versión de Steam del formato de tiempo de Unix. Ofrece una resolución de un segundo a partir del tiempo: 1970-01-01 00:00:00 +0000 (UTC).
SteamAPICall_tuint64Identificador único de una llamada a la API de Steam.
Si una función devuelve uno de estos, debes hacer un seguimiento de su estado usando el sistema resultado de la llamada.
TxnID_tGID_tSolo se usa internamente en Steam.
uint16unsigned shortVersión para Steam de un entero sin signo de 16 bits, equivalente a int16_t.
uint32unsigned intVersión para Steam de un entero sin signo de 32 bits, equivalente a int32_t.
uint64unsigned long longVersión para Steam de un entero sin signo de 64 bits, equivalente a int64_t.
uint8unsigned charVersión para Steam de un entero sin signo de 8 bits, equivalente a int8_t.
uintpunsigned int/unsigned long longVersión de Steam de un tipo sin signo que puede contener un puntero, equivalente a uintptr_t. (Solo se usa internamente en Steam).
ulint64unsigned long intSolo se usa internamente en Steam.

Constants

Estas son constantes establecidas para usarse con steam_api.

NombreTipoValorDescripción
BREAKPAD_INVALID_HANDLEint(BREAKPAD_HANDLE)0
k_cchGameExtraInfoMaxint64El tamaño máximo (en UTF-8 bytes, incluido el terminador nulo) del parámetro pchExtraInfo de ISteamUser::TrackAppUsageEvent.
k_cubSaltSizeint8Solo se usa internamente en Steam.
k_GIDNilGID_t0xffffffffffffffffullSolo se usa internamente en Steam.
k_HAuthTicketInvalidHAuthTicket0Un ticket de autenticación de usuario no válido.
k_JobIDNilJobID_t0xffffffffffffffffullSolo se usa internamente en Steam.
k_steamIDLanModeGSintCSteamID(Este id. de Steam proviene de una conexión de juego de usuario a un sv_lan GS
k_steamIDNilintCSteamID()CSteamID genérico no válido.
k_steamIDNonSteamGSintCSteamID(Este id. de Steam puede provenir de una conexión de juego de usuario a un GS que no esté utilizando el sistema de autenticación de Steam pero que aún
quiere dar soporte a la opción de "Join Game" en la lista de amigos.
k_steamIDNotInitYetGSintCSteamID(Este id. de Steam puede provenir de una conexión de juego de usuario a un GS que acaba de arrancar pero aún no se ha inicializado
su componente Steam3 y comenzó el inicio de sesión.
k_steamIDOutofDateGSintCSteamID(Este id. de Steam viene de una conexión en el juego del usuario a un servidor obsoleto que no ha implementado el protocolo para facilitar su id. de Steam
k_TxnIDNilGID_tk_GIDNilSolo se usa internamente en Steam.
k_TxnIDUnknownGID_t0Solo se usa internamente en Steam.
k_uAPICallInvalidSteamAPICall_t0x0Identificador de llamada a la API de Steam no válido.
k_uAppIdInvalidAppId_t0x0Un id. de aplicación no válido.
k_uBundleIdInvalidBundleId_t0Solo se usa internamente en Steam.
k_uCellIDInvalidCellID_t0xFFFFFFFFSolo se usa internamente en Steam.
k_uDepotIdInvalidDepotId_t0x0Un id. de repositorio no válido.
k_ulAssetClassIdInvalidAssetClassId_t0x0Solo se usa internamente en Steam.
k_uManifestIdInvalidManifestId_t0Solo se usa internamente en Steam.
k_unSteamAccountIDMaskunsigned int0xFFFFFFFFUsado en CSteamID para enmascarar la AccountID_t.
k_unSteamAccountInstanceMaskunsigned int0x000FFFFFUtilizado en CSteamID para enmascarar la instancia de la cuenta.
k_unSteamUserConsoleInstanceunsigned int2Utilizado por CSteamID para identificar a los usuarios que han iniciado sesión desde una consola.
k_unSteamUserDesktopInstanceunsigned int1Utilizado por CSteamID para identificar a los usuarios que han iniciado sesión desde el escritorio del cliente.
k_unSteamUserWebInstanceunsigned int4Utilizado por CSteamID para identificar a los usuarios que han iniciado sesión desde la web.
k_uPackageIdFreeSubPackageId_t0x0Solo se usa internamente en Steam.
k_uPackageIdInvalidPackageId_t0xFFFFFFFFSolo se usa internamente en Steam.
k_uPartnerIdInvalidPartnerId_t0Solo se usa internamente en Steam.
k_uPhysicalItemIdInvalidPhysicalItemId_t0x0Solo se usa internamente en Steam.
QUERY_PORT_ERRORint0xFFFENo se pudo obtener el puerto de consulta para este servidor.
QUERY_PORT_NOT_INITIALIZEDint0xFFFF-----------------------------------------------------------------------------
Constantes utilizadas para los puertos de consulta.
-----------------------------------------------------------------------------
Aún no le hemos pedido al GS el valor real de este puerto de consulta.