Upvote Upvoted 114 Downvote Downvoted
1 2 3
CastingEssentials Spectator Plugin
posted in Projects
1
#1
0 Frags +

Hey TF.TV!

A few months ago, I was asked by the people over at Essentials.tf to look into fixing the StatusSpec casting plugin for the DreamHack Winter tournament. CastingEssentials is what I ended up with. In addition to stability improvements and bug fixes, here’s a list of major features (there are more unlisted ones!):

  • Camera Auto-switching: Originally present in SS, automatically switches away from killed players to their killer. Improved in CE to only switch to killer automatically if you don’t manually switch away from a player during the delay.
  • Camera Smoothing: Originally present in SS, allows smoothing between players when switching cameras. Rewritten with a nicer smoothing algorithm, as well as a LOS check to prevent flying through walls.
  • Custom Static Map Cameras: Supports placing named cameras around the map, which can be switched to by ce_autocamera_goto. This feature will be extended in the future to support tracking rollouts automatically.
  • Thirdperson Cameras Attached To Player Bones: Does what it says on the tin. Supports position offsets, so you can do over the shoulder cameras and stuff, and attach them to spine or head bones.
  • ce_cameratools_spec_class <team> <class> [index]: Allows spectating certain classes on certain teams through a single console command. Useful if you just want to have a “spec the sniper” bind or something.
  • ce_cameratools_spec_steamid: Allows spectating a specific steam ID. Word from vJill is that this will be integrated into the game’s spec_player command soon however, at which point it will be removed from CE.
  • Console Filter: Originally present in SS, now stable with mat_queue_mode 1/2. Begone, unknown particle system!
  • FOV Override: Inherited from SS.
  • Freeze Info: Displays a message and a timer indicating how long the game has been paused. Inherited from SS.
  • Forced Killstreaks: Shows killstreaks for every weapon for every player. Inherited from SS.
  • Local Player: Highlights the currently spectated player in the killfeed, as if you were actually them.
  • Map Configs: Allows having map-specific configs operate in STV, for example configs named cp_granary.cfg will be executed automatically when you switch to that map.
  • Medigun Info: Shows charge levels and medigun type for medics on a separate panel on the hud. Inherited from SS.
  • Player Aliases: Overrides player names. Inherited from SS.
  • Projectile Outlines: Draws outlines around projectiles similar to how outlines are present around players. Originally from SS, rewritten to be much more stable and less likely to break when Valve changes things.
  • Team Name Overrides: Allows overriding team names, up to 32 characters supported.
  • HUD Antifreeze: Prevents the spectator GUI from freezing after pauses.

Full descriptions of these features and others are available on the (under construction!) CastingEssentials Github wiki.

Download here

I'm fully open to feature suggestions anyone has ideas.

Hey TF.TV!

A few months ago, I was asked by the people over at Essentials.tf to look into fixing the [url=http://www.teamfortress.tv/17560/statusspec]StatusSpec[/url] casting plugin for the DreamHack Winter tournament. CastingEssentials is what I ended up with. In addition to stability improvements and bug fixes, here’s a list of major features (there are more unlisted ones!):

[list]
[*][b]Camera Auto-switching[/b]: Originally present in SS, automatically switches away from killed players to their killer. Improved in CE to only switch to killer automatically if you don’t manually switch away from a player during the delay.
[*][b]Camera Smoothing[/b]: Originally present in SS, allows smoothing between players when switching cameras. Rewritten with a nicer smoothing algorithm, as well as a LOS check to prevent flying through walls.
[*][b]Custom Static Map Cameras[/b]: Supports placing named cameras around the map, which can be switched to by ce_autocamera_goto. This feature will be extended in the future to support tracking rollouts automatically.
[*][b]Thirdperson Cameras Attached To Player Bones[/b]: Does what it says on the tin. Supports position offsets, so you can do over the shoulder cameras and stuff, and attach them to spine or head bones.
[*][b]ce_cameratools_spec_class[/b] <team> <class> [index]: Allows spectating certain classes on certain teams through a single console command. Useful if you just want to have a “spec the sniper” bind or something.
[*][b]ce_cameratools_spec_steamid[/b]: Allows spectating a specific steam ID. Word from vJill is that this will be integrated into the game’s spec_player command soon however, at which point it will be removed from CE.
[*][b]Console Filter[/b]: Originally present in SS, now stable with mat_queue_mode 1/2. Begone, unknown particle system!
[*][b]FOV Override[/b]: Inherited from SS.
[*][b]Freeze Info[/b]: Displays a message and a timer indicating how long the game has been paused. Inherited from SS.
[*][b]Forced Killstreaks[/b]: Shows killstreaks for every weapon for every player. Inherited from SS.
[*][b]Local Player[/b]: Highlights the currently spectated player in the killfeed, as if you were actually them.
[*][b]Map Configs[/b]: Allows having map-specific configs operate in STV, for example configs named cp_granary.cfg will be executed automatically when you switch to that map.
[*][b]Medigun Info[/b]: Shows charge levels and medigun type for medics on a separate panel on the hud. Inherited from SS.
[*][b]Player Aliases[/b]: Overrides player names. Inherited from SS.
[*][b]Projectile Outlines[/b]: Draws outlines around projectiles similar to how outlines are present around players. Originally from SS, rewritten to be much more stable and less likely to break when Valve changes things.
[*][b]Team Name Overrides[/b]: Allows overriding team names, up to 32 characters supported.
[*][b]HUD Antifreeze[/b]: Prevents the spectator GUI from freezing after pauses.
[/list]

Full descriptions of these features and others are available on the (under construction!) [url=https://github.com/PazerOP/CastingEssentials/wiki]CastingEssentials Github wiki[/url].

[url=https://github.com/PazerOP/CastingEssentials/releases/latest]Download here[/url]

I'm fully open to feature suggestions anyone has ideas.
2
#2
0 Frags +

If it's a fixed status spec, why not just call it statusspec

If it's a fixed status spec, why not just call it statusspec
3
#3
28 Frags +

Props to you for taking the time to fix it. If you haven't already though you might want to just talk with tsc and see if it can just be integrated into status spec. I guess if he doesn't want to maintain it anymore and you do this makes sense too.

Props to you for taking the time to fix it. If you haven't already though you might want to just talk with tsc and see if it can just be integrated into status spec. I guess if he doesn't want to maintain it anymore and you do this makes sense too.
4
#4
12 Frags +
pazerI'm fully open to feature suggestions anyone has ideas.

Maybe damage numbers, if it's at all possible

Other than that, great job

[quote=pazer]I'm fully open to feature suggestions anyone has ideas.[/quote]

Maybe damage numbers, if it's at all possible

Other than that, great job
5
#5
18 Frags +
SentinelpazerI'm fully open to feature suggestions anyone has ideas.
Maybe damage numbers, if it's at all possible

Other than that, great job

Damage numbers would *sort* of be possible in STV, but STV doesn't transmit the player_hurt event onward to spectators, so the only way to figure out damage numbers would be to monitor player "damage dealt" counters (the same ones that show up on your scoreboard) and look at what players lost health that frame. The only problem with that is the damage dealt counters in the game count only "real" damage, so if you direct someone who has 2hp, damage numbers would only know that you did 2 damage to him. Might be more confusing than helpful, but it's still a possibility for the future.

bearodactylProps to you for taking the time to fix it. If you haven't already though you might want to just talk with tsc and see if it can just be integrated into status spec. I guess if he doesn't want to maintain it anymore and you do this makes sense too.

Thanks!

As far as I know, tsc had told essentials.tf that he was no longer interested in maintaining StatusSpec, and I've tried to contact him on Steam for almost 2 months at this point, so I don't really see that happening.

[quote=Sentinel][quote=pazer]I'm fully open to feature suggestions anyone has ideas.[/quote]

Maybe damage numbers, if it's at all possible

Other than that, great job[/quote]

Damage numbers would *sort* of be possible in STV, but STV doesn't transmit the player_hurt event onward to spectators, so the only way to figure out damage numbers would be to monitor player "damage dealt" counters (the same ones that show up on your scoreboard) and look at what players lost health that frame. The only problem with that is the damage dealt counters in the game count only "real" damage, so if you direct someone who has 2hp, damage numbers would only know that you did 2 damage to him. Might be more confusing than helpful, but it's still a possibility for the future.

[quote=bearodactyl]Props to you for taking the time to fix it. If you haven't already though you might want to just talk with tsc and see if it can just be integrated into status spec. I guess if he doesn't want to maintain it anymore and you do this makes sense too.[/quote]

Thanks!

As far as I know, tsc had told essentials.tf that he was no longer interested in maintaining StatusSpec, and I've tried to contact him on Steam for almost 2 months at this point, so I don't really see that happening.
6
#6
1 Frags +

I've been waiting for someone like you to fix it, really good job.

I've been waiting for someone like you to fix it, really good job.
7
#7
9 Frags +
pazerAs far as I know, tsc had told essentials.tf that he was no longer interested in maintaining StatusSpec, and I've tried to contact him on Steam for almost 2 months at this point, so I don't really see that happening.

Try twitter

[quote=pazer]As far as I know, tsc had told essentials.tf that he was no longer interested in maintaining StatusSpec, and I've tried to contact him on Steam for almost 2 months at this point, so I don't really see that happening.[/quote]
Try twitter
8
#8
huds.tf
-9 Frags +
GentlemanJonpazerAs far as I know, tsc had told essentials.tf that he was no longer interested in maintaining StatusSpec, and I've tried to contact him on Steam for almost 2 months at this point, so I don't really see that happening.Try twitter

Try logging into Steam

[quote=GentlemanJon][quote=pazer]As far as I know, tsc had told essentials.tf that he was no longer interested in maintaining StatusSpec, and I've tried to contact him on Steam for almost 2 months at this point, so I don't really see that happening.[/quote]
Try twitter[/quote]
Try logging into Steam
9
#9
12 Frags +
omniTry logging into Steam

Why would me being logged into steam make a difference?

[quote=omni]Try logging into Steam[/quote]
Why would me being logged into steam make a difference?
10
#10
-5 Frags +

how do you install this?

how do you install this?
11
#11
3 Frags +
mitchcliff123how do you install this?

https://github.com/PazerOP/CastingEssentials/releases
extract to =>
E:\steamapps\common\Team Fortress 2\tf\addons

E:\steamapps\common\Team Fortress 2\tf\addons\CastingEssentials.dll
E:\steamapps\common\Team Fortress 2\tf\addons\CastingEssentials.vdf

[quote=mitchcliff123]how do you install this?[/quote]
https://github.com/PazerOP/CastingEssentials/releases
extract to =>
E:\steamapps\common\Team Fortress 2\tf\addons

E:\steamapps\common\Team Fortress 2\tf\addons\CastingEssentials.dll
E:\steamapps\common\Team Fortress 2\tf\addons\CastingEssentials.vdf
12
#12
-11 Frags +
PootisPootisPootisPootismitchcliff123how do you install this?https://github.com/PazerOP/CastingEssentials/releases
extract to =>
E:\steamapps\common\Team Fortress 2\tf\addons

E:\steamapps\common\Team Fortress 2\tf\addons\CastingEssentials.dll
E:\steamapps\common\Team Fortress 2\tf\addons\CastingEssentials.vdf

theres no vdf or dll file
*edit, for peeps who want to download it, you have to download the 7z one in the releases

[quote=PootisPootisPootisPootis][quote=mitchcliff123]how do you install this?[/quote]
https://github.com/PazerOP/CastingEssentials/releases
extract to =>
E:\steamapps\common\Team Fortress 2\tf\addons

E:\steamapps\common\Team Fortress 2\tf\addons\CastingEssentials.dll
E:\steamapps\common\Team Fortress 2\tf\addons\CastingEssentials.vdf[/quote]
theres no vdf or dll file
*edit, for peeps who want to download it, you have to download the 7z one in the releases
13
#13
6 Frags +
mitchcliff123PootisPootisPootisPootismitchcliff123how do you install this?https://github.com/PazerOP/CastingEssentials/releases
extract to =>
E:\steamapps\common\Team Fortress 2\tf\addons

E:\steamapps\common\Team Fortress 2\tf\addons\CastingEssentials.dll
E:\steamapps\common\Team Fortress 2\tf\addons\CastingEssentials.vdf
theres no vdf or dll file

then don't download the source code but the plugin itself

[quote=mitchcliff123][quote=PootisPootisPootisPootis][quote=mitchcliff123]how do you install this?[/quote]
https://github.com/PazerOP/CastingEssentials/releases
extract to =>
E:\steamapps\common\Team Fortress 2\tf\addons

E:\steamapps\common\Team Fortress 2\tf\addons\CastingEssentials.dll
E:\steamapps\common\Team Fortress 2\tf\addons\CastingEssentials.vdf[/quote]
theres no vdf or dll file[/quote]
then don't download the source code but the plugin itself
14
#14
11 Frags +
mitchcliff123PootisPootisPootisPootismitchcliff123how do you install this?https://github.com/PazerOP/CastingEssentials/releases
extract to =>
E:\steamapps\common\Team Fortress 2\tf\addons

E:\steamapps\common\Team Fortress 2\tf\addons\CastingEssentials.dll
E:\steamapps\common\Team Fortress 2\tf\addons\CastingEssentials.vdf
theres no vdf or dll file

https://www.google.com/search?q=how+to+extract+7z+files

[quote=mitchcliff123][quote=PootisPootisPootisPootis][quote=mitchcliff123]how do you install this?[/quote]
https://github.com/PazerOP/CastingEssentials/releases
extract to =>
E:\steamapps\common\Team Fortress 2\tf\addons

E:\steamapps\common\Team Fortress 2\tf\addons\CastingEssentials.dll
E:\steamapps\common\Team Fortress 2\tf\addons\CastingEssentials.vdf[/quote]
theres no vdf or dll file[/quote]
https://www.google.com/search?q=how+to+extract+7z+files
15
#15
7 Frags +

Do we have your permission to use this for Rewind? We're building our own overlay but would love to have this!

Do we have your permission to use this for Rewind? We're building our own overlay but would love to have this!
16
#16
5 Frags +
samifaceDo we have your permission to use this for Rewind? We're building our own overlay but would love to have this!

The license on github says that you can use it

[quote=samiface]Do we have your permission to use this for Rewind? We're building our own overlay but would love to have this![/quote]
The license on github says that you can use it
17
#17
3 Frags +

I absolutely loved the camera smoothing when switching player perspectives, I personally found it a big improvement in my viewing experience :) Thanks for all the work you put into developing this!

I absolutely loved the camera smoothing when switching player perspectives, I personally found it a big improvement in my viewing experience :) Thanks for all the work you put into developing this!
18
#18
6 Frags +

One thing that would always be nice if it's somehow possible would be to incorporate banners into the hud.

One thing that would always be nice if it's somehow possible would be to incorporate banners into the hud.
19
#19
13 Frags +
samifaceDo we have your permission to use this for Rewind? We're building our own overlay but would love to have this!

Yet another thing I need to add to the wiki, eventually. You don't need my permission, you can do whatever you like with the plugin.

RhettroOne thing that would always be nice if it's somehow possible would be to incorporate banners into the hud.

This is a planned feature.

[quote=samiface]Do we have your permission to use this for Rewind? We're building our own overlay but would love to have this![/quote]
Yet another thing I need to add to the wiki, eventually. You don't need my permission, you can do whatever you like with the plugin.

[quote=Rhettro]One thing that would always be nice if it's somehow possible would be to incorporate banners into the hud.[/quote]

This is a planned feature.
20
#20
eXtelevision
6 Frags +

Awesome. Thanks!

Awesome. Thanks!
21
#21
9 Frags +

EDIT: ok tf.tv doesn't like emojis

New release: r10 final

  • Roughly doubled performance of outlines throughout the game. With any luck, this will be implemented in the base game soon.
  • Enabled ce_projectileoutlines_mode (default 1) which allows you to have projectile outlines always, only when occluded, or only when visible.

You should remove old versions of CastingEssentials from /tf/addons and extract new versions to /tf/custom/CastingEssentials

Also, I'll include a .zip with binaries from now on for people who don't want to download 7-zip.

https://github.com/PazerOP/CastingEssentials/releases/latest

EDIT: ok tf.tv doesn't like emojis

[b]New release: r10 final[/b]
[list]
[*] Roughly doubled performance of outlines throughout the game. With any luck, this will be implemented in the base game soon.
[*] Enabled ce_projectileoutlines_mode (default 1) which allows you to have projectile outlines always, only when occluded, or only when visible.
[/list]

[b]You should remove old versions of CastingEssentials from /tf/addons and extract new versions to /tf/custom/CastingEssentials[/b]

Also, I'll include a .zip with binaries from now on for people who don't want to download 7-zip.

https://github.com/PazerOP/CastingEssentials/releases/latest
22
#22
1 Frags +

Hey noob question here. It seems amazing but how exactly do I get this to work?

Hey noob question here. It seems amazing but how exactly do I get this to work?
23
#23
2 Frags +

When can we expect banners to work?

When can we expect banners to work?
24
#24
5 Frags +

New release: r11 final

  • Fixed the world getting killstreaks.
  • Significant overall performance improvements.
  • Fixed outline colors being darker than they should be.
  • Fixed people turning into floating viewmodels during camera smooths.

You should remove old versions of CastingEssentials from /tf/addons and extract new versions to /tf/custom/CastingEssentials

https://github.com/PazerOP/CastingEssentials/releases/latest

[b]New release: r11 final[/b]

[list]
[*] Fixed the world getting killstreaks.
[*] Significant overall performance improvements.
[*] Fixed outline colors being darker than they should be.
[*] Fixed people turning into floating viewmodels during camera smooths.
[/list]

[b]You should remove old versions of CastingEssentials from /tf/addons and extract new versions to /tf/custom/CastingEssentials[/b]

https://github.com/PazerOP/CastingEssentials/releases/latest
25
#25
4 Frags +
RacsoHey noob question here. It seems amazing but how exactly do I get this to work?

Not a noob question, it's my fault the wiki isn't done. You need to extract one of the binary downloads from https://github.com/PazerOP/CastingEssentials/releases/latest to your /tf/custom folder. Then just launch your game with -insecure on the command line, and the plugin should be good to go. You'll see "Hello from CastingEssentials <version>" in your console. Partial info on features is available on the wiki, and all related cvars begin with ce_.

RhettroWhen can we expect banners to work?

Don't know, when do they need to be working by?

[quote=Racso]Hey noob question here. It seems amazing but how exactly do I get this to work?[/quote]
Not a noob question, it's my fault the wiki isn't done. You need to extract one of the binary downloads from https://github.com/PazerOP/CastingEssentials/releases/latest to your /tf/custom folder. Then just launch your game with -insecure on the command line, and the plugin should be good to go. You'll see "Hello from CastingEssentials <version>" in your console. Partial info on features is available on the wiki, and all related cvars begin with ce_.

[quote=Rhettro]When can we expect banners to work?[/quote]
Don't know, when do they need to be working by?
26
#26
whitelist.tf
2 Frags +

Amazing plugin, glad I've been able to help test and use it on DreamHack Winter!

Glad I was able to think of (pointless) features to add to this besides providing feedback during testing

Amazing plugin, glad I've been able to help test and use it on DreamHack Winter!

Glad I was able to think of (pointless) features to add to this besides providing feedback during testing
27
#27
2 Frags +
pazerNot a noob question, it's my fault the wiki isn't done. You need to extract one of the binary downloads from https://github.com/PazerOP/CastingEssentials/releases/latest to your /tf/custom folder. Then just launch your game with -insecure on the command line, and the plugin should be good to go. You'll see "Hello from CastingEssentials <version>" in your console. Partial info on features is available on the wiki, and all related cvars begin with ce_.

Sweet I'll try it out later. Thanks for the help! :D

[quote=pazer]
Not a noob question, it's my fault the wiki isn't done. You need to extract one of the binary downloads from https://github.com/PazerOP/CastingEssentials/releases/latest to your /tf/custom folder. Then just launch your game with -insecure on the command line, and the plugin should be good to go. You'll see "Hello from CastingEssentials <version>" in your console. Partial info on features is available on the wiki, and all related cvars begin with ce_. [/quote]


Sweet I'll try it out later. Thanks for the help! :D
28
#28
2 Frags +

Have the stability issues with the fov_override been adressed? Particularly, the currentlyplayer command causes the game to crash with the version of statusspec that I currently use.

Have the stability issues with the fov_override been adressed? Particularly, the currentlyplayer command causes the game to crash with the version of statusspec that I currently use.
29
#29
0 Frags +
BeaterHave the stability issues with the fov_override been adressed? Particularly, the currentlyplayer command causes the game to crash with the version of statusspec that I currently use.

I haven't had any crashes due to fov override, and I always have it set to 95 in the config I test with.

Not sure exactly what you mean by the currentlyplayer command. If you're talking about the localplayer feature (highlights kills/actions by the currently spectated player in the killfeed), that also works fine in this plugin.

[quote=Beater]Have the stability issues with the fov_override been adressed? Particularly, the currentlyplayer command causes the game to crash with the version of statusspec that I currently use.[/quote]

I haven't had any crashes due to fov override, and I always have it set to 95 in the config I test with.

Not sure exactly what you mean by the currentlyplayer command. If you're talking about the localplayer feature (highlights kills/actions by the currently spectated player in the killfeed), that also works fine in this plugin.
30
#30
8 Frags +

Based on what i saw on tftv during DHW it looked good, however there is one thing i dislike. Lets say a roamer kills the medic, and the killfeed turns white. When the caster moves on to the next player the roamer kill will still stay white in the killfeed. Is it possible to make the killfeed turn back to default colours when you swap who you spectate?

Based on what i saw on tftv during DHW it looked good, however there is one thing i dislike. Lets say a roamer kills the medic, and the killfeed turns white. When the caster moves on to the next player the roamer kill will still stay white in the killfeed. Is it possible to make the killfeed turn back to default colours when you swap who you spectate?
1 2 3
Please sign in through STEAM to post a comment.