This module provides a very flexible interface for interacting with the CS:GO Game Coordinator. It's designed to work with a node-steam SteamUser or node-steam-user SteamUser instance.
This is based off of node-tf2.
First, install it from npm:
$ npm install globaloffensive
Require the module and call its constructor with your SteamUser instance:
var Steam = require('steam');
var GlobalOffensive = require('globaloffensive');
var client = new Steam.SteamClient();
var user = new Steam.SteamUser(client);
var csgo = new GlobalOffensive(user);
or
var SteamUser = require('steam-user');
var GlobalOffensive = require('globaloffensive');
var user = new SteamUser();
var csgo = new GlobalOffensive(user);
To initialize your GC connection, just launch CS:GO via SteamUser normally:
client.gamesPlayed([730]);
node-globaloffensive will emit a connectedToGC
event when the game coordinator connection has been successfully
established. You shouldn't try to do anything before you receive that event.
There are some enums that are used by various methods and events. You can find them in enums.js
.
There are a few useful read-only properties available to you.
true
if we're currently connected to the GC, false
otherwise. You should only call methods when we have an active GC session.
A big object containing account data and some statistics including players in-game. Undefined until accountData
is emitted.
An array containing the items in your inventory. Undefined until connectedToGC
is emitted.
When instantiating your node-globaloffensive instance, you need to pass your active Steam.SteamClient instance as the sole parameter, as shown here:
var csgo = new GlobalOffensive(steamClient);
Request a list of current live tournament games. This is the list you see in the client under Watch -> Live. Listen for the matchList
event to get your response.
owner
- The numeric SteamID or market listing ID of the owning Steam account or market listing, as a string; or an entire inspect link.assetid
- Ifowner
is not an entire inspect link, this is the numeric asset ID of this item, as a stringd
- Ifowner
is not an entire inspect link, this is the "D" number from the inspect link (the last number following the "D" character)callback
- Optional. Called if all parameters are valid when Steam responds to us.item
- An object containing the item's dataaccountid
- Seems to always benull
itemid
- The item's asset ID, as a stringdefindex
- The item's definition indexpaintindex
- The item's paint indexrarity
- The item's numeric rarityquality
- The item's numeric qualitypaintwear
- The item's paint wear percentage, as a float between 0 and 1 (frequently and incorrectly called "float value")paintseed
- The item's paint seedkilleaterscoretype
- What kind of statistic the StatTrak version of this item tracks (may benull
if not StatTrak)killeatervalue
- The item's tracked statistic value (kills)customname
- The item's custom name via a name tag, ornull
if nonestickers
- An array of objects describing the stickers applied to this itemslot
- What slot this sticker is applied tostickerId
- The ID of this type of stickerwear
- Eithernull
(not scratched) or a float between 0 and 1 describing how much this sticker has been scratchedscale
- Alwaysnull
?rotation
- Alwaysnull
?
inventory
- An integer which has no use to youorigin
- The numeric origin of this itemquestid
- You can ignore this
v1.1.0 or later is required to use this method
Sends the same request to the GC that the official client sends when you inspect an item. If all parameters are correct
and the GC is in a good mood, returns the item's data. Using this for an item your account owns is useless as all
the data is already available in inventory
.
The response will arrive in the callback and in the inspectItemInfo
event.
steamid
- The numeric SteamID of the Steam account to pull profile data for. Needs to be playing CSGO and be on the friend list of the requesting account.callback
- Optional. Called if all parameters are valid when Steam responds to us.profile
- An object containing the profiledataaccountid
- Steam account id
ongoingmatch
globalStats
- Seems to always benull
penaltySeconds
penaltyReason
vacBanned
ranking
accountid
rankId
- Matchmaking rank (0-18), starting at 0 for unrankedwins
- Number of matchmaking winsrankChange
- Seems to always benull
commendation
cmdFriendly
- The number of "friendly" commendations the account has receivedcmdTeaching
- The number of "teaching" commendations the account has receivedcmdLeader
- The number of "leader" commendations the account has received
medals
- Archievement medals, their ranks and coinsmedalTeam
medalCombat
medalWeapon
medalGlobal
medalArms
legacy_CoinOpPayback
displayedItemsDefidx
- Array of coinsfeaturedDisplayItemDefidx
myCurrentEvent
myCurrentEventTeams
myCurrentTeam
myCurrentEventStages
surveyVote
activity
secondsUntilNextMission
Sends the same request to the GC that viewing the CSGO player profile from the in-game friendlist sends. Returns the same information that you would get in-game. This returns the same protobuf that is used when you request your own profile data, so most of it stays empty.
Emitted when a GC connection is established. You shouldn't use any methods before you receive this. Note that this may be received (after it's first emitted) without any disconnectedFromGC event being emitted. In this case, the GC simply restarted.
reason
- A value from theGCConnectionStatus
enum
Emitted when we're disconnected from the GC for any reason. node-globaloffensive will automatically try to reconnect and will emit connectedToGC
when reconnected.
status
- A value from theGCConnectionStatus
enumdata
- The raw data that was received
Emitted when we receive the status of our connection to the GC. Exactly when this is emitted is currently unknown. This may be removed in the future.
matches
- An array of matchesdata
- The raw data that was received
Emitted when we receive a match list, especially after a requestLiveGames()
call. This may be emitted at other times. Presently, the exact behavior is unknown.
item
- An object containing the item's dataaccountid
- Seems to always benull
itemid
- The item's asset ID, as a stringdefindex
- The item's definition indexpaintindex
- The item's paint indexrarity
- The item's numeric rarityquality
- The item's numeric qualitypaintwear
- The item's paint wear percentage, as a float between 0 and 1 (frequently and incorrectly called "float value")paintseed
- The item's paint seedkilleaterscoretype
- What kind of statistic the StatTrak version of this item tracks (may benull
if not StatTrak)killeatervalue
- The item's tracked statistic value (kills)customname
- The item's custom name via a name tag, ornull
if nonestickers
- An array of objects describing the stickers applied to this itemslot
- What slot this sticker is applied tostickerId
- The ID of this type of stickerwear
- Eithernull
(not scratched) or a float between 0 and 1 describing how much this sticker has been scratchedscale
- Alwaysnull
?rotation
- Alwaysnull
?
inventory
- An integer which has no use to youorigin
- The numeric origin of this itemquestid
- You can ignore this
v1.1.0 or later is required to use this method
Emitted in response to an inspectItem()
call.
item
- The item that you received
Emitted when you receive a new item.
oldItem
- The item's previous stateitem
- The item's new state
Emitted when an item in your inventory changes in some way.
item
- The item that you lost
Emitted when an item is removed from your inventory.
profile
- An object containing the profiledata -accountid
- Steam account idongoingmatch
globalStats
- Seems to always benull
penaltySeconds
penaltyReason
vacBanned
ranking
accountid
rankId
- Matchmaking rank (0-18), starting at 0 for unrankedwins
- Number of matchmaking winsrankChange
- Seems to always benull
commendation
cmdFriendly
- The number of "friendly" commendations the account has receivedcmdTeaching
- The number of "teaching" commendations the account has receivedcmdLeader
- The number of "leader" commendations the account has received
medals
- Archievement medals, their ranks and coinsmedalTeam
medalCombat
medalWeapon
medalGlobal
medalArms
legacy_CoinOpPayback
displayedItemsDefidx
- Array of coinsfeaturedDisplayItemDefidx
myCurrentEvent
myCurrentEventTeams
myCurrentTeam
myCurrentEventStages
surveyVote
activity
secondsUntilNextMission
Emitted in response to an requestPlayersProfile()
call.