A Node.js plugin for interacting with Counter-Strike: Global Offensive's Game Coordinator via Steam.
node-csgo is a Node.js plugin that enables developers to interact programmatically with Counter-Strike: Global Offensive's Game Coordinator via the Steam network. It solves the problem of accessing CS:GO's live match data, player statistics, and in-game item information without official APIs, allowing for the creation of third-party tools, stat trackers, and matchmaking services.
Node.js developers building CS:GO-related applications such as matchmaking platforms, stat tracking websites, bot services, or tools that require real-time game data.
Developers choose node-csgo because it provides direct, low-level access to CS:GO's Game Coordinator, enabling features not available through public APIs. It's open-source, widely used by projects like PopFlash and CS Stats, and offers comprehensive event handling for real-time data.
A node-steam plugin for Counter-Strike: Global Offensive.
Enables low-level, real-time communication with CS:GO's Game Coordinator for live match data and player stats, as demonstrated by methods like matchmakingStatsRequest and event-driven responses.
Supports match data, item inspection, sharecode decoding, and rich presence management, covering most CS:GO integration needs, with detailed examples in the README.
Used by established services like PopFlash and CS Stats, indicating reliability and real-world testing, as listed in the README.
Utilizes events such as ready and itemData for efficient handling of asynchronous Game Coordinator responses, facilitating reactive application design.
Requires integration with node-steam and a CS:GO-purchased Steam account, adding significant setup complexity and dependency management.
Relies on reverse-engineered Game Coordinator communication, which can break without notice when Valve updates CS:GO, leading to maintenance challenges and instability.
The README warns about manually clearing event handlers on unready events to avoid duplicates, which is error-prone and requires careful state management.
A node-steam plugin for Dota 2.
Simple module to interact with the TF2 game coordinator
SteamGameServer is a Node.js module that acts as a handler for node-steam and node-steam-client, allowing applications to connect to Steam as a game server using either anonymous accounts or persistent accounts with Game Server Login Tokens (GSLT). It provides a comprehensive interface to interact with Steam's game server infrastructure, including server queries, player counts, and product information, while complying with Valve's rules by not registering with the master server browser. ## Key Features - **Gameserver Authentication** — Logs onto Steam as a Gameserver or AnonGameserver account using AppID, game version, and optional GSLT. - **Server Querying** — Requests lists of game servers from the Steam master server with detailed filtering and server information. - **Player and Product Data** — Fetches current player counts for apps and retrieves detailed product info and changes from Steam. - **Persona and Level Lookup** — Gets user persona data and Steam levels for specified SteamIDs. - **Custom Storage Engine** — Supports pluggable storage engines for saving server list data to databases or cloud services instead of local disk. - **Event-Driven Architecture** — Emits events for logon, errors, disconnections, VAC status, and user data updates with support for ID-specific event listeners. ## Philosophy SteamGameServer is designed to be a robust and flexible Node.js interface for Steam's game server services, prioritizing compliance with Valve's policies while offering developers full programmatic control over server interactions and data retrieval.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.