Today's update adds an official First Person challenge, fixes sticking points in instant restart, improves readability on small screens, and fixes damage visual effects.
Aliens
Fixed zombies, headcrabs, and antlions not showing overlays for status effects.
Fixed AI and ragdolls for headcrabs.
Fixed a hitch when antlion workers used their ranged attack for the first time in a level.
Fixed antlion worker spit aim.
Antlions and headcrabs that deal poison damage now use the HL2 behavior for poison (heal over time).
Misc
Instant Restart: Now clears spawn selection.
Instant Restart: Now clears the VScript VM.
Instant Restart: Now clears loadout editing state for briefing.
Instant Restart: Now clears the mission restart countdown.
Instant Restart: Chat is no longer closed during restart.
Fixed a server crash when a marine with no associated player tried to move.
Computers and wire panels no longer show the mouse cursor if a controller is being used to access them.
Deselecting a marine in briefing now properly clears the tooltip.
If rd_chatwipe is 0, chat history is no longer temporarily hidden when the mission starts.
Added an official First Person challenge.
Fixed first segment of rd_boss_bar being misaligned.
View punch, poison blur, screen shake, and HUD damage indicators now work while spectating.
The main HUD font no longer scales below 20px (960px tall resolution). At 720p, this is 33% larger, and at 800p (Steam Deck resolution) this is 20% larger.
Mapping
Changed how info_marine_hint and info_node_marine_hint look in Hammer to avoid confusion with other hint entities.
Today's update is a maintenance release, fixing some bugs as Heroes of the Interstellar Armed Forces rolls over to the start of Season 2.
Misc
Certain older Workshop addons are now marked as Bonus Missions or Deathmatch in the new mission chooser.
Added rd_workshop_unconditional_download_item convar for dedicated servers as an experimental workaround for addons not receiving updates. Set it to -1 to update every addon at server start, or a positive number to update every addon after that many map loads.
Cleaned up some unnecessarily chatty logging.
Manual mission restarts now stop adrenaline.
Error messages that use EResult error codes will also include the corresponding name.
Fixed challenge names being truncated to 3 bytes in the server browser.
Fixed inability to activate ingamebriefing or playerlist after an instant restart.
Fixed missing location (mission) names on screenshots.
Heroes of the Interstellar Armed Forces: Added the Accident 32 campaign to the list of approved missions.
Today's update includes mission-specific fixes, controller improvements, and instant restart.
Campaigns
Tears for Tarnor: Insertion Point: The escape area now includes the south end of the room.
Tears for Tarnor: Oasis Colony Spaceport: Fixed the mission not ending if a marine was outside of the train exactly 3 seconds after the train began to move.
Nam Humanum: Platform XVII: Fixed "No Caption Specified" appearing when some buttons were pressed.
BioGen Corporation: Operation x5: Fixed "No Caption Specified" appearing when some buttons were pressed.
Aliens
Reverted alien glow on low shader detail. Aliens still glow on medium and higher, and rangers still glow on low as they did before the previous change.
Weapons
IAF Tesla Cannon: Fixed bots being unable to fire if the player that added them was facing a different direction.
IAF Tesla Cannon: Fixed being unable to target enemy marines in Deathmatch mode.
TG-05 Gas Grenades: Bots now deal friendly fire damage with this weapon.
Misc
Removed Tears for Tarnor specific drone variants with no descriptions from the Swarmopedia.
Fixed Controller option on the pause menu not opening the controller settings page.
Fixed Controller Aim to Movement setting requiring mouse interaction to change.
Fixed actions that center the mouse cursor (remote turret, radial menus, etc) interrupting controller input.
Controller d-pad inputs are now radial menus by default.
Updated game instructor to understand IAF Medical Gun alt fire and new controller radial menus.
Fixed score-based missions only showing the current score to spectators.
Today's hotfix includes some bugfixes for servers and some small updates to Forgotten Factory.
Campaigns
Tilarus-5: Forgotten Factory: Fixed elevator walls being invisible.
Tilarus-5: Forgotten Factory: Fixed some walls being invisible when the camera was rotated.
Tilarus-5: Forgotten Factory: Fixed a light that was intended to rotate not rotating.
Tilarus-5: Forgotten Factory: Improved collision around wall sentry.
Tilarus-5: Forgotten Factory: Minor tweaks to visuals during finale.
Translations
Updated Chinese translation.
Misc
Fixed Steam group and HoIAF servers always showing a red icon for ping.
Added GetSentryAmmo/SetSentryAmmo methods to asw_weapon_sentry.
Reduced the networked string table payload size for challenges. This should fix a server crash when a player connected to a server with many addons installed.
Mapping
Fixed spelling of OnDifficulty output in asw_gamerules.
Today's update brings an all-new mission selection screen, support for new types of missions, and quality of life features and bugfixes.
Aliens
Fixed eggs being less gooey than intended.
Fixed aliens not glowing on low or medium shader quality.
Campaigns
Jacob's Rest: Deima Surface Bridge: Minor geometry fixes near the end of the mission.
Nam Humanum: Platform XVII: Added some details. Fixed a few drone spawn locations with incorrect animations.
Tilarus-5: Forgotten Factory: Prevented aliens from blocking the movement of the elevator.
Deathmatch (all missions): Added tags to overview files for new mission chooser.
Bonus Missions (all missions): Added tags to overview files for new mission chooser.
Translations
Updated Chinese translation.
Updated French translation.
Misc
The mission selection screen has been totally revamped. Feedback and bug reports are highly appreciated.
Reverted changes to ASW_ActivatePrimary and ASW_ActivateSecondary. These commands are also now available for binding in the keyboard menu.
Merged cl_chatcolor_r, cl_chatcolor_g, and cl_chatcolor_b into one convar.
Added cl_chatcolor, cl_interp, asw_marine_death_cam_slowdown, and rd_override_allow_rotate_camera to Advanced Settings.
Fixed net_graph server tick rate rounding down instead of towards the nearest whole number.
Fixed lobby retry counter showing a number 1 higher than the actual retry count.
Updated workshop uploader to understand tags in mission overview files.
Possible fix for first person spectating showing the wrong camera position and angle.
Improved first person aiming for weapons that target a position like the grenade launcher and throwable items.
Removed per-difficulty leaderboards for challenges that only allow one difficulty.
Tree sway is now enabled by default.
Controller input is enabled by default (this only affects new players who have not changed any settings before; enable or disable controller input on the controller options menu).
Added two new settings, "Aim to Movement" and "Auto Attack" to the controller options menu.
The end-of-mission stats screen now supports more than 8 players for deathmatch mode.
Added a score history to the end-of-mission stats screen for missions that use points.
Reduced network traffic when an alien spawns or a gun is fired.
Added "aim to movement" and "auto attack" to the controller settings menu for classic twin stick gameplay.
Added a MissionChooser VScript object. See below for details.
Addons can now be loaded while connected to a game as long as the mission is not in progress.
Dedicated servers can now load collections in addition to individual addons.
Joining a game during slow motion now sets the appropriate timescale.
Added estimated ping times to lobbies.
The following notes were missed in the original version of today's release post:
Server owners can set allowed game types for the new mission chooser using sv_gametypes.
Marine gibs now last effectively forever in co-op and 15 seconds in deathmatch (up from 10 seconds globally). Disabling marine gibs now spawns a corpse instead of nothing.
Mapping
CustomCreditsFile will now be used from mission overview files if no campaign is active. This value is the name of a file containing credits keyvalues data, without the .txt suffix. It defaults to scripts/asw_credits, which is the Valve credits file for Alien Swarm. As always, make sure the credits filename is unique as the game will load the file from any addon that contains a file with that name.
Campaigns and mission overviews can now be tagged by adding a "tag" keyvalue to their file. To add multiple tags, simply add another line with "tag" and then a different tag name. Tags are case-insensitive, but it is recommended to write them in lower case for consistency. Mappers should avoid adding tags that aren't understood by the game as they may do unexpected things in the future. No tags are currently understood by the game for campaigns, but for missions the following tags are supported:
deathmatch - this mission will be listed under the Deathmatch tag on the workshop and be visible in the mission chooser under the Deathmatch tab. Deathmatch maps should contain an asw_deathmatch_mode entity.
endless - lists the mission as Endless on the workshop and in the mission chooser. Endless maps are new in this update, and intended to be used with the points tag. Missions with this tag should either be impossible to complete successfully ("survive as long as you can") or have an optional method of succeeding the mission ("press this button if you can't fight anymore").
bonus - lists the mission as Bonus on the workshop and in the mission chooser. Bonus maps are a replacement for single-mission campaigns (which will still work, but are discouraged) and can be used for standalone missions, survival or holdout maps with an objective, and so on. If your map fits into additional community-defined categories such as survival, holdout, or training, manually adding tags when uploading the addon is recommended. We are considering making some of these tags clickable on the workshop sidebar for added visibilty.
points - marks your mission as a "points mission" (rather than a "time mission"). When the mission starts, the score will be 0, and you can award points at your discretion using the AddPoints input on asw_gamerules. The score for a mission is limited to 2^31-1, or 2147483647, but there are currently no other restrictions or guidelines on how points should be used. The meaning of points is specific to each map. Use the TotalPoints output from asw_gamerules if you want to display the points in your map.
upload_on_failure - allow leaderboard uploads even on mission failure. Recommended for use with points, but can be used without if you're doing something unusual. If your mission can be successfully completed, it is recommended to award bonus points on mission completion.
The new mission chooser prominently features campaign maps and campaign and mission descriptions. Mappers who have previously published their maps should check how they look in the new UI and consider publishing an update if it can be improved.
The method the stats website uses to determine preview images has been updated to support multiple mission types per addon. If you have the same number of preview images on the workshop for each mission in your addon (1 is recommended), the first image from each set will be shown for campaign missions, bonus missions, endless missions, and deathmatch missions, in that order. (Deathmatch missions are not currently shown on the stats website, but may be in the future.) For example, if your addon is a 5 mission campaign with 1 bonus mission, you should have 6 preview images, one for each map in that order.
Added ModifyDifficulty input and MissionDifficulty output to asw_gamerules.
Missions where marines race each other can now send the input MarineFinishedMission to asw_gamerules in order to override that marine's completion time for the leaderboards.
Re-enabling a tech marine requirement while all tech marines are dead now fails the mission.
rd_weapon_generic_object's mapper-defined name can now be a translation key.
Fixed cl_leveloverview X coordinate being off by 128 times the scale.
Fixed several unused default particle effects having missing textures.
Models that support flex can now be used in prop_dynamic without flickering.
MissionChooser VScript object
This new global object provides access to 12 functions in this release:
int CountChallenges() - Returns the number of installed challenges.
int CountCampaigns() - Returns the number of installed campaigns.
int CountMissions() - Returns the number of installed missions.
ChallengeDataTable GetChallenge(int index) - Creates a table containing challenge data for a challenge by index.
ChallengeDataTable GetChallengeByName(string name) - Creates a table containing challenge data for a challenge by name.
ChallengeDataTable GetCurrentChallenge() - Creates a table containing challenge data for a the current challenge.
CampaignDataTable GetCampaign(int index) - Creates a table containing campaign data for a campaign by index.
CampaignDataTable GetCampaignByName(string name) - Creates a table containing campaign data for a campaign by name.
CampaignDataTable GetCurrentCampaign() - Creates a table containing campaign data for the current campaign.
MissionDataTable GetMission(int index) - Creates a table containing mission overview data for a mission by index.
MissionDataTable GetMissionByName(string name) - Creates a table containing mission overview data for a mission by name.
MissionDataTable GetCurrentMission() - Creates a table containing mission overview data for the current mission.
ChallengeDataTable
This is a table containing the following fields:
string id - the filename of this challenge, without the .txt extension.
string workshop - the workshop item ID for the addon that provides this challenge, as a decimal string.
boolean has_script - true if the file scripts/vscripts/challenge_id.nut exists, otherwise false.
string name - the display name of this challenge - may be a translation key.
string icon - the material name for this challenge's icon.
string description - the description for this challenge - may be a translation key.
string author - the author of this challenge.
table convars - convars this challenge forces; field names vary by challenge, all field values are strings.
CampaignDataTable
This is a table containing the following fields:
string id - the filename of this campaign, without the .txt extension.
string workshop - the workshop item ID for the addon that provides this campaign, as a decimal string.
string name - the display name of this campaign - may be a translation key.
string description - the description for this campaign - may be a translation key.
string credits - the file path of this campaign's credits file, without the .txt extension.
string icon - the material name for this campaign's icon.
string material - the material name for this campaign's map (base layer).
string material1 - the material name for this campaign's map (lowest overlay layer).
string material2 - the material name for this campaign's map (middle overlay layer).
string material3 - the material name for this campaign's map (highest overlay layer).
int x - the position of this campaign on the galactic map - not currently used anywhere ingame.
int y - the position of this campaign on the galactic map - not currently used anywhere ingame.
int search_light_x_1, search_light_x_2, search_light_x_3, search_light_x_4
int search_light_y_1, search_light_y_2, search_light_y_3, search_light_y_4
int search_light_angle_1, search_light_angle_2, search_light_angle_3, search_light_angle_4
array missions - array of CampaignMissionDataTable. the first entry in the array is the dummy mission.
array tags - array of string. no tags are currently used by the game for campaigns.
CampaignMissionDataTable
This is a table containing the following fields:
int index - the position of this object in the missions array.
string map - the map name for this mission, without the .bsp extension.
string name - the display name of this mission - may be a translation key.
string location_description - the location description for this mission - may be a translation key. location descriptions appear on the campaign transition screen as tooltips on missions.
string short_briefing - the short briefing for this mission - may be a translation key. short briefings are shown on the campaign transition screen.
string threat_string - the threat string for this mission - not currently used anywhere ingame.
int x - the position of this mission on the campaign map.
int y - the position of this mission on the campaign map.
int difficulty_modifier - the difficulty modifier for this mission. see the developer site for an explanation of what this does.
boolean always_visible - whether the mission is visible before it is reached.
boolean needs_more_than_one_marine - whether this mission requires at least two marines to play.
array links - array of int. the indices of the missions this mission links to on the campaign map.
MissionDataTable
This is a table containing the following fields:
string id - the filename of this mission, without the .txt extension.
string workshop - the workshop item ID for the addon that provides this mission, as a decimal string.
int pos_x - the X offset of the mission overview map.
int pos_y - the Y offset of the mission overview map.
float scale - the scale factor of the mission overview map.
string name - the display name of this mission - may be a translation key.
string description - the description for this mission - may be a translation key.
string icon - the material name for this mission's icon.
string credits - the file path of this mission's credits file, without the .txt extension. for missions in a campaign, use the campaign's credits file instead.
string material - the material name for this mission's map (minimap).
string briefing_material - the material name for this mission's map (during briefing).
string author - the author of this mission.
string website - the website for this mission.
string version - the version number of this mission.
array vertical_sections - array of MissionVerticalSectionTable.
array tags - array of string. see above for a list of mission tags added in this update.
MissionVerticalSectionTable
This is a table containing the following fields:
string material - the material name for this mission's map (minimap).
float altitude_min - the minimum coordinate for the marines' feet for this to be shown.
float altitude_max - the maximum coordinate for the marines' feet for this to be shown.
Today's update includes an all-new advanced settings menu, bugfixes for first person gameplay, optimizations, and other tweaks.
Weapons
M42 Vindicator: Increased Sarge's Vindicator Damage skill from 2 to 3.
X33 Damage Amplifier: Now applies 1.1 seconds of damage buff per pulse, unless the amp would expire sooner, so damage buff pulses overlap.
AVK-36 Marksman Rifle: Zoom can now be toggled even if the gun is not ready to fire.
IAF Medical Amplifier Gun: Fixed the reload button causing this gun to lose its ammo.
IAF Medical SMG: Bots will switch away from this gun if they are trying to heal and have no secondary ammo.
Translations
Dedicated servers now load a translation based on rd_dedicated_server_language. This is currently used to translate the challenge name in the server browser.
Made several strings on the HUD translatable.
Updated Chinese translation.
Small update to French translation.
Updated Korean translation.
Campaigns
Jacob's Rest: SynTek Residential: Fixed director aliens being able to spawn in the elevator shaft.
Tilarus-5: Yanaurus Mine: Replaced almost 500 dynamic props with static props for better performance.
Tilarus-5: Yanaurus Mine: Optimized lighting.
Tilarus-5: Forgotten Factory: The second generator now requires the first generator to be on before it can be hacked.
22A7-Z Prototype Assault Rifle: Increased stopping power (flinch chance) from 20% to 28%.
M73 Twin Pistols: Fixed damage being unintentionally reduced on lower difficulties.
Model 35 Pump-action Shotgun: Increased clips from 8 to 12.
K80 Personal Defense Weapon: Increased clips from 10 to 12.
Translations
Viewing a player's stats in a lobby now automatically sets the correct language for the web browser.
To avoid entirely missing strings, reactivedrop_english.txt and closecaption_english.txt are now loaded from addons as a fallback in addition to the correct language file. See the example campaign in the SDK.
Fixed Steam screenshots not having translated mission names.
Fixed mission names in voting not being translated.
Fixed the word "Challenge" in briefing not being translatable.
Fixed game description in server browser showing untranslated challenge names.
22A3-1 Assault Rifle: Increased alternate fire damage from 80 + 10 per Explosives Bonus to 128 + 20 per bonus. (Jaeger from 120 to 208, Sarge and Crash from 100 to 168, others from 80 to 128)
X33 Damage Amplifier: Increased duration loss for movement from 1× to 1.25×.
IAF Tesla Cannon: Fixed faster than intended marine turn rate when using secondary fire.
IAF Minigun: After a period of sustained firing, bullets have an additional chance of piercing.
IAF Minigun: Base damage increased from 7 to 8.
Chainsaw: Fixed faster than intended marine turn rate when using secondary fire.
22A4-2 Combat Rifle: Increased base damage from 5 to 6.
Mining Laser: Fixed faster than intended marine turn rate when using secondary fire.
Mining Laser: Automatic reload on empty now works for secondary fire as well.
Mining Laser: Base damage increased from 50 to 52 on living targetsall targets except laserable rocks.
Translations
ReactiveDrop and CloseCaption translation files are now loaded from every addon. If you are making a translation addon, only include the strings that you have changed.
ReactiveDrop and CloseCaption translation files are reloaded when the addon list is changed, for example by subscribing to a Workshop addon.
Added challenge names and descriptions, campaign names and descriptions, and mission names, locations, descriptions, and briefings to the translation files.
Removed unused hl2_*.txt translation files.
Removed unused *_korean.txt translation files. (Korean language uses *_koreana.txt files)
Updated Korean translation.
Aliens
Mapper-set Antlion and Antlion Worker health bonuses are now applied.
Antlion Worker health is now based on the correct cvar. The default value of sk_antlion_worker_health has been set to 24 to avoid having this affect balance.
Antlion Guard (both variants) health now scales with difficulty. Base health has been changed from 1000 to 500, so health without difficulty modifiers has changed from 1000/1000/1000/1000/1000 to 300/500/700/1000/1300.
Misc
Fixed a crash when a marine without a commander tries to move (empty dedicated servers).
Added a check at lobby creation for stuck Nam Humanum campaign achievements. If any of these five achievements are found to be in an inconsistent state, it will be reset to allow progress.
Added a new Heroes of the Interstellar Armed Forces participating server in China.
Mapping
The DifficultyModifier setting in campaign files has been fixed to function when fixed skill points are in use (the default). Campaign authors, check to see if your campaign has DifficultyModifier set for any missions and determine whether you want to keep old behavior by removing it.