/cs-gamestate

Node module for Counter-Strike: Global Offensive Game State Integration

Primary LanguageJavaScriptMIT LicenseMIT

CS:GO Game Integration (node.js) npm version

If you don't know what CS:GO Game State Integration is, I suggest you to read up on this article published by Valve in their wiki.

Installation

npm install cs-gamestate

Bomb Timer

Valve has released an update on the 17th of December 2015. The event of the bomb being planted is now delayed by a random amount of time. If you subscribe to round.bomb, be aware of this!

Example

const CSGameState = new (require('cs-gamestate'))(3000, '0.0.0.0'); // The options (port, host) are optional, these are the defaults

// The events are being reffered to like objects.
// In this case the function will be called whenever 'player.state.health' (the players health) changes

CSGameState.on('player.state.health', (health, oldValue, data) => {
	// If you need any other information (e.g. money) you can access it in the data object
	// For the players money that would be 'data.player.state.money'

	console.log('Health of', data.player.name, 'has changed from', oldValue, 'to', health);
	// OUTPUT: Health of Hansiiii has changed from 100 to 72
});

You can also subscribe to any update sent by the client by using

CSGameState.on('<update>', data => {
	// Crunch the data...
});

Options

You can specify options when calling cs-gamestate like this require('cs-gamesate')(options, port, host)

createServer (true)

If you don't want cs-gamestate to create a server you can set this to false.
You can then later call CSGameState.parse passing an object.

Methods

.parse(object)

You will need to use this function if you didn't create a server automatically. This can be useful if you don't always want to update the state, but only if certain conditions are met.