Upvote Upvoted 42 Downvote Downvoted
Zidgel's Gizmos
posted in Projects
1
#1
0 Frags +

(I have named this Zidgel's Gizmos in anticipation of future projects I hope to come to fruition)
I am Zidgel and I have an interest in scripting.

Big Project A: Degroot Sort, sort your demos into folders based on information like map, date, etc.

Show Content
I also just finished writing v1 of Degroot Sort, a sorter for your demos. You can also "probe" to get basic information or "flatten" to reset your sorts back to one folder, for resorting. You can read more about it on Github.
https://github.com/CaptainZidgel/degroot-sort
You can sort by a few kinds of categories, here's an example tree after sorting by map, "date"(not really, its the first 7 characters of the filename), and server group (read more about sever group aliasing on the github repo or I can answer your questions here).

https://i.imgur.com/wnr22js.png

There is an "eventfulness" category to sort by (`eventful`) but it only supports the in-game recorder style of documenting events, via a matching json for each demo file. I'd be happy to support other event doc types if someone can provide me samples of whatever tool they use (say, PREC)
Comes in your preferred flavor of UI or CLI, downloads for Windows here https://github.com/CaptainZidgel/degroot-sort/releases
If you can, I recommend building it yourself.

Big Project B: StraightToVDM - Turn your bookmarks into vdm files usable by Lawena!

Show Content
This program takes bookmarks and creates vdms usable by Lawena - it will automatically skip between demos to your events and record them, nothing needs to be done in Lawena to create/load these. Just open TF2 through lawena like normally, then playdemo <starting demo>.
Download the latest release! Just look for the .zip that isn't called 'source code', unzip it, open the folder, double click the exe
Supports in-game demo support and PREC.

Big Project C: TF2KillstreakFinder (No cool name :( ) - create vdm files from a directory of demos

Show Content
ok gamers here's something based and poggerspilled:
an exe that takes a directory of demos, searches them for killstreaks according to your custom parameters (how many kills count, how long between them) and creates VDFs (the format used to semi-automate recording with lawena) of these streaks
https://github.com/CaptainZidgel/TF2KillstreakFinder/releases/tag/0.1-alpha
Be prepared with your Steam3 ID and the directory where your demos are.
Two caveats:
1. if the allowable space between kills in a streak is sufficiently long, it is possible it will record 'killstreaks' that happen over multiple lives. i would program a solution to this but i am working fulltime and doing school every other breathing moment so i cant
2. doesnt add custom bookmarks from prec or whatever into the VDFs. I would want to code this too but... yeah

That's all for now, I hope to bring more things of questionable usefulness to you soon.

(I have named this Zidgel's Gizmos in anticipation of future projects I hope to come to fruition)
I am Zidgel and I have an interest in scripting.

Big Project A: Degroot Sort, sort your demos into folders based on information like map, date, etc.
[spoiler]
I also just finished writing v1 of Degroot Sort, a sorter for your demos. You can also "probe" to get basic information or "flatten" to reset your sorts back to one folder, for resorting. You can read more about it on Github.
https://github.com/CaptainZidgel/degroot-sort
You can sort by a few kinds of categories, here's an example tree after sorting by map, "date"(not really, its the first 7 characters of the filename), and server group (read more about sever group aliasing on the github repo or I can answer your questions here).
[img]https://i.imgur.com/wnr22js.png[/img]
There is an "eventfulness" category to sort by (`eventful`) but it only supports the in-game recorder style of documenting events, via a matching json for each demo file. I'd be happy to support other event doc types if someone can provide me samples of whatever tool they use (say, PREC)
Comes in your preferred flavor of UI or CLI, downloads for Windows here https://github.com/CaptainZidgel/degroot-sort/releases
If you can, I recommend building it yourself.
[/spoiler]

Big Project B: StraightToVDM - Turn your bookmarks into vdm files usable by Lawena!
[spoiler]
This program takes bookmarks and creates vdms usable by Lawena - it will automatically skip between demos to your events and record them, nothing needs to be done in Lawena to create/load these. Just open TF2 through lawena like normally, then playdemo <starting demo>.
Download the latest [url=https://github.com/CaptainZidgel/StraightToVDM/releases]release[/url]! Just look for the .zip that isn't called 'source code', unzip it, open the folder, double click the exe
Supports in-game demo support and PREC.
[/spoiler]

Big Project C: TF2KillstreakFinder (No cool name :( ) - create vdm files from a directory of demos
[spoiler]
ok gamers here's something based and poggerspilled:
an exe that takes a directory of demos, searches them for killstreaks according to your custom parameters (how many kills count, how long between them) and creates VDFs (the format used to semi-automate recording with lawena) of these streaks
https://github.com/CaptainZidgel/TF2KillstreakFinder/releases/tag/0.1-alpha
Be prepared with your Steam3 ID and the directory where your demos are.
Two caveats:
1. if the allowable space between kills in a streak is sufficiently long, it is possible it will record 'killstreaks' that happen over multiple lives. i would program a solution to this but i am working fulltime and doing school every other breathing moment so i cant
2. doesnt add custom bookmarks from prec or whatever into the VDFs. I would want to code this too but... yeah
[/spoiler]

That's all for now, I hope to bring more things of questionable usefulness to you soon.
2
#2
5 Frags +

Alright here's the other thing I was excited to show and the reason this is called "Zidgel's Gizmos" instead of "Demo Sorter program". Wanted this to spend more time in the oven but decided that might just overcook it.
Often times playing games, I hear people lament "Ah, I got a cool kill but wasn't recording a demo. Was anyone recording a demo?" Forgetting 1) the server probably had STV recording 2) Player recorded demos can't change perspective. However, if you don't remember to track down your STV demo on demos.tf near the actual event, you might never find it, especially if you play a whole lot of pugs and scrims every day.
I don't know if this will be useful to anyone, (certainly won't be to me), but this tool will find the STV equivalents of your POV demos on demos.tf
https://github.com/CaptainZidgel/tavish-find
No binaries here, you'll need Python >= 3.8 and a compiled binary of icewind's rust demo parser (link on github repo).
This is experimental and won't work great in wonky situations, but if you only record as soon as matches start (like with PREC), I anticipate a very high success rate.
I have five demos I have tested it with and tweaked the program to specifically get good results for each one. Problem is I can't test every case. If you try it out, I would appreciate hearing about the results.

Alright here's the other thing I was excited to show and the reason this is called "Zidgel's Gizmos" instead of "Demo Sorter program". Wanted this to spend more time in the oven but decided that might just overcook it.
Often times playing games, I hear people lament "Ah, I got a cool kill but wasn't recording a demo. Was anyone recording a demo?" Forgetting 1) the server probably had STV recording 2) Player recorded demos can't change perspective. However, if you don't remember to track down your STV demo on demos.tf near the actual event, you might never find it, especially if you play a whole lot of pugs and scrims every day.
I don't know if this will be useful to anyone, (certainly won't be to me), but this tool will find the STV equivalents of your POV demos on demos.tf
https://github.com/CaptainZidgel/tavish-find
No binaries here, you'll need Python >= 3.8 and a compiled binary of icewind's rust demo parser (link on github repo).
This is experimental and won't work great in wonky situations, but if you only record as soon as matches start (like with PREC), I anticipate a very high success rate.
I have five demos I have tested it with and tweaked the program to specifically get good results for each one. Problem is I can't test every case. If you try it out, I would appreciate hearing about the results.
3
#3
3 Frags +

I didn't write anything for this. I just built an executable from an external module. Module
Want to execute rcon commands when not in game? The best thing would be a website but I'm not running a server* for that so this is the next best thing:
A distributed executable rcon client. """Written"""** in Python. No python installations or dependencies needed on your end.
Direct download: https://github.com/CaptainZidgel/simple-rcon-client/releases/download/b1/RCONCLIENT.zip
Docs: https://python-valve.readthedocs.io/en/latest/rcon.html#using-the-rcon-shell

*Hmm... perhaps after I eat my noodles I will look into hosting a thing on heroku.
**I didn't write anything. I built the rcon implementation from python-valve into an executable.

I build this so that I could use it on Windows instead of opening an Ubuntu vm to use rcon outside of TF2, and I could click an exe instead of typing out a longer than necessary command.
The quote-unquote source code is available on the same github if you'd like to make sure I'm not skimming your rcon passwords.
Again, to reiterate, this took no work on my end. Huge thanks to the original author of the module, Holiverh

[b]I didn't write anything for this. I just built an executable from an external module. [url=https://pypi.org/project/python-valve/]Module[/url][/b]
Want to execute rcon commands when not in game? The best thing would be a website but I'm not running a server* for that so this is the next best thing:
A distributed executable rcon client. """Written"""** in Python. No python installations or dependencies needed on your end.
Direct download: https://github.com/CaptainZidgel/simple-rcon-client/releases/download/b1/RCONCLIENT.zip
Docs: https://python-valve.readthedocs.io/en/latest/rcon.html#using-the-rcon-shell

*Hmm... perhaps after I eat my noodles I will look into hosting a thing on heroku.
**I didn't write anything. I built the rcon implementation from python-valve into an executable.

I build this so that I could use it on Windows instead of opening an Ubuntu vm to use rcon outside of TF2, and I could click an exe instead of typing out a longer than necessary command.
The quote-unquote source code is available on the same github if you'd like to make sure I'm not skimming your rcon passwords.
[b]Again, to reiterate, this took no work on my end. Huge thanks to the original author of the module, Holiverh[/b]
4
#4
tf2pickup.org
0 Frags +
CaptainZidgelI didn't write anything for this. I just built an executable from an external module. Module
Want to execute rcon commands when not in game? The best thing would be a website but I'm not running a server* for that so this is the next best thing:
A distributed executable rcon client. """Written"""** in Python. No python installations or dependencies needed on your end.
Direct download: https://github.com/CaptainZidgel/simple-rcon-client/releases/download/b1/RCONCLIENT.zip
Docs: https://python-valve.readthedocs.io/en/latest/rcon.html#using-the-rcon-shell

*Hmm... perhaps after I eat my noodles I will look into hosting a thing on heroku.
**I didn't write anything. I built the rcon implementation from python-valve into an executable.

I build this so that I could use it on Windows instead of opening an Ubuntu vm to use rcon outside of TF2, and I could click an exe instead of typing out a longer than necessary command.
The quote-unquote source code is available on the same github if you'd like to make sure I'm not skimming your rcon passwords.
Again, to reiterate, this took no work on my end. Huge thanks to the original author of the module, Holiverh

I was working on a chrome extention that allows this, and a website that also allowed this. I guess you're 40% there to what I wanted to do :P

[quote=CaptainZidgel][b]I didn't write anything for this. I just built an executable from an external module. [url=https://pypi.org/project/python-valve/]Module[/url][/b]
Want to execute rcon commands when not in game? The best thing would be a website but I'm not running a server* for that so this is the next best thing:
A distributed executable rcon client. """Written"""** in Python. No python installations or dependencies needed on your end.
Direct download: https://github.com/CaptainZidgel/simple-rcon-client/releases/download/b1/RCONCLIENT.zip
Docs: https://python-valve.readthedocs.io/en/latest/rcon.html#using-the-rcon-shell

*Hmm... perhaps after I eat my noodles I will look into hosting a thing on heroku.
**I didn't write anything. I built the rcon implementation from python-valve into an executable.

I build this so that I could use it on Windows instead of opening an Ubuntu vm to use rcon outside of TF2, and I could click an exe instead of typing out a longer than necessary command.
The quote-unquote source code is available on the same github if you'd like to make sure I'm not skimming your rcon passwords.
[b]Again, to reiterate, this took no work on my end. Huge thanks to the original author of the module, Holiverh[/b][/quote]
I was working on a chrome extention that allows this, and a website that also allowed this. I guess you're 40% there to what I wanted to do :P
5
#5
1 Frags +
24I was working on a chrome extention that allows this, and a website that also allowed this. I guess you're 40% there to what I wanted to do :P

There are nodejs and openresty implementations of rcon already out there. Someone just needs to take one and write a nice html form then host it. I already have something like that ready to be hosted (openresty/lapis implementation). Will try to figure out how to use heroku, but I've never been able to get it done. If you have a website that does RCON connections easily, it will be of great use and I recommend you try and get it hosted.

[quote=24]
I was working on a chrome extention that allows this, and a website that also allowed this. I guess you're 40% there to what I wanted to do :P[/quote]
There are nodejs and openresty implementations of rcon already out there. Someone just needs to take one and write a nice html form then host it. I already have something like that ready to be hosted (openresty/lapis implementation). Will try to figure out how to use heroku, but I've never been able to get it done. If you have a website that does RCON connections easily, it will be of great use and I recommend you try and get it hosted.
6
#6
tf2pickup.org
0 Frags +
CaptainZidgel24I was working on a chrome extention that allows this, and a website that also allowed this. I guess you're 40% there to what I wanted to do :PThere are nodejs and openresty implementations of rcon already out there. Someone just needs to take one and write a nice html form then host it. I already have something like that ready to be hosted (openresty/lapis implementation). Will try to figure out how to use heroku, but I've never been able to get it done. If you have a website that does RCON connections easily, it will be of great use and I recommend you try and get it hosted.

I already have it more or less done, and you can use github pages to host. I'll get something released soon, maybe this upcoming monday I'll have it working (I already have a private site to do this- I just need to make it better and provide a bit more context_

[quote=CaptainZidgel][quote=24]
I was working on a chrome extention that allows this, and a website that also allowed this. I guess you're 40% there to what I wanted to do :P[/quote]
There are nodejs and openresty implementations of rcon already out there. Someone just needs to take one and write a nice html form then host it. I already have something like that ready to be hosted (openresty/lapis implementation). Will try to figure out how to use heroku, but I've never been able to get it done. If you have a website that does RCON connections easily, it will be of great use and I recommend you try and get it hosted.[/quote]
I already have it more or less done, and you can use github pages to host. I'll get something released soon, maybe this upcoming monday I'll have it working (I already have a private site to do this- I just need to make it better and provide a bit more context_
7
#7
0 Frags +
CaptainZidgelI didn't write anything for this. I just built an executable from an external module. Module
Want to execute rcon commands when not in game? The best thing would be a website but I'm not running a server* for that so this is the next best thing:
A distributed executable rcon client. """Written"""** in Python. No python installations or dependencies needed on your end.
Direct download: https://github.com/CaptainZidgel/simple-rcon-client/releases/download/b1/RCONCLIENT.zip
Docs: https://python-valve.readthedocs.io/en/latest/rcon.html#using-the-rcon-shell

*Hmm... perhaps after I eat my noodles I will look into hosting a thing on heroku.
**I didn't write anything. I built the rcon implementation from python-valve into an executable.

I build this so that I could use it on Windows instead of opening an Ubuntu vm to use rcon outside of TF2, and I could click an exe instead of typing out a longer than necessary command.
The quote-unquote source code is available on the same github if you'd like to make sure I'm not skimming your rcon passwords.
Again, to reiterate, this took no work on my end. Huge thanks to the original author of the module, Holiverh

Forgive my ignorance, but aside from you doing this as a hobby/project why use this over something more robust like HLSW?

[quote=CaptainZidgel][b]I didn't write anything for this. I just built an executable from an external module. [url=https://pypi.org/project/python-valve/]Module[/url][/b]
Want to execute rcon commands when not in game? The best thing would be a website but I'm not running a server* for that so this is the next best thing:
A distributed executable rcon client. """Written"""** in Python. No python installations or dependencies needed on your end.
Direct download: https://github.com/CaptainZidgel/simple-rcon-client/releases/download/b1/RCONCLIENT.zip
Docs: https://python-valve.readthedocs.io/en/latest/rcon.html#using-the-rcon-shell

*Hmm... perhaps after I eat my noodles I will look into hosting a thing on heroku.
**I didn't write anything. I built the rcon implementation from python-valve into an executable.

I build this so that I could use it on Windows instead of opening an Ubuntu vm to use rcon outside of TF2, and I could click an exe instead of typing out a longer than necessary command.
The quote-unquote source code is available on the same github if you'd like to make sure I'm not skimming your rcon passwords.
[b]Again, to reiterate, this took no work on my end. Huge thanks to the original author of the module, Holiverh[/b][/quote]


Forgive my ignorance, but aside from you doing this as a hobby/project why use this over something more robust like HLSW?
8
#8
2 Frags +
24I already have it more or less done, and you can use github pages to host. I'll get something released soon, maybe this upcoming monday I'll have it working (I already have a private site to do this- I just need to make it better and provide a bit more context_

I'd be very interested in seeing how the github pages implementation works - github pages servers static pages only but under normal conditions you'd need some kind of a server to send TCP requests, but I did a quick google about TCP reqs in client only - is this the extension tech you were referring to? https://stackoverflow.com/questions/12407778/connecting-to-tcp-socket-from-browser-using-javascript

DanceNumberForgive my ignorance, but aside from you doing this as a hobby/project why use this over something more robust like HLSW?

Well for one thing I didn't know HLSW existed - beyond that, yes, it was just hobby. I'm trying to navigate the HLSW site right now but its kind of old - the only thing I could vaguely promise is that the use of a simple rcon shell would be much tinier, less resource intensive, than a client designed to access and control servers for dozens of different games - assuming that the games they're tailoring to use altered RCON protocols, as non-source/non-valve games often do (mine is only guaranteed to work on valve servers btw, ie tf2).

[quote=24]
I already have it more or less done, and you can use github pages to host. I'll get something released soon, maybe this upcoming monday I'll have it working (I already have a private site to do this- I just need to make it better and provide a bit more context_[/quote]
I'd be very interested in seeing how the github pages implementation works - github pages servers static pages only but under normal conditions you'd need some kind of a server to send TCP requests, but I did a quick google about TCP reqs in client only - is this the extension tech you were referring to? https://stackoverflow.com/questions/12407778/connecting-to-tcp-socket-from-browser-using-javascript

[quote=DanceNumber]
Forgive my ignorance, but aside from you doing this as a hobby/project why use this over something more robust like HLSW?[/quote]
Well for one thing I didn't know HLSW existed - beyond that, yes, it was just hobby. I'm trying to navigate the HLSW site right now but its kind of old - the only thing I could vaguely promise is that the use of a simple rcon shell would be much tinier, less resource intensive, than a client designed to access and control servers for dozens of different games - assuming that the games they're tailoring to use altered RCON protocols, as non-source/non-valve games often do (mine is only guaranteed to work on valve servers btw, ie tf2).
9
#9
tf2pickup.org
1 Frags +
CaptainZidgel24I already have it more or less done, and you can use github pages to host. I'll get something released soon, maybe this upcoming monday I'll have it working (I already have a private site to do this- I just need to make it better and provide a bit more context_I'd be very interested in seeing how the github pages implementation works - github pages servers static pages only but under normal conditions you'd need some kind of a server to send TCP requests, but I did a quick google about TCP reqs in client only - is this the extension tech you were referring to? https://stackoverflow.com/questions/12407778/connecting-to-tcp-socket-from-browser-using-javascript

js frameworks are beast you have no idea

you can also use client side requestings (ajax) in order to get information from the frontend without a backend. I have a backend set up for it hosted anyways (private backend- dont be confused), but if you were to do it all in the front end it would probably work but it would be sketchy af.

[quote=CaptainZidgel][quote=24]
I already have it more or less done, and you can use github pages to host. I'll get something released soon, maybe this upcoming monday I'll have it working (I already have a private site to do this- I just need to make it better and provide a bit more context_[/quote]
I'd be very interested in seeing how the github pages implementation works - github pages servers static pages only but under normal conditions you'd need some kind of a server to send TCP requests, but I did a quick google about TCP reqs in client only - is this the extension tech you were referring to? https://stackoverflow.com/questions/12407778/connecting-to-tcp-socket-from-browser-using-javascript
[/quote]
js frameworks are beast you have no idea

you can also use client side requestings (ajax) in order to get information from the frontend without a backend. I have a backend set up for it hosted anyways (private backend- dont be confused), but if you were to do it all in the front end it would probably work but it would be sketchy af.
10
#10
0 Frags +

Hey guys, I've pushed a small update for Degroot Sort - it creates text trees representing your folders, so you can see information at a glance. Here's a snippet from the file I created before resorting my demos based on eventfulness.

Show Content
--cp_foundry\
----2020-01\
------valve\
--------2020-01-21_20-15-49.dem
----2020-02\
------nutcity\
--------2020-02-02_21-58-05.dem
--------2020-02-02_23-45-10.dem
--------2020-02-04_21-05-35.dem
------valve\
--------2020-02-20_21-20-32.dem
--------2020-02-21_21-32-58.dem
--------2020-02-21_21-49-07.dem
----2020-03\
------valve\
--------2020-03-28_13-56-08.dem
----2020-04\
------valve\
--------2020-04-27_15-01-53.dem
--------2020-04-29_18-41-16.dem
----2020-05\
------nutcity\
--------2020-05-27_01-16-57.dem
--------2020-05-27_01-57-42.dem
------valve\
--------2020-05-02_00-43-50.dem
--------2020-05-23_22-53-24.dem
--cp_gravelpit\
----2020-05\
------valve\
--------2020-05-26_11-03-10.dem
--cp_gullywash_final1\
----2020-01\
------nutcity\
--------2020-01-16_20-41-10.dem
--------2020-01-16_20-42-04.dem
--------2020-01-21_22-22-12.dem
--------2020-01-22_23-29-03.dem
--------2020-01-23_18-21-22.dem
--------2020-01-23_18-26-47.dem
--------2020-01-23_18-39-23.dem
--------2020-01-23_19-53-58.dem
--------2020-01-23_20-33-28.dem
--------2020-01-25_16-46-43.dem
--------2020-01-25_19-45-15.dem
--------2020-01-25_19-54-39.dem
--------2020-01-25_20-28-17.dem
--------2020-01-26_23-49-45.dem
--------2020-01-27_00-36-48.dem
--------2020-01-27_20-59-02.dem
--------2020-01-28_22-11-43.dem
------other\
--------192.223.30.97@27015\
----------2020-01-24_14-44-33.dem
------serveme\
--------2020-01-16_21-31-55.dem
--------2020-01-16_22-35-19.dem
--------2020-01-21_18-24-31.dem

https://github.com/CaptainZidgel/degroot-sort/releases/tag/v1.1.0

I am also brainstorming ideas on different ways to sort/organize/filter demos based on eventful (how many events, event data provided from 'ds_mark description'). If you have any thoughts please let me know.

Hey guys, I've pushed a small update for Degroot Sort - it creates text trees representing your folders, so you can see information at a glance. Here's a snippet from the file I created before resorting my demos based on eventfulness.
[spoiler]
--cp_foundry\
----2020-01\
------valve\
--------2020-01-21_20-15-49.dem
----2020-02\
------nutcity\
--------2020-02-02_21-58-05.dem
--------2020-02-02_23-45-10.dem
--------2020-02-04_21-05-35.dem
------valve\
--------2020-02-20_21-20-32.dem
--------2020-02-21_21-32-58.dem
--------2020-02-21_21-49-07.dem
----2020-03\
------valve\
--------2020-03-28_13-56-08.dem
----2020-04\
------valve\
--------2020-04-27_15-01-53.dem
--------2020-04-29_18-41-16.dem
----2020-05\
------nutcity\
--------2020-05-27_01-16-57.dem
--------2020-05-27_01-57-42.dem
------valve\
--------2020-05-02_00-43-50.dem
--------2020-05-23_22-53-24.dem
--cp_gravelpit\
----2020-05\
------valve\
--------2020-05-26_11-03-10.dem
--cp_gullywash_final1\
----2020-01\
------nutcity\
--------2020-01-16_20-41-10.dem
--------2020-01-16_20-42-04.dem
--------2020-01-21_22-22-12.dem
--------2020-01-22_23-29-03.dem
--------2020-01-23_18-21-22.dem
--------2020-01-23_18-26-47.dem
--------2020-01-23_18-39-23.dem
--------2020-01-23_19-53-58.dem
--------2020-01-23_20-33-28.dem
--------2020-01-25_16-46-43.dem
--------2020-01-25_19-45-15.dem
--------2020-01-25_19-54-39.dem
--------2020-01-25_20-28-17.dem
--------2020-01-26_23-49-45.dem
--------2020-01-27_00-36-48.dem
--------2020-01-27_20-59-02.dem
--------2020-01-28_22-11-43.dem
------other\
--------192.223.30.97@27015\
----------2020-01-24_14-44-33.dem
------serveme\
--------2020-01-16_21-31-55.dem
--------2020-01-16_22-35-19.dem
--------2020-01-21_18-24-31.dem
[/spoiler]

https://github.com/CaptainZidgel/degroot-sort/releases/tag/v1.1.0

I am also brainstorming ideas on different ways to sort/organize/filter demos based on eventful (how many events, event data provided from 'ds_mark description'). If you have any thoughts please let me know.
11
#11
1 Frags +

New program: StraightToVDM - Turn your bookmarks into vdm files usable by Lawena!

This program takes json bookmarks - bookmarks created by in-game demo support - and creates vdms usable by Lawena - it will automatically skip between demos to your events and record them, nothing needs to be done in Lawena to create/load these. Just open TF2 through lawena like normally, then playdemo <starting demo>.
Download the latest release!
To reiterate, it only supports in-game demo support, but i CAN support PREC if I had samples of bookmarks - the entire file with the same filename PREC created - I would need to know how PREC saves demo names, how it pairs bookmarks to demos, and how it saves bookmarks.

New program: StraightToVDM - Turn your bookmarks into vdm files usable by Lawena!

This program takes json bookmarks - bookmarks created by in-game demo support - and creates vdms usable by Lawena - it will automatically skip between demos to your events and record them, nothing needs to be done in Lawena to create/load these. Just open TF2 through lawena like normally, then playdemo <starting demo>.
Download the latest [url=https://github.com/CaptainZidgel/StraightToVDM/releases]release[/url]!
To reiterate, it only supports in-game demo support, but i CAN support PREC if I had samples of bookmarks - the entire file with the same filename PREC created - I would need to know how PREC saves demo names, how it pairs bookmarks to demos, and how it saves bookmarks.
12
#12
1 Frags +
CaptainZidgelNew program: StraightToVDM - Turn your bookmarks into vdm files usable by Lawena!

This program takes json bookmarks - bookmarks created by in-game demo support - and creates vdms usable by Lawena - it will automatically skip between demos to your events and record them, nothing needs to be done in Lawena to create/load these. Just open TF2 through lawena like normally, then playdemo <starting demo>.
Download the latest release!
To reiterate, it only supports in-game demo support, but i CAN support PREC if I had samples of bookmarks - the entire file with the same filename PREC created - I would need to know how PREC saves demo names, how it pairs bookmarks to demos, and how it saves bookmarks.

prec file is killstreaks.txt
The folder the demos and killstreaks.txt are saved in can be set with the prec_dir cvar (tf/demos by default - nobody changes it)
demo name can be custom, but it's saved in killstreaks.txt too
empty line between demos

here's sample output:

Show Content
[2020/06/03/ 22:41] Kill Streak:5 ("20200603_2212_cp_sunshine_RED_BLU" at 114086)
[2020/06/03/ 22:43] Kill Streak:4 ("20200603_2212_cp_sunshine_RED_BLU" at 120280)
[2020/06/03/ 23:02] Player bookmark ("20200603_2212_cp_sunshine_RED_BLU" at 200466)

[2020/06/03/ 23:30] Kill Streak:4 ("20200603_2328_cp_sunshine_RED_INSIN" at 6660)
[2020/06/03/ 23:31] Player bookmark ("20200603_2328_cp_sunshine_RED_INSIN" at 13586)

[2020/06/04/ 22:08] Player bookmark ("20200604_2153_cp_sunshine_RED_BLU" at 59873)

[2020/06/04/ 22:38] Kill Streak:4 ("20200604_2237_cp_sunshine_RED_BLU" at 5528)
[2020/06/04/ 22:57] Player bookmark ("20200604_2237_cp_sunshine_RED_BLU" at 81785)
[quote=CaptainZidgel]New program: StraightToVDM - Turn your bookmarks into vdm files usable by Lawena!

This program takes json bookmarks - bookmarks created by in-game demo support - and creates vdms usable by Lawena - it will automatically skip between demos to your events and record them, nothing needs to be done in Lawena to create/load these. Just open TF2 through lawena like normally, then playdemo <starting demo>.
Download the latest [url=https://github.com/CaptainZidgel/StraightToVDM/releases]release[/url]!
To reiterate, it only supports in-game demo support, but i CAN support PREC if I had samples of bookmarks - the entire file with the same filename PREC created - I would need to know how PREC saves demo names, how it pairs bookmarks to demos, and how it saves bookmarks.[/quote]

prec file is killstreaks.txt
The folder the demos and killstreaks.txt are saved in can be set with the prec_dir cvar (tf/demos by default - nobody changes it)
demo name can be custom, but it's saved in killstreaks.txt too
empty line between demos

here's sample output:
[spoiler]
[2020/06/03/ 22:41] Kill Streak:5 ("20200603_2212_cp_sunshine_RED_BLU" at 114086)
[2020/06/03/ 22:43] Kill Streak:4 ("20200603_2212_cp_sunshine_RED_BLU" at 120280)
[2020/06/03/ 23:02] Player bookmark ("20200603_2212_cp_sunshine_RED_BLU" at 200466)

[2020/06/03/ 23:30] Kill Streak:4 ("20200603_2328_cp_sunshine_RED_INSIN" at 6660)
[2020/06/03/ 23:31] Player bookmark ("20200603_2328_cp_sunshine_RED_INSIN" at 13586)

[2020/06/04/ 22:08] Player bookmark ("20200604_2153_cp_sunshine_RED_BLU" at 59873)

[2020/06/04/ 22:38] Kill Streak:4 ("20200604_2237_cp_sunshine_RED_BLU" at 5528)
[2020/06/04/ 22:57] Player bookmark ("20200604_2237_cp_sunshine_RED_BLU" at 81785)[/spoiler]
13
#13
1 Frags +
negasoraCaptainZidgelNew program: StraightToVDM - Turn your bookmarks into vdm files usable by Lawena!

This program takes json bookmarks - bookmarks created by in-game demo support - and creates vdms usable by Lawena - it will automatically skip between demos to your events and record them, nothing needs to be done in Lawena to create/load these. Just open TF2 through lawena like normally, then playdemo <starting demo>.
Download the latest release!
To reiterate, it only supports in-game demo support, but i CAN support PREC if I had samples of bookmarks - the entire file with the same filename PREC created - I would need to know how PREC saves demo names, how it pairs bookmarks to demos, and how it saves bookmarks.

prec file is killstreaks.txt
The folder the demos and killstreaks.txt are saved in can be set with the prec_dir cvar (tf/demos by default - nobody changes it)
demo name can be custom, but it's saved in killstreaks.txt too
empty line between demos

here's sample output:
Show Content
[2020/06/03/ 22:41] Kill Streak:5 ("20200603_2212_cp_sunshine_RED_BLU" at 114086)
[2020/06/03/ 22:43] Kill Streak:4 ("20200603_2212_cp_sunshine_RED_BLU" at 120280)
[2020/06/03/ 23:02] Player bookmark ("20200603_2212_cp_sunshine_RED_BLU" at 200466)

[2020/06/03/ 23:30] Kill Streak:4 ("20200603_2328_cp_sunshine_RED_INSIN" at 6660)
[2020/06/03/ 23:31] Player bookmark ("20200603_2328_cp_sunshine_RED_INSIN" at 13586)

[2020/06/04/ 22:08] Player bookmark ("20200604_2153_cp_sunshine_RED_BLU" at 59873)

[2020/06/04/ 22:38] Kill Streak:4 ("20200604_2237_cp_sunshine_RED_BLU" at 5528)
[2020/06/04/ 22:57] Player bookmark ("20200604_2237_cp_sunshine_RED_BLU" at 81785)

Excellent, thank you. I will start working on this immediately.

[quote=negasora][quote=CaptainZidgel]New program: StraightToVDM - Turn your bookmarks into vdm files usable by Lawena!

This program takes json bookmarks - bookmarks created by in-game demo support - and creates vdms usable by Lawena - it will automatically skip between demos to your events and record them, nothing needs to be done in Lawena to create/load these. Just open TF2 through lawena like normally, then playdemo <starting demo>.
Download the latest [url=https://github.com/CaptainZidgel/StraightToVDM/releases]release[/url]!
To reiterate, it only supports in-game demo support, but i CAN support PREC if I had samples of bookmarks - the entire file with the same filename PREC created - I would need to know how PREC saves demo names, how it pairs bookmarks to demos, and how it saves bookmarks.[/quote]

prec file is killstreaks.txt
The folder the demos and killstreaks.txt are saved in can be set with the prec_dir cvar (tf/demos by default - nobody changes it)
demo name can be custom, but it's saved in killstreaks.txt too
empty line between demos

here's sample output:
[spoiler]
[2020/06/03/ 22:41] Kill Streak:5 ("20200603_2212_cp_sunshine_RED_BLU" at 114086)
[2020/06/03/ 22:43] Kill Streak:4 ("20200603_2212_cp_sunshine_RED_BLU" at 120280)
[2020/06/03/ 23:02] Player bookmark ("20200603_2212_cp_sunshine_RED_BLU" at 200466)

[2020/06/03/ 23:30] Kill Streak:4 ("20200603_2328_cp_sunshine_RED_INSIN" at 6660)
[2020/06/03/ 23:31] Player bookmark ("20200603_2328_cp_sunshine_RED_INSIN" at 13586)

[2020/06/04/ 22:08] Player bookmark ("20200604_2153_cp_sunshine_RED_BLU" at 59873)

[2020/06/04/ 22:38] Kill Streak:4 ("20200604_2237_cp_sunshine_RED_BLU" at 5528)
[2020/06/04/ 22:57] Player bookmark ("20200604_2237_cp_sunshine_RED_BLU" at 81785)[/spoiler][/quote]
Excellent, thank you. I will start working on this immediately.
14
#14
1 Frags +

I have added PREC support. https://github.com/CaptainZidgel/StraightToVDM/releases
Just supply the full path to killstreaks.txt (ex. tf/demo/killstreaks.txt) which should be in the same directory as your demos.
If you're using in-game support you supply the path to where your jsons are (ex. tf/demo)

I have added PREC support. https://github.com/CaptainZidgel/StraightToVDM/releases
Just supply the full path to killstreaks.txt (ex. tf/demo/killstreaks.txt) which should be in the same directory as your demos.
If you're using in-game support you supply the path to where your jsons are (ex. tf/demo)
15
#15
5 Frags +

I've created a Python package to turn stats into pandas time series' so you can plot overtime in matplotlib (the library also comes with a basic plotting preset and I intend to create more)

https://i.imgur.com/JbJbRJG.png

There's even an option to shade in competitive seasons.
There's no CLI for end users to auto create a graph but I'm thinking of making one soon.
If you're a developer interested in using this, check out https://github.com/CaptainZidgel/SPOT
One thing I have in progress with this is a tool to specifically track stats over Team scrims in RGL, and even compare players head-to-head (so, say, casters could compare pocket scout to pocket scout before a game).

I've created a Python package to turn stats into pandas time series' so you can plot overtime in matplotlib (the library also comes with a basic plotting preset and I intend to create more)
[img]https://i.imgur.com/JbJbRJG.png[/img]
There's even an option to shade in competitive seasons.
There's no CLI for end users to auto create a graph but I'm thinking of making one soon.
If you're a developer interested in using this, check out https://github.com/CaptainZidgel/SPOT
One thing I have in progress with this is a tool to specifically track stats over Team scrims in RGL, and even compare players head-to-head (so, say, casters could compare pocket scout to pocket scout before a game).
16
#16
2 Frags +
CaptainZidgelOne thing I have in progress with this is a tool to specifically track stats over Team scrims in RGL, and even compare players head-to-head (so, say, casters could compare pocket scout to pocket scout before a game).

https://github.com/CaptainZidgel/Clash

https://i.imgur.com/2UL8Ukm.png

Expanding window of avg DPM over season 3 of RGL
Had this finished like 3 days ago but was thinking of making a webapp but lost all motivation for that so here's the library. Due to the size of seasons, you can use it without caching logs and it'll only take like 10 minutes.

[quote=CaptainZidgel]One thing I have in progress with this is a tool to specifically track stats over Team scrims in RGL, and even compare players head-to-head (so, say, casters could compare pocket scout to pocket scout before a game).[/quote]
https://github.com/CaptainZidgel/Clash
[img]https://i.imgur.com/2UL8Ukm.png[/img]
Expanding window of avg DPM over season 3 of RGL
Had this finished like 3 days ago but was thinking of making a webapp but lost all motivation for that so here's the library. Due to the size of seasons, you can use it without caching logs and it'll only take like 10 minutes.
17
#17
1 Frags +

https://gist.github.com/CaptainZidgel/47a17742ea2a648272478f47b95c4af3
here's a thing that takes your lawena output (a1_xxxx.tga .. z26_xxxx.tga) and makes an automatic job for virtualdub to render out all the different clips to .avi in a row.

https://gist.github.com/CaptainZidgel/47a17742ea2a648272478f47b95c4af3
here's a thing that takes your lawena output (a1_xxxx.tga .. z26_xxxx.tga) and makes an automatic job for virtualdub to render out all the different clips to .avi in a row.
18
#18
3 Frags +
CaptainZidgelhttps://gist.github.com/CaptainZidgel/47a17742ea2a648272478f47b95c4af3
here's a thing that takes your lawena output (a1_xxxx.tga .. z26_xxxx.tga) and makes an automatic job for virtualdub to render out all the different clips to .avi in a row.

if ur doing this i would advise u to use ffmpeg instead, which has the added benefit of being able to encode it at the same time

[quote=CaptainZidgel]https://gist.github.com/CaptainZidgel/47a17742ea2a648272478f47b95c4af3
here's a thing that takes your lawena output (a1_xxxx.tga .. z26_xxxx.tga) and makes an automatic job for virtualdub to render out all the different clips to .avi in a row.[/quote]

if ur doing this i would advise u to use ffmpeg instead, which has the added benefit of being able to encode it at the same time
19
#19
0 Frags +
hpqoeuCaptainZidgelhttps://gist.github.com/CaptainZidgel/47a17742ea2a648272478f47b95c4af3
here's a thing that takes your lawena output (a1_xxxx.tga .. z26_xxxx.tga) and makes an automatic job for virtualdub to render out all the different clips to .avi in a row.

if ur doing this i would advise u to use ffmpeg instead, which has the added benefit of being able to encode it at the same time

that is a good idea i never thought of that
if anyone knows the good cmds to do this let me know because I'm pretty sure Lawena's 60 fps option really records at a variable 58.~ish and vdub accounts for that by setting the framerate based on audio file length but idk how to do that in ffmpeg.

[quote=hpqoeu][quote=CaptainZidgel]https://gist.github.com/CaptainZidgel/47a17742ea2a648272478f47b95c4af3
here's a thing that takes your lawena output (a1_xxxx.tga .. z26_xxxx.tga) and makes an automatic job for virtualdub to render out all the different clips to .avi in a row.[/quote]

if ur doing this i would advise u to use ffmpeg instead, which has the added benefit of being able to encode it at the same time[/quote]
that is a good idea i never thought of that
if anyone knows the good cmds to do this let me know because I'm pretty sure Lawena's 60 fps option really records at a variable 58.~ish and vdub accounts for that by setting the framerate based on audio file length but idk how to do that in ffmpeg.
20
#20
0 Frags +
CaptainZidgelhpqoeuCaptainZidgelhttps://gist.github.com/CaptainZidgel/47a17742ea2a648272478f47b95c4af3
here's a thing that takes your lawena output (a1_xxxx.tga .. z26_xxxx.tga) and makes an automatic job for virtualdub to render out all the different clips to .avi in a row.

if ur doing this i would advise u to use ffmpeg instead, which has the added benefit of being able to encode it at the same time
that is a good idea i never thought of that
if anyone knows the good cmds to do this let me know because I'm pretty sure Lawena's 60 fps option really records at a variable 58.~ish and vdub accounts for that by setting the framerate based on audio file length but idk how to do that in ffmpeg.

i've never actually used lawena but from asking, when recording it seems it's the same as setting host_framerate and doing startmovie.
for reference, here's my script that i've used for years https://pastebin.com/5P9aw90D
-framerate is just the same value that i set host_framerate to in game before recording, as long as it's the same for both places it turns out fine

[quote=CaptainZidgel][quote=hpqoeu][quote=CaptainZidgel]https://gist.github.com/CaptainZidgel/47a17742ea2a648272478f47b95c4af3
here's a thing that takes your lawena output (a1_xxxx.tga .. z26_xxxx.tga) and makes an automatic job for virtualdub to render out all the different clips to .avi in a row.[/quote]

if ur doing this i would advise u to use ffmpeg instead, which has the added benefit of being able to encode it at the same time[/quote]
that is a good idea i never thought of that
if anyone knows the good cmds to do this let me know because I'm pretty sure Lawena's 60 fps option really records at a variable 58.~ish and vdub accounts for that by setting the framerate based on audio file length but idk how to do that in ffmpeg.[/quote]

i've never actually used lawena but from asking, when recording it seems it's the same as setting host_framerate and doing startmovie.
for reference, here's my script that i've used for years https://pastebin.com/5P9aw90D
-framerate is just the same value that i set host_framerate to in game before recording, as long as it's the same for both places it turns out fine
21
#21
2 Frags +

ok gamers here's something based and poggerspilled:
an exe that takes a directory of demos, searches them for killstreaks according to your custom parameters (how many kills count, how long between them) and creates VDFs (the format used to semi-automate recording with lawena) of these streaks
https://github.com/CaptainZidgel/TF2KillstreakFinder/releases/tag/0.1-alpha
Be prepared with your Steam3 ID and the directory where your demos are.
Two caveats:
1. if the allowable space between kills in a streak is sufficiently long, it is possible it will record 'killstreaks' that happen over multiple lives. i would program a solution to this but i am working fulltime and doing school every other breathing moment so i cant
2. doesnt add custom bookmarks from prec or whatever into the VDFs. I would want to code this too but... yeah

ok gamers here's something based and poggerspilled:
an exe that takes a directory of demos, searches them for killstreaks according to your custom parameters (how many kills count, how long between them) and creates VDFs (the format used to semi-automate recording with lawena) of these streaks
https://github.com/CaptainZidgel/TF2KillstreakFinder/releases/tag/0.1-alpha
Be prepared with your Steam3 ID and the directory where your demos are.
Two caveats:
1. if the allowable space between kills in a streak is sufficiently long, it is possible it will record 'killstreaks' that happen over multiple lives. i would program a solution to this but i am working fulltime and doing school every other breathing moment so i cant
2. doesnt add custom bookmarks from prec or whatever into the VDFs. I would want to code this too but... yeah
Please sign in through STEAM to post a comment.