Cozy Steamworks

A fork of steamworks.js that runs a current Steamworks SDK and wires in the multiplayer chrome upstream never exposed.

Keeper of the fork

Rust napi-rs Node.js Steamworks SDK

Steam bindings for a game that needed more

@cozycoast/steamworks.js is a fork of steamworks.js kept alive for Cozy Coast. Upstream was running on an old SDK and a networking API Valve already flatlined. This fork jumps to Steamworks SDK 1.64 and wires in what an Electron game with lobbies, invites and leaderboards actually calls.

What it bolts on

  • ISteamNetworkingMessages, the connectionless networking API, running alongside the legacy one
  • Server-side lobby list filters, lobby owner handoff, and lobby invites through Steam chat with no overlay in the way
  • A friends namespace, rich presence that tells you whether Steam took it, and join-request callbacks
  • Leaderboards: find, find-or-create, score upload, and global, around-user and friends ranges
  • Aggregated global stats with day-by-day history, and game-rendered screenshots dropped straight into the Steam library

The rig

Rust native module built with napi-rs on the steamworks 0.13.1 crate, jacked into Node.js and Electron with generated TypeScript definitions. CI builds Windows, Linux, and Intel and Apple Silicon macOS, and releases ship as tarballs on GitHub Releases. MIT licensed.

Let's link up, choom.

Always down to trade notes, talk shop, or just ping. The net is the fastest way to reach me.

Ping me