Team Fortress 2 - erics
An update to Team Fortress 2 has been released. The update will be applied automatically when you restart Team Fortress 2. The major changes include:

  • Added the Summer 2021 Cosmetic Case
    • Contains 18 new community-contributed items
    • Adds 6 new community-created Unusual effects
  • Numerous security and stability improvements
  • Added a cooldown before a player can create a vote when they join a match already in-progress
    • sv_vote_late_join_time controls the grace period after the match starts before the cooldown is applied: default 90 secs
    • sv_vote_late_join_cooldown controls the length of the cooldown: default 5 min
  • Kick votes will end early and automatically pass if the vote target leaves the match during the vote
  • Added a ConVar to control players changing their name during a match
    • tf_allow_player_name_change: default is 1
    • Matchmaking servers will set this to 0
  • Updated the player list in the vote-kick dialog to show the time each player has been connected to the server
  • Removed the disconnect reason from the message when players leave the server
  • Updated the Mann vs. Machine "inspect" command to only work for players in your party or in your Friends list
  • Moved materials for community particle effects into the Effects/workshop sub-folder to distinguish them from Valve materials
  • Updated/Added some tournament medals
  • Updated the localization files
  • Updated cp_snakewater_final1
    • Fixed clipping throughout map
    • Fixed explosion splash being caught by objects throughout map
    • Made movement smoother throughout map
    • Reworked some problematic areas like the kitchen
    • Minor visual enhancements throughout the map
  • Updated cp_process
    • Fixed incorrect skin for the Red radio tower
Jun 15, 2021
Left 4 Dead 2 - Kerry
An update has been released for Left 4 Dead 2.

Bug Fixes
- Fixed file path for CricketBat.Miss sound event.
- Fixed muzzle flash occurring if you melee immediately after shooting.
- Fixed a crash on zero-byte VPKs.
- Fixed a startup crash on Linux.
- Fixed some memory leaks in VGUI.
- Fixed text corruption when using emojis in player names or text.
- Fixed some text corruption related to UTF-8 conversion in some instances on Linux.
- Fixed some out-of-bounds reads with weapon indices.
- Fixed fps_max being reset when loading a new map.
- Fixed custom maps with no lights disabling lighting for the rest of the play session (mat_fullbright).
- Fixed addon info being truncated much earlier on Linux.
- Fixed selecting certain audio/video options via navigation via arrow keys or controller.
- Fixed Widowed (No Border) option on Linux.
- Fixed a crash if a script call to QueueSpeak() didn't pass any modifiers.
- Fixed a possible crash if a script-defined forbidden target is destroyed.
- Rebuilt gas can physics to fix an issue with falling through the world.
- Fixed an issue in Rocket Dude with a player getting moved to spectator after a level transition.
- Fixed two malformed player clips in c4m1 and c4m5.
- Fixed some incorrect place names in Cold Stream nav.
- Restored some missing commentary entities in c5m5.

Features and Updates
- Added a Vulkan render backend (currently accessible through the -vulkan command line parameter).
- Better support for ultrawide monitors in the UI and game (requires Vulkan if using Linux)
- Marked the game as DPI-aware for high DPI displays.
- Improved default settings for window size and type.
- Improved full-screen quad rendering performance.
- Made captions anti-aliased
- Marked fps_max and viewmodel_fov as FCVAR_RELEASE.
- Cvars 'survivor_incap_health' and 'survivor_incap_decay_rate' can now be changed after startup.
- New cvar 'charger_pz_claw_damage'; functions the same as equivalent melee cvars for other specials.
- New archived cvar "addons_hide_conflict_dialog" suppresses the warning dialog in the addons screen. Any conflicting addons will still be highlighted in red with conflicts printed to the console.
- Added an FOV slider to the Multiplayer settings.
- Added a +bench_demo [name] <stats output>  command line parameter which will run a demo, and quit after it is finished.
- Added a -bench_settings [name] command line parameter to load a cfg/video_bench_{name}.txt file containing settings to load. There are a set of defaults provided, very_high_4k, very_high, high, medium and low.
- Lobbies that connect via a forced server IP are not considered for "Official Only" Quick Match searches.
- Overhauled UI usability on controller
• Added controller button icons across the UI.
• Made confirmation prompts accessible on controller.
• Now able to select mutations on controller.
• Now able to fully manage lobbys on controller.
• Now able to manage addons on controller.
• Now able to browse achievement details on controller.
• The game instructor (in-game hints) now shows controller buttons and hints.
• Added a flashlight binding to the default controller config.
• Made the intro video skippable by any button on a Steam Controller.

New Scripting Hooks

Global
FindRescueAreaTrigger() - Returns the trigger entity for the rescue area
GetDifficulty() - Returns the current difficulty as a numeric value
GetDifficultyString() - Returns the current difficulty as a string
HasConfigurableDifficultySetting() - Returns true if the mode supports more than a single difficulty
IsMissionFinalMap()
GetScavengeItemsGoal()
GetScavengeItemsRemaining()
SetScavengeItemsGoal()
SetScavengeItemsRemaining()

TheDirector
AreAllSurvivorsInFinaleArea()
AreTeamsFlipped()
GetMapNumber()
IsAnySurvivorBypassingTank()
IsAnySurvivorInExitCheckpoint()
IsAnySurvivorInStartArea()
IsFinale()
IsFinaleEscapeInProgress()
IsFinaleVehicleReady()
IsFirstMapInScenario()
IsPlayingIntro()
IsSessionStartMap()
GetTotalElapsedMissionTime()
IsFinaleWon()
GetMissionWipes()
IsLocationFoggedToSurvivors( vLocation )
GetTimeSinceSpecialZombieKilled( iClass )
GetClosestActivePipeBomb( origin )
RegisterForbiddenTarget( entity ) - Bots avoid damaging forbidden targets.
UnregisterForbiddenTarget( entity )

CTerrorPlayer
IsIT()
IsAdrenalineActive()
IsGettingUp()
IsImmobilized()
IsInCombat()
IsOnThirdStrike()
IsFiringWeapon()
IsStaggering()
IsDominatedBySpecialInfected()
GetSpecialInfectedDominatingMe()
GetAliveDuration() - Returns the time the character has been alive (only valid when alive).
HasEverBeenInjured( team ) - Returns true if the character has ever been injured by a member of the given team.

CBaseEntity
GetCenter() - Get world space center of object - absolute coordinates
TakeDamageEx( hInflictor, hAttacker, hWeapon, vecDamageForce, vecDamagePosition, flDamage, nDamageType )

CBaseCombatCharacter
GetLastKnownArea() - Return the last nav area occupied - NULL if unknown.

NavMesh
GetNavAreaByID( areaID )
GetLadderByID( ladderID )
GetNavArea( origin, flBeneath ) - given a position in the world, return the nav area that is closest to or below that height.
GetNearestNavArea( origin, maxDist, checkLOS, checkGround ) - given a position in the world, return the nearest nav area that is closest to or below that height.
GetNavAreasInRadius( origin, radius, table ) - fills a passed in table of nav areas within the radius.
FindNavAreaAlongRay( startpos, endpos, ignoreAreaID )
GetNavAreaCount() - return total number of nav areas.
GetAllAreas( table ) - fills a passed in table of all nav areas.
GetObstructingEntities( table ) - fills a passed in table of all obstructing entities.
GetAreasWithAttributes( bits, table ) - fills a passed in table of all nav areas that have the specified attribute bits.
NavAreaBuildPath( area, area, goalPos, flMaxPathLength, teamID, ignoreNavBlockers ) - returns true if a path exists.
NavAreaTravelDistance( area, area, flMaxPathLength ) - compute distance between two areas. Return -1 if can't reach 'endArea' from 'startArea'.
GetLadderCount()
GetAllLadders( table ) - fills a passed in table of all nav ladders.
FindLadderAlongRay( startpos, endpos, ignoreArea )
GetNavAreasFromBuildPath( table ) - Fills table with areas from a path. Returns whether a path was found.
GetNavAreasOverlappingEntityExtent( entity, table ) - fills passed in table with areas overlapping entity's extent.
RegisterAvoidanceObstacle( entity )
UnregisterAvoidanceObstacle( entity )

CNavLadder
GetLadderEntity()
GetID()
ConnectTo( area, dir )
Disconnect( area )
IsConnected( area, dir )
GetBottomOrigin()
GetTopOrigin()
GetBottomArea()
GetTopArea()
GetLength()
GetWidth()
GetDir() - Return the direction the ladder faces (ie: surface normal of climbable side).
GetPosAtHeight() - Return 2D coordinate of the ladder at a given height.
IsInUse() - Return true if someone is on this ladder (other than 'ignore').
IsUsableByTeam( team )

TerrorNavArea
GetID()
HasAttributes() - Nav area attribute bits
GetAttributes()
SetAttributes(
RemoveAttributes()
HasSpawnAttributes( attributes ) - Spawn attribute bits.
GetSpawnAttributes()
SetSpawnAttributes( attributes )
RemoveSpawnAttributes( attributes )
GetPlaceName()
SetPlaceName( name )

GetCenter()
GetCorner( cornerIndex ) - Get a corner position.
FindRandomSpot() - Get a random origin within the area extents.
GetSizeX() - Return the area size along the X axis.
GetSizeY() - Return the area size along the Y axis.
GetZ( pos ) - Return Z of area at (x,y) of 'pos'.
GetDistanceSquaredToPoint( pos ) - Return shortest distance between point and this area.
IsRoughlySquare() - Return true if this area is approximately square.
IsFlat() - Return true if this area is approximately flat.
IsDegenerate() - Return true if this area is badly formed.
IsVisible( point ) - Return true if area is visible from the given point.
IsUnderwater()
IsCoplanar( area ) - Return true if this area and given area are approximately co-planar.
IsEdge( dir ) - Return true if there are no bi-directional links on the given side.
Contains( area ) - Return true if other area is on or above this area, but no others.
ContainsOrigin( point ) - Return true if given point is on or above this area, but no others.
IsOverlapping( area ) - Return true if 'area' overlaps our 2D extents.
IsOverlappingOrigin( pos, tolerance ) - Return true if 'pos' is within 2D extents of area.

GetAdjacentCount( dir ) - Get the number of adjacent areas in the given direction.
GetAdjacentAreas( dir, table ) - Fills a passed in table with all adjacent areas in the given direction.
GetAdjacentArea( dir, n ) - Return the n'th adjacent area in the given direction.
GetRandomAdjacentArea( dir ) - Return a random adjacent area in the given direction.
IsConnected( area, dir )
ConnectTo( area, dir ) - Connect this area to given area in given direction.
Disconnect( area ) - Disconnect this area from given area.
GetIncomingConnections( dir, table ) - Fills a passed in table with areas connected TO this area by a ONE-WAY link (ie: we have no connection back to them).
AddIncomingConnection( area, dir ) - Add areas that connect TO this area by a ONE-WAY link.
RemoveOrthogonalConnections() - Removes all connections in directions to left and right of specified direction.
ComputeDirection( point ) - Return direction from this area to the given point.

GetParent() - Returns the area just prior to this one in the search path.
GetParentHow() - Returns how we get from parent to us.
GetLadders( table ) - Fills a passed in table of ladders in direction.
ConnectToLadder( ladder )
DisconnectLadder( ladder )
IsConnectedLadder( ladder, dir )
GetElevator() - Returns the elevator if in an elevator's path.
GetElevatorAreas( table ) - Fills a passed in table with a collection of areas reachable via elevator from this area.
GetDoor() - Returns the door entity above the area.

IsDamaging() - Return true if continuous damage (eg: fire) is in this area.
MarkAsDamaging( duration ) - Mark this area is damaging for the next 'duration' seconds.
IsBlocked( team ) - Return true if team is blocked in this area.
MarkAsBlocked( team ) - Mark this area as blocked for a team.
UnblockArea()
IsBottleneck()
IsCleared( player ) - Returns true if this area has been cleared for the player.
MarkAreaCleared( player ) - Mark this area as cleared for the player
MarkAreaNotCleared()
GetTimeSinceCleared()
IsValidForWanderingPopulation()
IsSpawningAllowed() - Returns true if spawning is allowed in this area.
IsPotentiallyVisibleToTeam( team ) - Return true if any portion of this area is visible to anyone on the given team.
IsCompletelyVisibleToTeam( team ) - Return true if given area is completely visible from somewhere in this area by someone on the team.
HasAvoidanceObstacle( maxheight ) - Returns true if there's a large, immobile object obstructing this area.
MarkObstacleToAvoid( height ) - Marks the obstructed status of the nav area.
GetAvoidanceObstacleHeight() - Returns the maximum height of the obstruction above the ground.
GetPlayerCount( team ) - Return number of players of given team currently within this area (team of zero means any/all).
DebugDrawFilled() - Draw area as a filled rectangle of the given color.

Defines
"LADDER_UP"
"LADDER_DOWN"
"NAV_NORTH"
"NAV_EAST"
"NAV_WEST"
"NAV_SOUTH"
Team Fortress 2 - erics


TFConnect is back with another action-packed, content-filled charity livestream event - but this time, instead of taking place during the harsh, unforgiving months of winter, they’re coming at you during the scorching, equally as unforgiving months of summer!

The Midsummer Mashup is a weekend-long charity fundraising livestream taking place during the weekend of June 26-27th, starting at 6pm BST / 1pm EDT, and is focused around the Team Fortress 2 community in support of Stop AAPI Hate, an organization that responds to incidents of hate and discrimination against Asian Americans and Pacific Islanders.

They're going to have your favorite content creators playing PropHunt and Freak Fortress, as well as interviews with Item-makers, mappers, and developers! There's something for everyone to watch, and even play, in the Midsummer Mashup!

Donate towards Stop AAPI Hate here!

Catch the action live on KritzKast's Twitch channel!


Team Fortress 2 - erics


Following the North American Community Clash, EssentialsTF and DreamHack are now hosting an online TF2 tournament in Europe over two weekends beginning on June 12th! Players will be competing for a $2,400 prize pool, and the tournament will feature an open bracket so all teams can get their chance at glory against the best of the best! There will also be a smaller tournament, featuring a $90 prize pool, for players who are new to competitive TF2.

The main event begins with the group stages on June 12-13th beginning at 17:00 CEST, followed by the playoffs on June 19-20th beginning at 15:00 CEST.

EssentialsTF is also partnering with TFNew in providing a Newbie Team Drive for the upcoming European DreamHack Newcomer Clash. This is for players who are new to competitive and want the chance to get on a team for the event with a mentor who will help teach them the basics of Competitive 6v6.

Signups for both the main and newcomer tournaments will end June 6th at 01:00 CEST, so be sure to get registered soon! You can watch the tournament live on the EssentialsTF Twitch channel, and you can get more information about the event, such as the full schedule, on https://clash.tf.
Team Fortress 2 - erics


Community Clash is coming to North America! EssentialsTF is hosting an online TF2 tournament on the 8th & 9th of May, with a prize pool of $2,400 up for grabs! Partnering with DreamHack, the tournament will feature an open bracket from which teams can progress to compete against the best teams in the world for their chance at glory.

If you're new to competitive or don't have a lot of experience, try their Newcomer Clash! The smaller newcomer tournament is solely for new players to try competitive for their chance at a $90 prize pool.

The event begins on Saturday, May 8th, at 13:00 EDT, and will feature the group stages. Sunday, May 9th, will include the elimination playoffs starting at 13:30 EDT, leading to the grand finals where a champion will be crowned!

Signups for both the main and newcomer tournaments will end on Thursday, May 6th, at 18:00 EDT. You can watch the tournament live on the EssentialsTF Twitch channel, and you can get more information about the event, such as the full schedule, on https://clash.tf.
Team Fortress 2 - erics

(Image credit: Tom Yamaza, kevin supermarket, and agrastiOs)

Suns out, guns out! Put on your flip-flops and fire up the grill, the Fortress Faceoffs group is here with an upcoming community event to spice up the summer season!*
*Their lawyers require them to state: This message is not applicable to mercenaries in the southern hemisphere.

The Fat Scout Shootout event is a 6v6 tournament featuring the Heavy and his wide array of firearms, food scraps, and fists! Gather your most competent comrades for this bolshevik brawl against other competing teams in order to reign supreme! Visit a variety of official and workshop maps chosen with close-quartered combat in mind, where players of any skill level may face off! Watch all the action live on the Fortress Faceoffs Twitch channel!

Make sure to sign up by May 24th to reserve a spot in the tournament bracket! Read up about the rules of the event in finer detail on the Fortress Faceoffs Discord server! The event begins June 19th, so put on your gloves and run urgently!*
*Their lawyers also requested that they apologize for this pun.
Apr 20, 2021
Team Fortress 2 - EricS

(Image credit: Frazzanator and Raos)

The Grand Finals are already on their way for RGL.gg’s Spring 2021 events. Teams have fought hard all season to earn their spot in the playoffs brackets, and only two teams now remain in the 6v6 format. Finalists Froyotech and GlobalClan Ice will be facing off for $12,000 on April 22nd at 11 PM EDT! Watch the match live on RGL.gg’s official Twitch channel!

Are you eager to know more about the competitive scene? Don't have enough time to catch up on all the news through multiple sources? RGL.gg’s video team has recently launched a new series called The Dispatch on the league’s YouTube channel. Tune in to the weekly show to learn more about league standings, community news from all across Team Fortress 2, and much more.

The Spring 2021 events might be coming to an end, but don’t worry! If you're looking to join the fun, it will resume in May for off-season cups, which are one-time events hosted by the league for testing purposes and to promote new content. Keep an eye out for an announcement on The Dispatch or through RGL.gg’s website.
Team Fortress 2 - erics

(Image credit: Manndarinchik and cheddZy)

What’s better than shooting mercenaries in the face? Cream donuts? No! Insane riches? You’ve gotta be kidding me. A feeling better than killing mercenaries in cold blood is killing ROBOTS in UBER-filled revenge!

Introducing Operation: Digital Directive, a community-made Mann vs. Machine campaign created by Creators.TF and Potato’s Custom MvM Servers. With 30 new missions across 22 maps, plus some brand new gameplay additions, this is gonna be one hell of a campaign across the world!

What are you waiting for? Get into the briefing room and check out the Day 1 page!

Important links:



Team Fortress 2 - erics

(Image credit: Gigazelle)

Spring is on its way and you know what that means: Spring cleaning, disposing of your winter ramen collection, and warmer weather flooding your basement with melted snow. Well, throw that to-do list into your overflowing dumpsters because there’s a new April Fools Mann vs Machine tour in town that’s served like heated leftovers fresh out of the microwave!

Operation Starched Silliness is an April Fools MvM charity tour brought to you by Tindall Berry that pits the Mercs against a meme-fueled robotic rampage. Complete all the waves in this intermediate-difficulty community tour and earn an in-game medal! Event servers are available worldwide in North America, South America, Europe, Asia, and Oceania.

In addition to waging a war against the memes, there is also a charity fundraising campaign for Doctors Without Borders to respond to the COVID-19 pandemic. Donations of $5 USD or above will earn an in-game donor medal! Item donations will also be accepted. Click here for instructions on how to donate.

Have fun, but don't delay, or else the meme machines will conquer the world by April 18th, 2021!

Important links:
Team Fortress 2 - erics

(Image credit: Art - moom, Lettering - cheddZy)

Phoenix Red are pleased to present GGtoor Locked and Loaded 2! The prize pool has been increased to $1000 and will be split between the top 3 teams + 1 player taking $100 for the top play of the event!

Sign up your team before March 12th!
Watch the cup live on KritzKast's Twitch channel March 13th - 14th,
or catch the edited matches later on KritzKast's YouTube channel.
...