JSPM

better-srcds-log-parser

1.0.3
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 5
  • Score
    100M100P100Q42410F
  • License GPL-3.0

A srcds (CS:GO, TF2, etc) log parser that works

Package Exports

  • better-srcds-log-parser
  • better-srcds-log-parser/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (better-srcds-log-parser) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

A better srcds (CS:GO, TF2, etc) Log Parser

A Typescript/Javascript library for reading log files from Valve's Source Dedicated Server (srcds), including Counter Strike: GO, Counter Strike: Source, Team Fortress 2, and so on.

Presently only the special events for CS:GO have been added so TF2 will not actually work, but the rest will be added soon.

More details to come.

Usage

npm install better-srcds-log-parser

Javascript:

var fs = require('fs'),
    SrcdsLogParser = require("better-srcds-log-parser").SrcdsLogParser;

var parser = new SrcdsLogParser();

fs.readFileSync("someFilename.log")
    .toString()
    .split("\n")
    .forEach(function(line) {
        console.log(parser.parseLine(line));
    });

Typescript:

import * as SrcdsLogParser from "better-srcds-log-parser";
import fs = require('fs');

var parser: SrcdsLogParser.SrcdsLogParser = new SrcdsLogParser.SrcdsLogParser();

fs.readFileSync("someFilename.log")
    .toString()
    .split("\n")
    .forEach((line) {
        let parsedLine: SrcdsLogParser.ISrcdsLog = parser.parseLine(line);
        console.log(parsedLine);
    });

Both will output something like the following:

SwitchedType {
  Player:
   Player {
     Name: 'Some Player Name',
     PlayerID: 21,
     SteamID: 'STEAM_1:0:1234567',
     Team: 4 },
  FromTeam: 3,
  ToTeam: 2,
  Type: 'Switched' }
ServerCvarType { Cvar: 'nextlevel', Value: '', Type: 'ServerCvar' }
PlayerTriggeredType {
  Type: 'PlayerTriggered',
  Player: Player { Name: 'World' },
  Value: 'de_cache',
  EventType: 9 }
PlayerTriggeredType {
  Type: 'PlayerTriggered',
  Player:
   Player {
     Name: 'Some Player Name',
     PlayerID: 21,
     SteamID: 'STEAM_1:0:1234567',
     Team: 2 },
  Value: '',
  EventType: 12 }

There are some Enums visible in this output. For example, EventType in the last entry. The enums are exported from the module, and they are:

ConnectionActions
PlayerTriggerType
TeamTriggerType
Team
ServerEvents

Example types

See warmod-types.json and srcds-types.json for, respectively, the log entry types that Warmod will emit, and the log entry types that a vanilla CS:GO server will emit. Both can be enabled on a server at the same time.

License

GPL 3.0. See LICENSE for more details.