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. Puede leer más sobre estas funciones en Descripción general de la API de Steamworks

SteamAPI_Init

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

Mira 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 debsa 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.
  • Es necesario asegurarse de que se posee una licencia para el id. de aplicación en la cuenta de Steam activa actualmente. El juego que se quiere ejecutar debe aparecer en la 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.

Para más información sobre cómo garantizar la seguridad de tu cuenta de Steam, por favor, consulta la guía
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.

Mira 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 se deberá 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 relanzará desde la versión instalada en la carpeta de la biblioteca de Steam.

Si devuelve false, el 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 permite desarrollar y testear sin iniciar el 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á a todas las funciones de escucha registradas durante esta llamada, en el contexto del subproceso del origen de la llamada.

SteamAPI_RunCallbacks es seguro llamar desde múltiples subprocesos simultáneamente, pero si eliges hacer esto, 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 al minidump. Debe terminar en NULL.

Asocia un comentario arbitrario para integrarlo en el minivolcado.

Algunos ejemplos que puedes incluir son qué nivel jugaba el usuario, cuántos jugadores en el servidor, cuánta memoria hay libre, etc.
Debe 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.

Debe llamarse a esta función durante el proceso de cierre, si fuese 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 minivolcado. No es lo mismo que un id. de compilación de Steam y sirve solo para informes sobre bloqueos.

Escribe y carga un minivolcado para informar de 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 que las funciones de steam_api pueden devolver o con las que pueden interactuar.

CGameID

Identificador global único para los juegos de Steam.

CSteamID

El 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 identificadores de Steam no válidos.
k_EAccountTypeIndividual1Cuenta de usuario ordinaria.
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 física 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), invitación, 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 activación.
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 adquirirse 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_Demo0x008Versión demo de juego.
k_EAppType_Media_DEPRECATED0x010Heredado: se utilizó para tráileres de juegos, que ahora son solo vídeos 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 vídeo, bien de una película o de una serie de televisión (podría ser toda ella, un episodio, un avance, el cómo se hizo, etc.)
k_EAppType_Plugin0x1000Tipos de complementos para otras aplicaciones.
k_EAppType_Music0x2000Archivos de música.
k_EAppType_Series0x4000Aplicación que contiene series de vídeo.
k_EAppType_Shortcut0x40000000Un simple acceso directo, solo por parte del cliente.
k_EAppType_DepotOnly0x80000000Placeholder, 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 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 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 fue demasiado lento cargando.
k_EBroadcastUploadResultTranscodeBehind13El servidor no pudo seguir 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_EChatRoomEnterResponseSuccess1Completado.
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 alcanzado su tamaño máximo.
k_EChatRoomEnterResponseError5Error inesperado.
k_EChatRoomEnterResponseBanned6Has sido bloqueado en esta sala de chat y no puedes unirte.
k_EChatRoomEnterResponseLimited7No tienes permiso para unirte a este chat porque eres un usuario limitado (no tienes valor en cuenta).
k_EChatRoomEnterResponseClanDisabled8Intento de 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_EChatRoomEnterResponseMemberBlockedYou10Error al unirse: un usuario del chat te ha bloqueado.
k_EChatRoomEnterResponseYouBlockedMember11Error al unirse: has bloqueado a un usuario que ya está en el chat.
k_EChatRoomEnterResponseRatelimitExceeded15Error al unirse: has intentado unirte demasiadas veces en un período de tiempo muy breve.

EChatSteamIDInstanceFlags

Marcas especiales para cuentas de chat. Van en los 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 los parámetros 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 Parámetros 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.

Los devuelven con frecuencia funciones, funciones callback y resultados de llamada tanto de la API de Steamworks como de la Web API. Una API puede devolver códigos EResult arbitrarios, consulta la documentación de esa función de API o función callback para ver qué podrías devolver y qué 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_EResultNoConnection3El 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 ha encontrado 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 han 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_EResultConnectFailed35Se ha producido un error 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 característica no está disponible.
k_EResultAdministratorOK46Tiene permiso para realizar esta acción, pero solo porque el solicitante es administrador.
k_EResultContentVersion47Discrepancia de versión en el contenido transmitido dentro del protocolo de Steam.
k_EResultTryAnotherCM48El CM actual no puede dar servicio al usuario que realiza la solicitud; el usuario debería probar otro.
k_EResultPasswordRequiredToKickSession49Ya tienes sesión iniciada en otra parte; se ha producido un error con estas credenciales de inicio de sesión guardadas en la memoria caché.
k_EResultAlreadyLoggedInElsewhere50El usuario ha iniciado sesión en otra parte. (Utiliza k_EResultLoggedInElsewhere en su lugar).
k_EResultSuspended51La operación de larga ejecución se han suspendido/pausado. (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 ha denegado el inicio de sesión en la cuenta por un código de autenticación no válido.
k_EResultAccountLogonDeniedNoMail66Se ha denegado el inicio de sesión en la cuenta por un fallo en la autenticación de doble factor; no se ha enviado ningún correo electrónico.
k_EResultHardwareNotCapableOfIPT67El hardware del usuario no admite la tecnología de protección de la identidad (IPT) de Intel.
k_EResultIPTInitError68Se ha producido un error al iniciar la tecnología de protección de la identidad (IPT) de Intel.
k_EResultParentalControlRestricted69Se ha producido un fallo en la operación debido a las restricciones de control parental del usuario actual.
k_EResultFacebookQueryError70La consulta de Facebook ha devuelto un error.
k_EResultExpiredLoginAuthCode71Se ha denegado el inicio de sesión en la cuenta por un código de autenticación caducado.
k_EResultIPLoginRestrictionFailed72El inicio de sesión ha fallado por 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, pero puede intentarse de nuevo más tarde; es distinto de 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; debe intentar limitarse 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 coincide, 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_EResultGSOwnerDenied103El propietario del servidor de juego está rechazado por algún otro motivo, como un bloqueo de cuenta, el bloqueo en una comunidad, un 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 emplea 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 Voz de Steam.

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.

Constantes

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 soportar 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ó a iniciar 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.