{"id":25290984,"url":"https://github.com/herover/steam-condenser-js","last_synced_at":"2026-04-26T12:31:50.987Z","repository":{"id":11028583,"uuid":"68057736","full_name":"Herover/steam-condenser-js","owner":"Herover","description":"A port of steam-condenser for Node.js!","archived":false,"fork":false,"pushed_at":"2023-01-06T08:25:23.000Z","size":1189,"stargazers_count":1,"open_issues_count":15,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-15T06:35:26.104Z","etag":null,"topics":["javascript","srcds","steam","steam-condenser","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Herover.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-09-12T23:58:16.000Z","updated_at":"2022-04-12T12:47:11.000Z","dependencies_parsed_at":"2023-01-13T16:17:44.802Z","dependency_job_id":null,"html_url":"https://github.com/Herover/steam-condenser-js","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Herover%2Fsteam-condenser-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Herover%2Fsteam-condenser-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Herover%2Fsteam-condenser-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Herover%2Fsteam-condenser-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Herover","download_url":"https://codeload.github.com/Herover/steam-condenser-js/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247535514,"owners_count":20954576,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","srcds","steam","steam-condenser","typescript"],"created_at":"2025-02-13T00:51:38.055Z","updated_at":"2026-04-26T12:31:50.943Z","avatar_url":"https://github.com/Herover.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Steam Condenser\n\nWork in progress implementation of steam-condenser in Typescript/node.js.\n\n## Usage\n\nThe library is implemented in Typescript but works fine with JavaScript.\n\n```javascript\nconst { SourceServer, MasterServer } = require('steam-condenser');\n\nasync function main() {\n  const server = new SourceServer(ip);\n  try {\n    // Set up connection\n    await server.initialize();\n\n    const info = await server.getServerInfo();\n    console.log(info);\n\n    const rules = await server.getRules();\n    console.log(rules);\n\n    const players = await server.getPlayers();\n    console.log(players);\n\n    // We need to authorize with rcon before executing commands\n    await server.rconAuth(password);\n\n    const stats = await server.rconExec(\"stats\");\n    console.log(stats);\n  }\n  catch (e) {\n    console.error(e);\n  }\n  finally {\n    // Remember to disconnect\n    await server.disconnect();\n  }\n\n  const ms = SourceServer.GetMaster();\n  try {\n    // Get first page of server ip's running de_dust\n    const servers = await ms.getServers(MasterServer.REGION_ALL, \n      \"\\\\map\\\\de_dust\");\n    console.log(servers);\n  }\n  catch(error) {\n    console.error(error);\n  }\n  finally {\n    await ms.disconnect();\n  }\n}\n\nmain();\n```\n\n## Status and limitations\n\nThe module currently only supports what is described in above example. Full\nparity with koraktors Steam Condenser is the final goal.\n\nWhen using the current library it's important to realize that it's ported code\nexpecting network communication to be blocking, but it uses non-blocking\nfunctions. This means you must not call more than one function that\ncommunicates over the same socket (`getRules` and `getInfo`, or multiple rcon\ncommands).\n\nEx.\n`await Promise.all([server.rconExec(\"stats\"), server.rconExec(\"sv_gravity\")])`\nmight not work, but opening two connections or running them in serial will\nwork.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fherover%2Fsteam-condenser-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fherover%2Fsteam-condenser-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fherover%2Fsteam-condenser-js/lists"}