npm install tf2-demo
Parsing of TF2 demo files in node.js and the browser
###cli
```
node bin/analyse demo.dem
`js
var Demo = require('tf2-demo');
var fs = require('fs');
fs.readFile("example.dem", function (err, data) {
if (err) throw err;
var demo = Demo.fromNodeBuffer(data);
var analyser = demo.getAnalyser();
var head = analyser.getHeader();
console.log(head);
var body = analyser.getBody();
console.log(body.getState());
});
`
Using the javascript api it's possible to get far more information out of a demo
file than the basic state provided by the cli interface.
`js
var Demo = require('tf2-demo');
var fs = require('fs');
fs.readFile("example.dem", function (err, data) {
if (err) throw err;
var demo = Demo.fromNodeBuffer(data);
var analyser = demo.getAnalyser();
var head = analyser.getHeader();
var match = analyser.match;
for (const packet of analyser.getPackets()) {
// where you can either get information directly from the packet (see ./src/Data/Packet.ts)
// or use the match object which has contains an (incomplete) state of the match at the current tick``
}
});
During the development of this project the main focus has always been on parsing
STV demos.
Although there are currently no known issues iwth POV demos parsing them is a lot more error prone.
Special thanks goes to
- Panzer for DemoLib
- The StatsHelix team for DemoInfo
- The SkadiStats for smoke
Without the information provided by these projects this would not have been possible