awesome
StatusSpec 0.13.1 has been released to fix an issue with bleed icons not showing up because I sometimes don't know the difference between 0 and 255 alpha.
Today I learned that attempting to extract damage stats from the game client is utterly hopeless and impossible at this point in time. Without the ability to collect damage stats, I don't think there's really much point in displaying any other stats, so the stats module will be indefinitely shelved until/unless Valve actually changes something to allow me to get at them.
Given that, and the fact that there's not really any major improvements I CAN make to any of the modules due to limitations of TF2 or other sources, I'm unsure of what direction to take StatusSpec next, even though I feel that there is so much better that I could be doing. Suggestions for an y new features would be greatly appreciated.
Given that, and the fact that there's not really any major improvements I CAN make to any of the modules due to limitations of TF2 or other sources, I'm unsure of what direction to take StatusSpec next, even though I feel that there is so much better that I could be doing. Suggestions for an y new features would be greatly appreciated.
LangethesupremecommanderToday I learned that attempting to extract damage stats from the game client is utterly hopeless and impossible at this point in time.
Rays mentioned to me that the Love & War update added the functionality to display your own damage done as a stat on the scoreboard. I am unsure if this is purely client-side or if it's something that is replicated on the server and broadcast to STV. Certainly worth looking into if you haven't yet.
That was actually the subject of my investigation. I attempted to extract info from the player entity (which is how SizzlingStats collects stats) and from the player resource entity (which is how MvM displays stats, I think), but neither are revealing any information. There is one event that would suffice in the absence of those two, player_hurt, but that event isn't ever fired in a demo. I believe that the issue is that STV receives a very limited amount of information, and stats (or pause notification, for that matter) doesn't appear to be included.
I did email Valve to ask them to populate one of the above sources shortly before the Love & War update, but it doesn't appear that they are making any changes in response.
Rays mentioned to me that the Love & War update added the functionality to display your own damage done as a stat on the scoreboard. I am unsure if this is purely client-side or if it's something that is replicated on the server and broadcast to STV. Certainly worth looking into if you haven't yet.[/quote]
That was actually the subject of my investigation. I attempted to extract info from the player entity (which is how SizzlingStats collects stats) and from the player resource entity (which is how MvM displays stats, I think), but neither are revealing any information. There is one event that would suffice in the absence of those two, player_hurt, but that event isn't ever fired in a demo. I believe that the issue is that STV receives a very limited amount of information, and stats (or pause notification, for that matter) doesn't appear to be included.
I did email Valve to ask them to populate one of the above sources shortly before the Love & War update, but it doesn't appear that they are making any changes in response.
thesupremecommanderGiven that, and the fact that there's not really any major improvements I CAN make to any of the modules due to limitations of TF2 or other sources, I'm unsure of what direction to take StatusSpec next, even though I feel that there is so much better that I could be doing. Suggestions for an y new features would be greatly appreciated.
I don't think spec_goto works on SourceTV, that could be useful.
https://developer.valvesoftware.com/wiki/CSGO:_Spectator_Tools#Going_to_static_positions_via_key_bindings
I don't think spec_goto works on SourceTV, that could be useful.
https://developer.valvesoftware.com/wiki/CSGO:_Spectator_Tools#Going_to_static_positions_via_key_bindings
atmothesupremecommanderGiven that, and the fact that there's not really any major improvements I CAN make to any of the modules due to limitations of TF2 or other sources, I'm unsure of what direction to take StatusSpec next, even though I feel that there is so much better that I could be doing. Suggestions for an y new features would be greatly appreciated.I don't think spec_goto works on SourceTV, that could be useful.
https://developer.valvesoftware.com/wiki/CSGO:_Spectator_Tools#Going_to_static_positions_via_key_bindings
Yes please!
I don't think spec_goto works on SourceTV, that could be useful.
https://developer.valvesoftware.com/wiki/CSGO:_Spectator_Tools#Going_to_static_positions_via_key_bindings[/quote]
Yes please!
thesupremecommanderThat was actually the subject of my investigation. I attempted to extract info from the player entity (which is how SizzlingStats collects stats) and from the player resource entity (which is how MvM displays stats, I think), but neither are revealing any information. There is one event that would suffice in the absence of those two, player_hurt, but that event isn't ever fired in a demo. I believe that the issue is that STV receives a very limited amount of information, and stats (or pause notification, for that matter) doesn't appear to be included.
This lack of information is what I've found.
As far as I'm aware the STV demo file consists of information that would be transmitted over the network to the viewing client which doesn't seem to include player events. Player data that exists seems to be to do with what's necessary to show the scoreboard, and what you could see by spectating a specific player, so loadout, health, medigun ubercharge, etc.
By this rationale damage would only be included if it's visible in the spectator hud and watching an STV from today using the default hud I don't see anything.
This lack of information is what I've found.
As far as I'm aware the STV demo file consists of information that would be transmitted over the network to the viewing client which doesn't seem to include player events. Player data that exists seems to be to do with what's necessary to show the scoreboard, and what you could see by spectating a specific player, so loadout, health, medigun ubercharge, etc.
By this rationale damage would only be included if it's visible in the spectator hud and watching an STV from today using the default hud I don't see anything.
LangeThis is an intensely stupid idea, but I'm wondering if it'd be possible to embed arbitrary data into the STV feed somehow. Usermessages sent to the STV bot get replicated to all relays and viewers and are also written to the demo. This is why the ready/not ready hud display on the CEVO match mod shows up in STV, it explicitly sends that data to the STV bot so that casters can see it, and it does so by writing and dispatching a raw usermessage. Perhaps this could be abused by a server-side plugin to transmit some extra data?
i've been waiting for a way to do this in order to transmit caster voices across an stv relay.
i've been waiting for a way to do this in order to transmit caster voices across an stv relay.
atmothesupremecommanderGiven that, and the fact that there's not really any major improvements I CAN make to any of the modules due to limitations of TF2 or other sources, I'm unsure of what direction to take StatusSpec next, even though I feel that there is so much better that I could be doing. Suggestions for an y new features would be greatly appreciated.I don't think spec_goto works on SourceTV, that could be useful.
https://developer.valvesoftware.com/wiki/CSGO:_Spectator_Tools#Going_to_static_positions_via_key_bindings
I did look into this a bit today. It seems like there is an actual method for overriding where you're viewing from, which would work nicely. However, actually changing that value so that you could move your camera around from that spot isn't possible.
So I guess if you'd be fine with it working like one of those weird spectator cameras that only looks at the same thing all the time and that you can't change the position or angle of, it could be done.
LangeThis is an intensely stupid idea, but I'm wondering if it'd be possible to embed arbitrary data into the STV feed somehow. Usermessages sent to the STV bot get replicated to all relays and viewers and are also written to the demo. This is why the ready/not ready hud display on the CEVO match mod shows up in STV, it explicitly sends that data to the STV bot so that casters can see it, and it does so by writing and dispatching a raw usermessage. Perhaps this could be abused by a server-side plugin to transmit some extra data?
I believe it would be possible. There would probably need to be a lot of testing involved, but my theoretical solution would be having a payload containing the unique ID, which would help point to a location where the match server would upload relevant data and client plugins could parse and use that data. It would be an elaborate system, but if it is indeed possible to get the data from the match server to the STV client through all of the STV relays, it would work well.
I briefly touched on this when we were discussing SS-in-SS, but to summarize, I don't particularly like such a system because it's not a server-independent solution (good luck seeing these stats from ESEA or team servers), and it introduces a lot of variables in the process.
I don't think spec_goto works on SourceTV, that could be useful.
https://developer.valvesoftware.com/wiki/CSGO:_Spectator_Tools#Going_to_static_positions_via_key_bindings[/quote]
I did look into this a bit today. It seems like there is an actual method for overriding where you're viewing from, which would work nicely. However, actually changing that value so that you could move your camera around from that spot isn't possible.
So I guess if you'd be fine with it working like one of those weird spectator cameras that only looks at the same thing all the time and that you can't change the position or angle of, it could be done.
[quote=Lange]This is an intensely stupid idea, but I'm wondering if it'd be possible to embed arbitrary data into the STV feed somehow. Usermessages sent to the STV bot get replicated to all relays and viewers and are also written to the demo. This is why the ready/not ready hud display on the CEVO match mod shows up in STV, it explicitly sends that data to the STV bot so that casters can see it, and it does so by writing and dispatching a raw usermessage. Perhaps this could be abused by a server-side plugin to transmit some extra data?[/quote]
I believe it would be possible. There would probably need to be a lot of testing involved, but my theoretical solution would be having a payload containing the unique ID, which would help point to a location where the match server would upload relevant data and client plugins could parse and use that data. It would be an elaborate system, but if it is indeed possible to get the data from the match server to the STV client through all of the STV relays, it would work well.
I briefly touched on this when we were discussing SS-in-SS, but to summarize, I don't particularly like such a system because it's not a server-independent solution (good luck seeing these stats from ESEA or team servers), and it introduces a lot of variables in the process.
If picking up stuff coming through the messaging system isn't a problem then parsing kill data is possible or even better if you can get access to the death notice objects (more signature scanning required I think) then you should be able to get assists and some weapon usage.
GentlemanJonIf picking up stuff coming through the messaging system isn't a problem then parsing kill data is possible or even better if you can get access to the death notice objects (more signature scanning required I think) then you should be able to get assists and some weapon usage.
You can, because player_death is emitted as an event to the STV client. That contains a lot of juicy info.
I'm just skeptical that extracting KAD is useful without also getting damage and heal stats, which is usually how people measure how well a player is doing in a match.
You can, because player_death is emitted as an event to the STV client. That contains a lot of juicy info.
I'm just skeptical that extracting KAD is useful without also getting damage and heal stats, which is usually how people measure how well a player is doing in a match.
thesupremecommanderYou can, because player_death is emitted as an event to the STV client. That contains a lot of juicy info.
I'm just skeptical that extracting KAD is useful without also getting damage and heal stats, which is usually how people measure how well a player is doing in a match.
KAD is only the thin end of the wedge, you have kills per minute, net kills per minute (kills - deaths/time), caps per kill to measure team efficiency in converting number advantages, who killed who, medic picks.... I'd be tempted to say demo picks but they're not quite what they were at the moment, dominations, etc. You can do a lot with kills.
I'm just skeptical that extracting KAD is useful without also getting damage and heal stats, which is usually how people measure how well a player is doing in a match.[/quote]
KAD is only the thin end of the wedge, you have kills per minute, net kills per minute (kills - deaths/time), caps per kill to measure team efficiency in converting number advantages, who killed who, medic picks.... I'd be tempted to say demo picks but they're not quite what they were at the moment, dominations, etc. You can do a lot with kills.
Well, another issue is that we still can't do time due to the STV pause problems, so no per minute stats can be done.
When you sum it all up, it's really difficult to get comprehensive stats that paint a full picture of a match.
When you sum it all up, it's really difficult to get comprehensive stats that paint a full picture of a match.
The other option is to build on the stats system Arie published a little while ago, that should provide everything included in the logs. There's still the pause problem with those as well though.
Regarding pauses they're probably detectable with an indirect approach rather than looking for a switch. No players moving or turning and projectile model positions not moving from frame to frame would be hard to explain by any other circumstance.
Regarding pauses they're probably detectable with an indirect approach rather than looking for a switch. No players moving or turning and projectile model positions not moving from frame to frame would be hard to explain by any other circumstance.
More silly ideas:
When a player changes loadout or class, briefly flash their player panel to indicate this.
When "on board" a player's perspective, have an option the streamer can toggle to show a display of the player's equipped weapons (similar to Valve's built-in system, but all three at once, and just the weapon picture and name instead of all the useless info text).
A timer that counts up and resets whenever a point is capped as an alternative to the countdown timer built in to prevent stalemates, the idea being to tell at a glance (without doing mental math) how efficient a team is doing at pushing (like capping a KOTH point).
When a player changes loadout or class, briefly flash their player panel to indicate this.
When "on board" a player's perspective, have an option the streamer can toggle to show a display of the player's equipped weapons (similar to Valve's built-in system, but all three at once, and just the weapon picture and name instead of all the useless info text).
A timer that counts up and resets whenever a point is capped as an alternative to the countdown timer built in to prevent stalemates, the idea being to tell at a glance (without doing mental math) how efficient a team is doing at pushing (like capping a KOTH point).
GentlemanJonThe other option is to build on the stats system Arie published a little while ago, that should provide everything included in the logs. There's still the pause problem with those as well though.
Regarding pauses they're probably detectable with an indirect approach rather than looking for a switch. No players moving or turning and projectile model positions not moving from frame to frame would be hard to explain by any other circumstance.
That's how I've thought about implementing a pause detection system. Of course, it's only a heuristic and a rather expensive one, but it's the best we have right now.
LKincheloeMore silly ideas:
When a player changes loadout or class, briefly flash their player panel to indicate this.
When "on board" a player's perspective, have an option the streamer can toggle to show a display of the player's equipped weapons (similar to Valve's built-in system, but all three at once, and just the weapon picture and name instead of all the useless info text).
A timer that counts up and resets whenever a point is capped as an alternative to the countdown timer built in to prevent stalemates, the idea being to tell at a glance (without doing mental math) how efficient a team is doing at pushing (like capping a KOTH point).
1) Given how the player panel already changes to indicate when a player respawns/changes class, and how it's difficult to modify game panels, I'm not sure that I could pull that off.
However, that does give me another idea (thanks to the World Cup)... would there be interest in a notification panel that pops up to show player changes (such as player class changes, loadout changes, or even player joins/drops)?
2) There's a similar option in the Loadout Icons module, which will display the active loadout for every class in the spec HUD. As far as looking at the current observed player, however, Gentleman Jon and I have so far been unsuccessful in actually figuring out who the camera's on due to various SDK issues. I'll probably take another pass at it soon and see whether I can find another way to access it.
3) Perhaps. I would think that a manually-triggered timer would be more useful, though, so you wouldn't be restricted to just certain events.
Regarding pauses they're probably detectable with an indirect approach rather than looking for a switch. No players moving or turning and projectile model positions not moving from frame to frame would be hard to explain by any other circumstance.[/quote]
That's how I've thought about implementing a pause detection system. Of course, it's only a heuristic and a rather expensive one, but it's the best we have right now.
[quote=LKincheloe]More silly ideas:
When a player changes loadout or class, briefly flash their player panel to indicate this.
When "on board" a player's perspective, have an option the streamer can toggle to show a display of the player's equipped weapons (similar to Valve's built-in system, but all three at once, and just the weapon picture and name instead of all the useless info text).
A timer that counts up and resets whenever a point is capped as an alternative to the countdown timer built in to prevent stalemates, the idea being to tell at a glance (without doing mental math) how efficient a team is doing at pushing (like capping a KOTH point).[/quote]
1) Given how the player panel already changes to indicate when a player respawns/changes class, and how it's difficult to modify game panels, I'm not sure that I could pull that off.
However, that does give me another idea (thanks to the World Cup)... would there be interest in a notification panel that pops up to show player changes (such as player class changes, loadout changes, or even player joins/drops)?
2) There's a similar option in the Loadout Icons module, which will display the active loadout for every class in the spec HUD. As far as looking at the current observed player, however, Gentleman Jon and I have so far been unsuccessful in actually figuring out who the camera's on due to various SDK issues. I'll probably take another pass at it soon and see whether I can find another way to access it.
3) Perhaps. I would think that a manually-triggered timer would be more useful, though, so you wouldn't be restricted to just certain events.
The work you guys have been doing on TF2 spectator plugins is amazing! Keep up the good work!
Re: stats Ubers popped/dropped are still useful if those events are capturable. Would solve the question of whether an uber reached 100% and dropped or was only at 99% and below.
mthsadi've been waiting for a way to do this in order to transmit caster voices across an stv relay.
There was an early season CEVO STV that some streamer was going over (duwatna?) where somehow the casting stream audio got mixed into it. I didn't believe it at the time but that happened somehow. So it's possible?
Re: stats Ubers popped/dropped are still useful if those events are capturable. Would solve the question of whether an uber reached 100% and dropped or was only at 99% and below.
[quote=mthsad]i've been waiting for a way to do this in order to transmit caster voices across an stv relay.[/quote]
There was an early season CEVO STV that some streamer was going over (duwatna?) where somehow the casting stream audio got mixed into it. I didn't believe it at the time but that happened somehow. So it's possible?
Some good news - I've managed to create methods to grab some info about the spectator like the target, mode, and view. It won't be of immediate use to StatusSpec as its features stand right now, but I think Spec Tools will be making use of it soon.
ShunThe work you guys have been doing on TF2 spectator plugins is amazing! Keep up the good work!
Re: stats Ubers popped/dropped are still useful if those events are capturable. Would solve the question of whether an uber reached 100% and dropped or was only at 99% and below.
Well, there are HUD animations triggered when an uber is ready and when an uber is popped, so I'm sure it's possible to show an indicator that makes it more clear. It would be up to users to actually implement that event in to do so, however. Otherwise, I would rely on stats for aggregate info.
[quote=Shun]The work you guys have been doing on TF2 spectator plugins is amazing! Keep up the good work!
Re: stats Ubers popped/dropped are still useful if those events are capturable. Would solve the question of whether an uber reached 100% and dropped or was only at 99% and below.[/quote]
Well, there are HUD animations triggered when an uber is ready and when an uber is popped, so I'm sure it's possible to show an indicator that makes it more clear. It would be up to users to actually implement that event in to do so, however. Otherwise, I would rely on stats for aggregate info.
Is it possible to have the team coloured and standard player outlines on at the same time?
Double outlines :o
Double outlines :o
StatusSpec 0.14.0 is now available. This marks the release of a new module which allows killstreaks to be globally enabled for all players.
AdmirableIs it possible to have the team coloured and standard player outlines on at the same time?
Double outlines :o
Unfortunately not. You can try to replicate something similar with the health-based team-colored outlines that I implemented recently, but double outlines aren't possible within Source.
(If only we could do something like CS:GO...)
[quote=Admirable]Is it possible to have the team coloured and standard player outlines on at the same time?
Double outlines :o[/quote]
Unfortunately not. You can try to replicate something similar with the health-based team-colored outlines that I implemented recently, but double outlines aren't possible within Source.
(If only we could do something like CS:GO...)
StatusSpec 0.14.1 is now available. Some issues that I noticed with killstreaks are now fixed, and a new command to help combat issues with player outlines is available.
I've been getting some reports of player outlines causing game lag. I'm trying to pin down the issue, but I can't replicate it on my system.
If you have been experiencing performance issues while using the player outlines feature, and wouldn't mind testing a few experimental builds, please add me on Steam.
If you have been experiencing performance issues while using the player outlines feature, and wouldn't mind testing a few experimental builds, please add me on Steam.
I need your help - I'm looking to expand antifreeze for the next release, but I don't have enough demos to test with. If you have SourceTV demos of matches where a pause occurred, I would appreciate it if you could send me the demo, along with estimates of the tick when the pause happened and the length of the pause.
Also, if you have ANY bugs, performance issues, feature suggestions, or anything of the sort, please don't hesitate to add me on Steam, post in this thread, or PM me. I'd like to nail down as much as I can with each release, but I can only do that with your help.
Also, if you have ANY bugs, performance issues, feature suggestions, or anything of the sort, please don't hesitate to add me on Steam, post in this thread, or PM me. I'd like to nail down as much as I can with each release, but I can only do that with your help.
Been trying to install this for the last 5 hours to no avail. I have them all in their proper homes (to my knowledge, never used addons before and there are no installation instructions anywhere related to this mod) and I am running in insecure mode. I have gotten the commands form AdvSpec to show up in console when I tried installing that, but havent ever seen anything for statusspec.
Make sure that the StatusSpec directory is installed within the custom directory, and make sure that you're launching the game with the insecure option. If you're doing both of those things, scan the console spew from the game when it's loading for mentions of StatusSpec, which should help clue you in to where StatusSpec is failing to load.
StatusSpec 0.15.0 has been released.
It's a pretty expansive release. New features include the option to display something when the game is paused/frozen, a new module that allows you to highlight frags of a player just like in POV demos, and a new module that allows you to pull up a console and scoreboard while having the rest of the game HUD still visible. In addition, the killstreak and outline modules have been improved.
As always, feedback and suggestions is greatly appreciated. I would especially like feedback on the new features and improvements made in this release, as well as suggestions on what to add or change.
It's a pretty expansive release. New features include the option to display something when the game is paused/frozen, a new module that allows you to highlight frags of a player just like in POV demos, and a new module that allows you to pull up a console and scoreboard while having the rest of the game HUD still visible. In addition, the killstreak and outline modules have been improved.
As always, feedback and suggestions is greatly appreciated. I would especially like feedback on the new features and improvements made in this release, as well as suggestions on what to add or change.
That local player thing is pretty cool. Would there be a way to get a cvar which would automagically set it to who you are spectating all the time? From the description it looks like you have to press a button every time you switch to a player to set them as the local player.
AndKennethThat local player thing is pretty cool. Would there be a way to get a cvar which would automagically set it to who you are spectating all the time? From the description it looks like you have to press a button every time you switch to a player to set them as the local player.
[url=https://github.com/fwdcp/StatusSpec/commit/8c76b22b5a7a96219a4212ccadf71adb8fb17966]Consider it done for the next release.[/url]
StatusSpec 0.16.0 is now available.
This release contains minor (albeit breaking) changes for the MedigunInfo.res file. If you are using medigun info, you need to add a certain variable to each medigun meter. This GitHub diff shows the change more clearly than I can explain it. If you're still confused, I'll try to explain it as best I can.
The local player changes from yesterday are included. In addition, with suggestions from the one and only BLoodSire, I've added the feature to only display the item icon for the active weapon for the loadout icons module, and also the feature to change how the charge meter is displayed depending on the medigun (for example, having light blue for the regular medigun and hot pink for kritz).
As always, I need your feedback and suggestions to make this plugin even more versatile.
This release contains minor (albeit breaking) changes for the MedigunInfo.res file. If you are using medigun info, you need to add a certain variable to each medigun meter. [url=https://github.com/fwdcp/StatusSpec/commit/49157e9e2c7cc68b607d83007885b9e027e62ea6]This GitHub diff[/url] shows the change more clearly than I can explain it. If you're still confused, I'll try to explain it as best I can.
The local player changes from yesterday are included. In addition, with suggestions from the one and only BLoodSire, I've added the feature to only display the item icon for the active weapon for the loadout icons module, and also the feature to change how the charge meter is displayed depending on the medigun (for example, having light blue for the regular medigun and hot pink for kritz).
As always, I need your feedback and suggestions to make this plugin even more versatile.
StatusSpec 0.17.0 is now available.
The only major change in this release was adding support for automatically retrieving player aliases from the ETF2L API. Unfortunately, no other leagues can be supported because they do not have an API, but if they do release one with the required features, I would be more than happy to add in support.
The only major change in this release was adding support for automatically retrieving player aliases from the ETF2L API. Unfortunately, no other leagues can be supported because they do not have an API, but if they do release one with the required features, I would be more than happy to add in support.