npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

node-cs2

v2.2.1

Published

Modern CS2/CS:GO Game Coordinator integration with latest GameTracking-CS2 protobuf definitions. Includes support for highlight_reel, wrapped_sticker, variations, Promise-based API, crate opening, sticker/patch/keychain operations, and all modern CS2 fiel

Downloads

513

Readme

node-cs2

npm version Node.js Version

Modern CS2/CS:GO Game Coordinator integration with the latest GameTracking-CS2 protobuf definitions. This package provides a simple API for interacting with the Counter-Strike 2 and CS:GO Game Coordinator, with full support for all modern CS2 features.

Features

  • Latest Protobuf Definitions - Always up-to-date with GameTracking-CS2
  • Complete Field Support - All modern CS2 fields including highlight_reel, wrapped_sticker, variations
  • Promise-Based API - Modern async/await support with backward-compatible callbacks
  • Volatile Items - Support for rental items and temporary items
  • XP Shop & Rewards - Redeem rewards and track XP progress
  • Recurring Missions - Request and track mission schedules
  • Premier Season - Access premier season data and leaderboards
  • Enhanced Error Handling - Comprehensive error detection and validation
  • 100% Backward Compatible - Drop-in replacement for globaloffensive

Installation

npm install node-cs2

Quick Start

const SteamUser = require('steam-user');
const NodeCS2 = require('node-cs2');

const user = new SteamUser();
const cs2 = new NodeCS2(user);

user.logOn({
    accountName: 'your_username',
    password: 'your_password'
});

user.on('loggedOn', () => {
    user.gamesPlayed([730]); // CS2/CS:GO app ID
});

user.on('appLaunched', (appid) => {
    if (appid == 730) {
        cs2.helloGC();
    }
});

cs2.on('connectedToGC', async () => {
    // Inspect an item
    const item = await cs2.inspectItem('76561198057249394', '2569415699', '7115007497');
    console.log('Item:', item);
});

Core Features

Item Inspection

// Promise style
const item = await cs2.inspectItem(owner, assetid, classid);

// Callback style
cs2.inspectItem(owner, assetid, classid, (item) => {
    console.log(item);
});

Volatile Items

// Load volatile item contents
const items = await cs2.loadVolatileItemContents(volatileItemId);

// Claim volatile item reward
await cs2.claimVolatileItemReward(defindex);

XP Shop & Rewards

// Redeem free reward
await cs2.redeemFreeReward(generationTime, redeemableBalance, items);

// Listen for XP shop updates
cs2.on('xpShopNotification', (data) => {
    console.log('XP:', data.current_xp, 'Level:', data.current_level);
});

Recurring Missions

// Request mission schedule
const schema = await cs2.requestRecurringMissionSchedule();

Premier Season

// Set leaderboard safe name
cs2.setLeaderboardSafeName('MySafeName');

// Listen for premier season data
cs2.on('premierSeasonSummary', (summary) => {
    console.log('Premier season:', summary);
});

Crate Opening & Item Customization

// Open a crate
await cs2.openCrate(toolItemId, subjectItemId);

// Extract/encapsulate stickers
await cs2.extractSticker(itemId, stickerSlot);
await cs2.encapsulateSticker(stickerId);

// Apply/remove patches
await cs2.applyPatch(itemId, patchId, patchSlot);
await cs2.removePatch(itemId, patchSlot);

// Apply/remove keychains
await cs2.applyKeychain(itemId, keychainId, keychainSlot);
await cs2.removeKeychain(itemId, keychainSlot);

Documentation

Migration from globaloffensive

This package is 100% API compatible with the original globaloffensive package:

// Old
const GlobalOffensive = require('globaloffensive');

// New - just change the require!
const NodeCS2 = require('node-cs2');

// All your existing code works unchanged!
const cs2 = new NodeCS2(steamUser);

What's Fixed

  • Missing Fields - highlight_reel and wrapped_sticker now properly extracted
  • Modern CS2 Support - All new CS2 fields and arrays supported
  • Error Handling - Comprehensive error detection and validation
  • Code Quality - Deduplication, better maintainability

Requirements

  • Node.js >= 14.0.0
  • steam-user >= 4.2.0

License

MIT License - see LICENSE file for details.

Credits

Changelog

v2.2.0 (December 19, 2025)

New Features:

  • Added crate opening support (openCrate())
  • Added sticker operations (extractSticker(), encapsulateSticker())
  • Added patch operations (applyPatch(), removePatch())
  • Added keychain operations (applyKeychain(), removeKeychain())

Improvements:

  • All new methods support Promise and callback APIs
  • Configurable timeouts for all operations
  • Comprehensive error handling

v2.1.0 (December 19, 2025)

New Features:

  • Added 18 missing message IDs to language.js
  • Added 10 missing notification types to enums.js
  • Prepared library for high-priority feature implementations

Improvements:

  • Complete coverage of CS2 message IDs from latest protobuf definitions

v2.0.1 (September 2025)

New Features:

  • Promise-based API for async methods
  • Configurable timeouts for all operations
  • Support for variations array
  • Enhanced error handling

Bug Fixes:

  • Fixed missing highlight_reel field extraction
  • Fixed missing wrapped_sticker field extraction
  • Fixed protobuf decoding errors not being caught
  • Fixed missing field validation

Improvements:

  • Updated to latest GameTracking-CS2 protobuf definitions
  • Code deduplication with reusable helper functions
  • Better error handling throughout the codebase

v2.0.0 (Initial Fork)

Initial Release:

  • Forked from globaloffensive package
  • Updated protobuf definitions from GameTracking-CS2
  • Fixed critical missing fields in item inspection
  • Added support for modern CS2 features

For detailed release notes, see RELEASE_NOTES.md.

Support