Sven aims for a Christmas release

Just got pinged by Sniper from over at Sven Co-op.  They’re targeting a December 24/25 release for the much anticipated version 4.6.  Also got a sneak peak at the changelog, so I’m passing it along here for you to drool over (with love from Sniper).  It’s rather long, but you guys deserve it!

View the Change Log

Maps Changes

New Maps:

Added new map: Black Mesa EPF (by Mutant) Added new mod conversion: Half-Life: Uplink (Thanks to edman747) Added map: Momma Mesa (by BlueFeena)

  • Map has been reworked from its original release for Sven Co-op 3.0:
  • Skill file has been modified to make the map less impossible.
  • Added 4 difficulty settings for players to select at the beginning of the level.
  • Prison mission has been completely redesigned.
  • Added numerous shortcuts.
  • Added a new transition into the arena mission. Instead of falling into a teleporter like before, players now get an elevator ride and a more elaborate teleporter.
  • Added a secret sewer tunnel to the outside of the canyon, contains Python ammo, a SAW, and two SAW clips.
  • Extended the generator mission. Players now make a brief trip to the trainyard.
  • Manta Ray now shows its health.
  • Added sprites for the alarms in the lab mission.
  • Added a grated floor to prevent players from falling into the pit in the lab mission.
  • Added a new v_shotgun model.

Added new mod conversion: They Hunger: Episode 2 (Thanks to JPolito)

  • Connected the outro map of They Hunger Episode 1 to the intro map of They Hunger Episode 2.

Added new map: Toadsnatch (by Nih) Added map: Turretfortress (by Nih)

  • Map has been reworked entirely from its original release for Sven Co-op 4.5.

Major Changes:

Half-Life / Opposing Force SP:

  • Applied countless fixes to Half-Life and Opposing Force SP levels (tremendously huge thanks to edman747)
  • Added Half-Life train intro levels.

Minor Changes:

  • Reverted Ripent.exe to the version from ZHLT 3.4f to solve a problem where ripented maps became incompatible with the originals.
  • Abandoned: Kingpin plus sporelauncher added.
  • Afrikakorps1: Added additional spawn points that move as players progress through the map.
  • sc_another: Spore launcher added
  • sc_another: Monster_kingpin added.
  • Auspices: Spore launcher added; Shotgun now uses HL1 firing mode. The shotgun model is not compatible with the new firing mode.
  • Deadsimpleneo2: One Tor boss has been replaced with a kingpin, the other Tor can now spawn agrunts
  • Deadsimpleneo2: Damage done by monsters has been increased by 2.5 for XPmod servers
  • HL_OpFor_SP_Portal: Added Uplink SP portal room
  • HL_OpFor_SP_Portal: Enhanced the HL Random Teleporter Startup Sequence a bit.
  • HL_OpFor_SP_Portal: Added trigger_vote to HL:CH1, OpFor:CH1 and OpFor:CH2 so the player can choose if they want to have a trainride or go right into action.
  • Intruder: Monster_kingpin added.
  • It Has Leaks: Made the moving platform in library 20 units slower
  • It Has Leaks: Moved a path_corner for the moving platform in the library 128 units down you should no longer have to use the lost art of strafe jumping to make it, or create a human tower.
  • Jumpers: Arrows made more visible.
  • Jumpers: Added 20 second wait time before players can exit the spawn room
  • Jumpers: Changed main jumper name to point man for easier communication
  • Jumpers: Map detects if the server is running xpmod and increases damage taken by players to balance the game.
  • Jumpers: When the map is over, the team’s score is compared with the server high score, as was originally intended with the map
  • Jumpers: 2 Kingpins have been added as the fifth boss
  • Jumpers: Rank system has been altered
  • Jumpers: Players see their objective when spawning
  • Jumpers: A purple glow sprite now floats above the Point Man
  • Osprey: Removed Tor from the outside arena area
  • Polar Rescue: Fixed a server crash when a sniper assassin turns off the lights
  • Polar Rescue: Fixed scientists not always moving to the teleporter properly
  • Polar Rescue: Fixed a server crash when destroying a nuclear missile
  • Polar Rescue: Fixed hostages sometimes freezing prior to entering the bottom floor teleporter
  • Polar Rescue: Added debug room, no clip through the wall with the giant map on it
  • sc_royals: Added sporelauncher and spore ammo to maps 2, 3 and 4
  • sc_royals: Added grappler to maps 3 and 4
  • sc_royals: Gave godmode to barney
  • sc_royals: Gave godmode to ichthyosaurs in map 2
  • sc_royals: Added more ambient sounds to each spawn area
  • sc_royals2: Edited jumping puzzle. It uses textures now as symbols.
  • sc_royals2: After each area is finished their theme songs are switched off.
  • Sector E 1 + 2: Added monster_kingpin.
  • Sector E 3: Fixed a client crash when using the iPad
  • Sector E 3: Added gluon gun for finding the 15 flowers across 3 maps; appears in the final area just before going down the ramps to weird Gordon
  • Sector E 3: Replaced Tor with Kingpin
  • Stadium3: Added the kingpin NPC.
  • sc_tetris6: Kingpin boss has been replaced with monster_kingpin
  • VGER: Added more ammo to the config file. Players now spawn with an m16, tripmines, grenades, satchels, a full loadout on shotgun and 9mm ammo, ar grenades, and m16 ammo; also set sv_weaponstay to 1

Model Changes

  • Added walk and run sounds to kingpin QC
  • Added new melee attack for Kingpin
  • Added finishing touches for kingpin death animation
  • Added death animation to kingpin
  • Fixed dm_gordon player model’s floating rat tail (hair thing on the back of his head)
  • Fixed left hand clipping into M16 weapon model
  • Updated kingpin model with completely new attacks
  • Updated the kingpin model
  • Added minigun with Opposing Force arms
  • Cleaned up minigun texture assignment
  • Fixed color-changing problem with the prisoner model in MommaMesa
  • Global model replacement for all Opposing Force v models for Opposing Force campaign
  • Changed color of medkit world model border to make it more distinct from pmedkit
  • Removed UVW seam on slick scientist head
  • Tweaked FPS of reload animation on the v_uzi model
  • Tweaked chrome effects on 357
  • Added a new v_shotgun model to MommaMesa
  • 357: Rotated recessed areas 30 degrees and fixed holes on barrel.
  • Added new loader.mdl with HL and Opposing Force animations
  • Added cSMG’s hgrunt_sniper.mdl
  • Merged hungerzork from They Hunger into one model
  • Added Kingpin model
  • Cleaned up Barniel player model rig
  • Reverted dm_gordon player model to to fix faceted faces
  • Added shephard and beret player models
  • Modified sc_activist houndeye to have increased attack fps
  • Increased size of buttons on v_medkit to eliminate holes

Sound Changes

  • Normalized all kingpin sounds based on average loudness and removed background static noise from idle/move sounds.
  • Added a slow-movement sound to be used for the walk animation of the kingpin.
  • Added new Kingpin death sounds.
  • Made the kingpin sound effects sound less like a person gurgling.
  • Added new kingpin idle/alert/move/pain sounds.
  • Updated songs for Kyper kuutio.
  • Added new bodyguard sounds.

Code Changes

New Features

  • Added the kingpin monster.
  • Added trigger_setcvar entity, allowing a number of specific CVARs to be dynamically set by mappers.
  • Improved trigger_track_goal to account for non-looping path tracks.
  • Added spawn flag for func_tracktrains to skip updating its yaw angles as it moves.
  • Mappers can now specify angles/orientation for the Weaponbox entity.
  • Added a solution for allowing Hammer to have key names for WeaponBox ammo types. This involves some new key names for Hammer which are converted to their actual ammo types.
    • bullet9mm (9mm Ammo)
    • bullet357 (357 Ammo)
    • bullet556 (556 Ammo)
    • handgrenade (Hand Grenade Ammo)
    • satchelcharge (Satchel Charge Ammo)
    • tripmine (Trip Mine Ammo)
  • Added info_teleport_destination “trigger on spawn” feature.
  • Added new “Player Invulnerable” spawnflag for trigger_camera to stop players taking damage while the camera is active.
  • New spawn flags added for the xen plant entities (xen_hair, xen_plantlight, xen_tree and xen_spore_small/medium/large) which make it easier for mappers to place them in a natural looking way:
    • “Drop To Ground”
    • “Random Angles”
    • “Non Solid” – Only applies to xen trees and xen spores and trees.
  • Func_breakable and func_pushable entities have the following changes:
    • New spawnflag “Immune to Clients” – Cannot be damaged or broken by players under any circumstances (except when triggered to break via the “Only Trigger” spawnflag).
    • New “Classify” key. When set to “Player Ally” (11) or “Human Passive” (3), can only be broken by players when the cvar “mp_npckill” is 1. Immune to players but damageable by monsters when “mp_npckill” is 2.
  • trigger_copyvalue and trigger_changevalue can now concatenate strings.
  • Added spawnflag 2 to game_text, which disables printing the message to the console (apart from servers and developer mode).
  • Func_door – new “fire on open” feature added for func_door.
  • Added trigger filtering code to player spawn points, so you can now use a semi-colon ‘;’ separator to filter inputs and outputs using multiple target names.
  • Added “Reusable” spawnflag and custom-sprite option for the env_funnel entity.
  • Added saw tooth and sine wave LFO options for ambient_generic.
  • The “player_weaponstrip” entity can now be configured to strip the player’s suit.
  • The “player_weaponstrip” entity can now be set to strip items from [all players] or [all players except the activator], instead of always only the player that activated it.
  • Added copy-interval to trigger_copyvalue.
  • Added trigger_condition constant mode trigger behaviour. (See FGD)
  • Added new weapon and ammo entries for func_breakable’s “spawn on break” option.
  • Added ability for trigger_save and trigger_load to trigger something after saving/loading.
  • Added “Trigger after spawn” ability for trigger_createentity.
  • Added “!activator”- and “!caller” support to trigger_createentity.
  • Added new entity trigger_entity_iterator. Allows level designers to search the map for certain entities in the game and force them to trigger something.
  • Mappers can now re-define sv_maxvelocity for high speed trigger_push entities.
  • New entities item_helmet and item_armorvest, as they appear in Blue Shift.
  • Trigger_change_class entity can now work with Players. This allows players to have their classification overridden.
  • Trigger teleport can now be enabled/disabled by targeting it, so you don’t have to use a master entity to disable the teleporter. Supports use type on/off/toggle properly. New spawn flag 4096: Start Inactive
  • Trigger_changevalue and trigger_copyvalue now support setting entity state and flag bit mask variables with original identifiers from the code. (“FL_NOCLIP”, etc.) Leading ~ will perform bitwise negation.
  • Trigger_changevalue and trigger_copyvalue now support setting entity edict keyvalues. For trigger_copyvalue, source keyvalue can be left empty to treat the source entity as the edict_t* to be used.
  • Added feature for mappers to set custom keyvalues to store variables on entities.Use the following prefixes:
    • $i_name for integers (whole numbers)
    • $f_name for floating point numbers (decimal numbers)
    • $v_name for vectors (X, Y, Z)
    • $s_name for strings (text)
    • Changed a bitflag assignment from + to | (xenmaker template).

Weapon Changes & Bug Fixes

  • New feature: Shock rifle secondary fire can now charge player HEV
  • Updated shared player movement code to help reduce lag complications when using the barnacle grappling hook.
  • Fixed Barnacle grapple tongues being pushed by trigger_push.
  • Reduced the delay time for spore launcher reloading (as you finish reloading).
  • Increased size of firing cones for mp5, m16a2, and m249 SAW.
  • Client-side firing cones / bullet hit positions synced up to match server’s version.
  • Fixed the server telling clients to play the wrong sound when firing their pistol (primary fire).
  • Fixed dual Uzi super rapid fire exploit when holding reload if no reserve ammo is available.
  • m16a2 – increased primary attack rate of fire.
  • Shock rifle – Lightning now takes twice as long to charge and the chain lightning decays twice as fast.
  • Players that use their medkits are awarded points depending on how much they heal.
  • Added CVAR “mp_disable_medkit_points” to control points given for healing/reviving — mapper controllable. Points given for healing is 10% of what you heal (i.e. heal something by 8 points and 0.8 points is added to your score).
  • Removed framerate reduction for some third person animations.

AI / Monster Changes & Bug Fixes

  • AI – Modified NPC’s movement function to gradually turn while facing a new direction.
  • Limited grenade throwing distance for NPCs to 1024 units maximum.
  • Updated Bodyguard NPC to use additional custom sound effects.
  • Agrunt – fixed issue with freezing in place if teleported into a solid object.
  • Changed male assassin m16a2 firing cone from 5 to 6 degrees.
  • Changed sentry gun firing sound to automatically select a sound channel.
  • Opposing Force Grunts can now move and shoot/reload like regular grunts again.
  • Human Grunt Medic – Removed range attack schedule from fail schedule fallback. Caused medic to shoot unreliably if unable to move to desired position.
  • AI – Performance tweak: Removed visibility check for targets that aren’t in an NPC’s view cone.
  • Apache – slightly increased maneuverability of Helicopter.
  • Gargantua now properly kills things it bites by calling the prey’s “Killed” function, rather than just applying tons of damage to it.
  • Gargantuas will now engage in pursuit with an enemy more quickly if its swipe attack misses the target.
  • Agrunt – Fixed inability to consistently attack when running and swiping similar NPCs that were also running.
  • Agrunt – Fixed issue with Alien Grunt being able to swipe / throw creatures larger than itself around the map – added modifier based on maximum health.
  • Agrunt – Increased range at which the AGrunt decides it should melee-attack by 10 units.
  • Fixed grenade usage for Rocket Grunts.
  • Updated AI code to handle fearing enemies properly.
  • Updated move-attack code to resolve some animation pops.
  • Pitdrones will now engage in pursuit with an enemy more quickly if their swipe attack misses the target.
  • Tor – added missing staff-blast sound effect in sound precaching.
  • Fix for some allied machine monsters not checking if they are allowed to be attacked or not according to CVAR mp_npckill.
  • mp_npckill 2 will now disallow other player allied and human passive NPC’s to hurt a player allied NPC.
  • Pitdrone – Idle sounds added.
  • Pitdrones make a pain sound when they miss their target
  • Torch Grunt – Slight adjustment to decal tracing function when Torch Grunt cuts through a door.
  • Gargantua – Improved ability to catch prey.
  • AI Animation – Revamped animation sequence code, added HURT movement animations’ groundspeed calculations to fix rare NPC walking-in-place bugs.
  • Alien Controller – fixed issues with various AI related movement queries for the alien controller. groundspeed is now updated to match flightspeed.
  • Robot Grunts – fixed memory leak with player weapon lookup.
  • Sentries / Turrets – fixed memory leak with player weapon lookup.
  • Fixed hullsize problem with monster_generic. Fixes issues with scripted_sequences and misc.
  • Corrected turret firing sound precaches (“turret/tu_fire1.wav” used by large turret only, “weapons/hks_hl3.wav” used by miniturret and sentry guns).
  • AI – Updated brush-based NPC attack handling to fix center-of-entity aiming issues.
  • Snarks spawned from snark nests spawned from squadmakers now take on their parent’s classification.
  • Improved the “scale” keyvalue support for NPCs. Movement speed is now in proportion to scale. Default scale of 1.0 applied for all NPC.
  • AI – Monsters now forget enemies that gain FL_NOTARGET after already being seen without it.
  • AI – Fixed issues with displaying dying monsters with half health on the HUD.
  • Changed snark classification to “alien military” to fix issues with snarks attacking alien slaves and other non-military aliens.
  • Male assassins now stop investigating sounds if they’re set with the prisoner spawnflag.
  • Male assassins with no weapons will use sequence “standing_armswing” instead of “standing_m40a1” (sniper rifle). If “standing_armswing” isn’t present in the model, it will fall back to “standing_m40a1”.
  • Turrets, Mini-Turrets, and Sentry Guns now auto-start if they lack a targetname, and are not set with the “Start Inactive” spawnflag in Hammer.

General Changes & Bug Fixes

  • Sound engine – Performance improvement – Moved audio volume check to UpdateEnvironmentalEffect() so that it doesn’t do a CVAR lookup every game frame.
  • Changed UpdateEnvironmentalEffect() to run every 2 seconds instead of every second.
  • Modified some room types (audio environment sound effects) slightly.
  • Moved the sound engine’s volume check up higher so that it executes even if room_off is enabled.
  • Added CVAR pointers to replace CVAR lookups for opengl shadows, game audio volume level, room_type, and room_off to improve game performance.
  • Added server-side warning if the hostname is too long, and will be cut off by the Steam server browser.
  • Changed server-side warning for too many vote maps to an alert rather than a log.
  • Fixed a few issues with things glowing when they are not supposed to, after being hit by shock beams.
  • Increased slime/lava damage to Quake-like levels.
  • Health / Hev wall chargers – Increased speed of player recharge rate by 50%
  • func_tracktrain – changed console debug messages to read func_tracktrain instead of func_train.
  • Fixed bug with trigger_setorigin’s offset difference calculation.
  • trigger_condition – Fixed bug with trigger_condition not regarding the “Cyclic” entity spawnflag when triggered.
  • Trigger_copyvalue now allows rounding (normal/ceiling/floor) of floating point numbers to n decimal places or a whole number (integer) when converting values to string.
  • Trigger_copyvalue – Changed trigger_copyvalue to fire “trigger after operation”-target even if operation failed.
  • Fixed some play-loop issues with sprites.
  • Minor bugfix for death effect.
  • Fixed problems with targetname filtering for the game_player_counter entity.
  • Fixed a minor visual artifact that occured when players picked up items.
  • Fixed trigger_condition not reacting more than once per frame.
  • Fixed bug in trigger_copyvalue where a string reference was used as if atoi(STRING()) had been used on it, causing operation to always be the default operation.
  • Fixed game_zone_player “Ignore dead players” flag.
  • Fixed trigger_hurt_remote list memory management, list iteration and unwanted toggling behavior in the “non-constant” mode.
  • Changed the map voting list to use the unreliable message channel to help free up the reliable channel for more important data when players join.
  • Stopped the map voting list printing every map added to it in the server console.
  • Sound engine – Minor adjustments to 3D positional audio settings.
  • Sound engine – Changed sound messages to transmit entity indexes as short integers to take up less space.
  • Fixed trigger_changemodel issue having rough transitions. If set on monster, previous animation activity and animation frame are accounted for. Animation interpolation is also disabled during the model swap.
  • Re-enabled game_text messages printing in the console for all instances, not just for servers and developer mode.
  • Sound engine – added proper checking for sound_cache folder creation.
  • Fixed being able to revive gibbed players.
  • Added a new message for acid deaths “[player] has been dissolved”.
  • Players no longer drop essential weapons (crowbar, wrench, medkit, and grapple) on death.
  • Func_breakable – fixed memory leak with player weapon lookup.
  • Fixed memory leak with map skill CFG files.
  • Fixed bug with func_breakables using the player ally or human passive classes not following mp_npckill rules properly.
  • Modified func_friction to allow a value above 100% to slow down player movement by changing the player’s maximum speed.
  • Sound engine – Increased maximum number of sentence groups from 250 to 384
  • Fixed trigger_friction resetting player speed to maximum if the player is holding a minigun.
  • Greatly improved trigger_condition, trigger_copyvalue and trigger_changevalue error reporting.
  • Added trigger_save and trigger_load error reporting.
  • The server console will now get a copy of game_text messages, but only if developer is set to 2.
  • Minor fix for game_text developer console output. It requires ‘developer 2’ enabled to be shown server-side.
  • Fixed issue with excessive “has been killed by” log messages printing.
  • Denied cheat attempts are now logged in the server console including the player name, Steam ID, and the cheat attempted.
  • If developer is 2 (or higher) the sound engine will print a list of sounds it successfully loads along with fails.
  • Deleted CVAR “sv_admins” for a list of server administrators, as it is limited to 128 characters. Instead list your server administrators in a text file pointed by CVAR “adminslist” [default “admins.txt”]. You can have up to 256 administrators in this file.
  • Fixed warning “doesn’t have a landmark” not having a newline ending, meaning the next console/log message was stuck on the end of this warning.
  • Added resolutions for 1600x*, 1680x*, 1920x* to the VGUI code.
  • Changed armor damage multipliers when a player is in slime or lava. Slime: 1x if feet submerged, 2x if waist submerged, 3x if fully submerged. Lava: 2x if feet submerged, 4x if waist submerged, 6x if fully submerged
  • Moved some sound-engine-related debug messages to the “developer 2” setting.
  • trigger_setorigin – Entity positions (their origin) are now *always* updated by the engine. Removed unused/non-functional features. Added new feature “angle offset” – offsets the target entity’s angles after it’s positioned in place. Entity offset calculations are now based on the entity’s origin, rather than the entity’s center position. Backwards compatibility added for removed feature “m_fRotate”. If “m_fRotate” is specified, the “Lock Offsets” flag is turned on. “Offset Difference” spawnflag renamed to “Lock Offsets”.
  • trigger_copyvalue and trigger_changevalue now uses the engine for entity positions, to coincide with trigger_setorigin.
  • Fixed custom hull sizes being overridden by a default size for all items (apart from item_generic).
  • Slight performance tweak to button sparks.
  • Func_breakable’s explosion magnitude now affects gib velocity.
  • Gib velocity is now relative to the attack
  • Server stalls with error “Node queue is full!” when a map has to many navigation nodes. Made the output more informative.
  • Increased the default sv_zmax cvar, as mappers forget to increase it for their maps.
  • Reverted blood squirts to only appear when something is shot by a sniper rifle.

Major Bug Fixes

  • Fixed a server crash for when a player picks up the shock rifle while holding no weapons.
  • Fixed picking up dying shockroach exploit.
  • Fixed game_text crashing with NULL activator when not set to display to all players.
  • Fixed bug with trigger_transition to allow any player to use it, rather than just the 1st player connected.
  • Fixed crash bug with the snark nest NPC doing a visibility check on their enemy, even if they had no enemies.
  • Fixed a few potential stack overflows in the core game rules.
  • Fixed crash bug with trigger_changemodel. Added additional functionality to update AI eye positions when used.
  • Fixed trigger_changelevel crashing if the entity triggering it was not passed as the activator (causing a null reference).
  • Fixed trigger_copyvalue string-to-string operations crashing the game or not working correctly.
  • Fixed a game-crashing NULL pointer dereference for “Activator” in the base trigger code.
  • Changed scripted_sequence tasks to use the m_pCine pointer, rather than the m_hTargetEnt pointer, to fix some rare crash bugs.
  • trigger_hurt_remote – Fixed null pointer dereference with “TakeDamage” call (fixes server crash)
  • Restored ability for entities to trigger themselves, with a recursion level limitation of 128.
  • Fixed trigger filtering “classname out” from not working at all.
  • Trigger_createentity now cancels entity-creation when a model can not be set (fails), as spawning a brush entity without a model is prone to causing crashes.
  • Fixed snark spawning crash bug when monster_sqknest placed independently in a map.
  • Fixed null pointer dereference with baby headcrab death, which lead to a game crash if their attacker was gibbed.
  • Fixed game crashing if sound/model replacement file lines are not perfectly formatted (“original” “replacement”). Mappers can now use comments (# and /) and blank lines to help organise them easier.
  • Fixed env_beam crashing servers due to sending a new network message without finishing the current env_beam network message first — only effects env_beam with the ring flag enabled.
  • Fixed FMOD initialization error 79 when attempting to use too many input channels for the sound card (fall back chain: 7.1, 5.1, Surround (4.1), Quad, ProLogic/ProLogic II (5.1 encoded over Stereo), Stereo, then Mono)
  • Fixed bug with trigger_push always nudging entities 0.1 units upwards for upward pushes.
  • Removed the func_tank visual aid (laser sight) due to instability issues causing client crashes.
  • Fixed satchel being unusable if holstering and drawing quickly after detonating satchels.
  • Fixed empty satchel staying in player inventory when quickly holstering after detonating satchels and having no satchels left.

Be sure to keep it tuned here for the most up-to-date release info.

Sven Co-op