Upvote Upvoted 33 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.
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.

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.
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.

That's all for now, I hope to bring more things of questionable usefulness to you soon.
2
#2
4 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
2 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
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
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
1 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
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.
Please sign in through STEAM to post a comment.