srand((double)microtime()*1000000);
$num = rand(1,3);
include ('../banners'.$num.'.txt');
?>
»
News Archive:
January 2018 to December 2021
Sven Co-op Update Released [Build 7342106 / Release 5.25]
11 September, 2021 | by AdamR
Hello everyone, it's been a while since we last gave you an update. That hot fix is from January has become a Baked Alaska refrozen! As usual we're back with a much bigger package than expected. hehehe
Big thank you to everyone that took part in the release candidate testing. We feel that this added value to the finalisation of this release, and as with the previous successful round, will continue to take this approach.
First and foremost, the cart in the test chamber of Anomalous Materials can be pushed into the beam again!
Black Mesa Special Tactics Sector (BM_STS), level by Trempler, has been updated with ~NEW HUD ART~ and ~NEW GAME MODES~ and ~REBALANCED GAMEPLAY~ (courtesy of Levi).
Polar Rescue, level by Adambean, has been updated to add ~EXTREME DIFFICULTY MODE~.
If you are running a dedicated server please use SteamCmd to update your servers. Those of you that were using the public release candidate can remain to do so, as this branch now matches the standard branch.
Important: Linux users, particularly server operators, may need to manually install OpenSSL's 1.1 library. To do this on Debian and Ubuntu you can do so with command "apt install libssl1.1:i386" as root (or prepend "sudo").
Changes are as follows:
Notable changes
The cart in the test chamber of Anomalous Materials can be pushed into the beam again!
Black Mesa Special Tactics Sector (BM_STS), level by Trempler, has been updated with ~NEW HUD ART~ and ~NEW GAME MODES~ and ~REBALANCED GAMEPLAY~ (courtesy of Levi).
Polar Rescue, level by Adambean, has been updated to add ~EXTREME DIFFICULTY MODE~.
Code
Game library
Added support for "waterlevel" property keywords DRY (0), FEET (1), WAIST (2), and HEAD (3). (Applies to entities such as "trigger_condition" when reading "entvars" structure.)
Added event triggers "on start" and "on stop" to doors (apart from momentary), platforms, and (platform based) trains. Usable with "fireonstart" and "fireonstop", these work similar to door "on opened", "on opening", etc.
Classic Mode: Small tweak to ItemMapping for letting the target/targetname values be carried over from replaced entities to the newly created replacements. This prevents mapper-assigned item collection triggers from breaking when classic mode is activated and the item in question gets replaced.
Entity "env_explosion" effect now uses the underwater effect if the entity is submerged.
Entity "func_breakable" CLASS_PLAYER is now part of the set of classifications that can be repaired by players.
Entity "trigger_camera" will no longer switch off for all other players using it if just one player disconnects whilst using it.
Fixed a crash at the end of a map caused by "item_inventory".
Fixed a null pointer dereference for squad talking monsters.
Fixed a null pointer dereference when changing levels (by "trigger_changelevel") if the other "touching" entity was undefined.
Fixed corpses sometimes flying upwards whilst dying climbing a ladder.
Fixed orientated sprites requiring 360 to be specified in angles that were intended to be zero due to a strange legacy Worldcraft workaround. (Doesn't apply to sprites using "default" orientation.)
Fixed players healing and repairing enemies when using the non-targetable flag.
Removed 2 unit lip adjustment from buttons and doors. (The engine no longer expands brush sizes by 2 units.)
Removed false warning in "trigger_createentity" for "delay" and "killtarget" keys.
Take damage functionality will now merge with the god mode flag earlier to apply invulnerability more robustly when desired, particularly when modified at runtime (e.g. with a "trigger_changevalue" or "trigger_copyvalue").
AngelScript
Fix crash when calling `GetClassificationName()` and `GetClassificationTag()` from AngelScript.
Engine
Corrected case sensitive directory, "GamEUI" should have been "GameUI".
Fixed out of bounds crash caused by the speak command.
Increase CVOXFILESENTENCEMAX to 2048. (This is only a temporary change to address a crash that occurs due to the "sentences.txt" being maxed out.)
Tweaked Windows dedicated server EXE compiler options to reduce false positive trojan detection.
Water fog colour is now calculated by checking the current water volume the player is in, instead of by last drawn water poly surface.
Non-playable characters
Added dead prop entities for Gonome "monster_gonome_dead" and clean-suit scientist "monster_cleansuit_scientist_dead".
Fixed M203 grenade launcher ammo dropped from NPCs (by "npc_dropweapons") respawning as if its a regular map entity. (The drop should only be collectable once.)
Fixed chumtoads not following their owner.
Gargantua: Fixed prey catching animations (GARG_AE_PICKUP_PREY and GARG_AE_BITE_KILL_PREY) preventing the Gargantua from completing a scripted sequence if these animations were being called by the script.
Houndeyes now support global and individual "monster roaming" settings:
Behaviour for global properties:
Roaming monsters option is 0 (No): monster_houndeye will roam if its AI chooses to do so (default Half-Life behaviour), unless its "Monster Roaming" option is set to 1 (never).
Roaming monsters option is 1 (Yes): monster_houndeye will always roam, unless its "Monster Roaming" option is set to 1 (never).
Behaviour for individual properties:
Monster roaming option is 0 (Map Default): monster_houndeye will roam if the Map properties "Roaming monsters" option is 1 (Yes). Otherwise, its AI decides (default Half-Life behaviour).
Monster roaming option is 1 (Never): monster_houndeye will never roam.
Monster roaming option is 2 (Always): monster_houndeye will always roam.
NPCs that are too far away from their "func_tank" will now stop control and end their task.
Scripted NPCs will no longer fall if the "Instantaneous" option moves them far enough above the ground
If "Instantaneous" is selected for a scripted_sequence's "Move to Position" option, a trace line is performed to search for the ground at a distance equal to the NPC's height.
If the ground isn't detected, MOVETYPE_FLY is set early for the "Idle Animation". Previously, MOVETYPE_FLY was only set for the "Action Animation".
This change was needed because the engine now performs more regular FL_ONGROUND checks, leading to a more accurate physics simulation.
Voltigore: Adjusted the friendly fire damage nullification conditions to rely on `IRelationship` rather than the `m_fIsPlayerAlly` flag. This allows Voltigores to inflict melee attack damage against other Voltigores regardless of what classifications they use as long as they aren't allied, i.e. the relationship between them is R_NO or higher.
Weapons/Items
Crossbow:
Set the removal think function, rather than remove the crossbow bolt immediately. This allows for the crossbow bolt to consistently push MOVETYPE_PUSHSTEP objects.
Set velocity to zero as a last step to fix explosion position.
Bolts can now push MOVETYPE_PUSHSTEP entities on impact.
Velocity is no longer cleared if a crossbow bolt touches a MOVETYPE_PUSHSTEP entity (e.g. func_pushable). Misc. code standards updates.
Shock rifle secondary fire will now properly check the classification of the target so that only allies have their HEV charged.
Shock rifle drop direction fixed.
Maps
Black Mesa: Special Tactics Sector
Added new script for less stuck NPCs.
Added new script for round timer, which also replaces the old sprites.
Added new secret.
Added new spawn sprites for the Gargantua survival bonus round.
Added new visuals for monster HP and tech level.
Added spectator support:
Players who want to idle or just want to watch can join spectator mode.
You can also leave it by pressing tertiary attack (throw crowbar) "+alt1".
Added super round support:
Re-rolls and resets all samples and scores of all teams when a team is about to win.
Added an option to disable bonus rounds.
Added an option to disable super rounds.
Added spectator mode portal.
Changed the layout of the yellow lab arena.
Corrected misaligned textures.
Fixed the Gargantua survival bug where Gargantuas could stay alive when the bonus round ends.
Fixed the dead end bug in the find maze bonus game.
Fixed the skylight / sky texture bugs.
Fixed the suicide exploits of all survival bonus rounds.
New timer sprite displayed in the player HUD.
Reworked the monster spawn system, better placement.
Reworked the skill settings for the map.
CTF Warforts
Added new gag soda machine.
Class balance changes.
Deployable turret models now use full-bright rendering for the floating team icon.
Fixed exploit with Operative class, where users could remain stealth while running at full speed.
Fixed issue where weapons were retained between rounds, most problematically the long jump module.
Flanker nerf adjusted: Long jump removed, dual Uzis swapped for single Uzi, and base speed increased and gravity reduced.
Players may no longer carry an enemy flag into their own spawn, preventing potential griefing by refusing to leave and being safe from harm.
Removed alien mercenaries from the side bunker.
Texture fixes.
Half-Life Campaign
HL_C07_A1: Recompiled (legacy clip nodes) version to fix problem with jumping out of water in certain areas.
HL_C07_A1: Fixed the change level point needing to be used manually.
Polar Rescue
A very long overdue update...
Added comprehensive materials definition for those noice footstep atmospherics.
Added extreme difficulty: Effectively the same as hard mode, but with survival mode enabled. Super unfair.
Added fire escape stairs beside the elevator shaft.
Top floor blocked with sandbags, needs a high explosive detpack from the bottom floor to clear them.
Can act as an alternative route to hostage refuge should the lift be unsuitable.
Changed camera objects to a dome camera model.
Changed how the security station on the ground floor is accessed.
Changed rock netting at the start to be breakable, so you can see what you need to shoot inside.
Changed secret with a cool sound model.
High definition objective sprites. (Constantly remind Hezus that I stole and re-factored his SnD script to do this.)
Huge redesign to the command centre: No longer a silly office.
Huge redesign to the nuclear reactor: Really gigantic. Seriously.
Lots more hint sprites. People love hint sprites.
Minor redesign to the radio room.
Minor redesign to the security station.
Zillions of tweaks nobody cares about blah blah.
They Hunger
E2M1: Increased height of picnic table by 2 units. Fixes players not being able to jump over the gate when standing on top of it.
Misc
Textures
lcd_display.wad: Updated with new high definition numerals and LCD screens.
Other
Linux game client launcher: Fixed a issue where the Linux game launcher script ignores first and last parameter. This also fixes another issue where a parameter with quoted value would get its value ignored. (E.g. "-game "ns")
Version details
Steam build ID numbers: Game 7342106, dedicated server tool 7342110, SDK tool 7342111.
Please use the steam build ID number as a reference when posting an issue or query on our message boards. You can find the build number you currently have within Steam by right clicking our game or tools, selecting Properties, then selecting the Local Files tab.
Sven Co-op 5.25: Collector's Edition
1 April, 2021 | by Hezus
The release of Sven Co-op version 5.25 marks a very important milestone in the development of the game. As many of you know, Sven Co-op's development started all the way back in 1999 and we would like to honour that legacy by creating a very special COLLECTORS EDITION of our latest instalment! We're proud to present:
Since the game was originally created last century we're going back to the standard IBM compatible-computer medium and release the game on 5.25" floppy disks! You might not know it, but chances are that you are currently reading this news post on an IBM compatible computer! That means you only have to dust off your 5.25" floppy drive, connect it to your Windows 10 PC and you're ready to go!
Of course, we can't be sure which type of drive you own, so users can choose between DS-HD (1,2mb) and DS-DD (360kb) floppies. We're currently gathering up as many floppies as we can find, because a DSHD release alone already needs 1.692 floppies. We're currently in contact with 3M to place orders for LD floppies, since those will require 6.112 disks per user.
We're currently accepting preorders for this amazing collectors edition, so head over to our registration page and pre-order your copy today!
Sven Co-op Update Released [Build 6130701 / Release 5.24]
24 January, 2021 | by AdamR
An update for Sven Co-op has been released. If you are running a dedicated server please use SteamCmd to update your servers. Those of you that were using the public release candidate can remain to do so, as this branch now matches the standard branch.
Changes are as follows:
Code
Game library
Changed default value for "sk_mortar" from 0 to 200.
Cheat commands will no longer forcibly reset a cheat state to off when an attempt to use one was made whilst not matching the alive condition or not passing the current cheats rule.
Christmas event: Present/Gift entities will now copy the `movetype` and `solid` keys from their original item entity.
Command myinfo/thatinfo will no longer show the "Is player ally?" line, as this is becoming less relevant with differing player classes.
Command myinfo/thatinfo will now show effects such as glow shell, gravity modifier, etc beginning with "FX". (Monsters and players only.)
Command myinfo/thatinfo will now show relative and absolute sizes.
Entities will now use their "team" key within the entity variables structure to hold a string with a classification tag, e.g. "player", "human_military", "team1", etc.
Entity "func_pushable" when lifted can now be thrown.
Entity "func_pushable" when lifted will no longer have a visible jitter motion.
Entity "func_pushable" will no longer raise by 1 unit on spawn to create a visible gap between it and the surface below.
Entity "item_inventory" has removed the (currently unused) player class filter, as player classes (similar to TFC) are not going to be a game feature. (Mappers will implement classes in their own way.)
Entity "item_inventory" now supports team filtering based on classification tag strings, e.g. "player", "team1", etc. (Multiple can be specified with semi-colon separators e.g. "team1;team2".)
Entity "item_inventory" will now make use of trigger targets for players on the same team. (Maps designed for release 5.23 and earlier will only do this if respective team trigger targets are defined, such as to not break existing "other" trigger targets.)
Entity "squadmaker" will now give its child monsters their target name prior to spawning. (Fixes repelling NPCs spawning instantly due to receiving a target name too late.)
Entity "trigger_camera" will now register a camera exit if a player disconnects whilst using the camera.
Entity "trigger_respawn" now supports player rappelling specified by spawn points.
Entity "trigger_script" eliminated potential race condition whereby it may automatically fire when in "triggered" mode but the "start on" flag is off.
Entity "trigger_script" when spawned in trigger mode and don't have a target name the state must initialise as ON, otherwise it would be impossible for this "trigger_script" to run ever.
Fixed a rare crash due to a null pointer in the HUD numeric display.
Fixed being unable to lift liftable pushables when they have no ground entity.
Fixed inconsistent NPC relationships with players not using the "player" classification.
Fixed item entities being mistakenly dropped to floor on spawn when their move type was set to "none".
Fixed player revival health not accounting for the map's maximum health setting. (For example if the maximum health is 80 then a revival should provide 40 health to the player, not 50.)
Fixed players losing their map defined solid mode when they got denied using a cheat command. (Such as the HLSP tram intro.)
Fixed projectiles not always colliding with breakables. (Such as the turret on Afrika Korps part 3.)
Fixed slanted viewing angle in observer mode or after being revived from observer mode.
Items will have their bounding box size set by a mapper if they declare "minhullsize" and "maxhullsize".
New entity "trigger_effect" so maps can directly add/subtract to monster/player effects (glow shell, invulnerable, non-solid, speed modifier, etc.) without needing to brute-force special entity keys or give them any "item_inventory".
When a dedicated server starts it check that an administrative contact is set, and show a warning if it's not.
AngelScript
Added a shared map script "hideandseek.as" for a Hide & Seek game mode any mapper can use:
Based on the behaviour of community map "SC5X Bonus".
Designed to do all the heavy lifting minimizing the amount of "control" entities a mapper needs to implement.
Provides simple map CVARs to flex its behaviour such as hiding time/speed/model, seeking time/speed/model, points awarded, and hider-to-seeker ratio.
See the accompanying "hideandseek.md" for usage instructions.
Added missing `Tokenize()` function and `String::NO_MORE_TOKENS` constant to `string` documentation.
Expose `CBaseEntity` functions:
`GetClassificationName()`: Get a full name for its classification. (E.g. "Player", "Human Military", "Team 2".)
`GetClassificationTag()`: Get a tag name for its classification. (E.g. "player", "human_military", "team2".)
Expose `CBasePlayer` functions:
`GetCheat()`: Get a cheat mode of a player.
`GetCheats()`: Get all cheat modes of a player.
`ResetOverriddenPlayerModel()`: Reset a player's temporary model.
`SendScoreInfo()`: Force an update of a player's score board information either to another specific player or all other players.
`SetCheat()`: Set/unset a cheat mode on a player. (Game cheat rules will still be enforced.) Plug-ins should no longer need to brute-force cheats by manipulating special entity keys.
`SetOverriddenPlayerModel()`: Change a player's model temporarily. (Does not change their preference.)
Expose definitions for MOVETYPE_NONE_EXPLICIT and SOLID_NOT_EXPLICIT. (Both are `-1`.)
Expose utility functions:
`BuildEntityLogString()`: For generating a log string for an entity.
`BuildPlayerLogString()`: For generating a log string for a player.
`GetPlayerLog()`: For fetching a log string for a player. (Use of this is usually preferred over `BuildPlayerLogString()`.)
Engine
Add delta compression security fixes from Valve.
Changed "hpk_maxsize" when 0 to automatically become a default value (4). (Use value -1 to disable spray caching.)
Corrected Windows EXE version strings.
Elaborated the error message about a DLL or BSP differing from the server's so players have a better understanding of what the issue is. (Currently only available for Windows players.)
Fixed NPCs or pushables flying off in random directions after interacting with odd-angled slopes or water boundaries.
Stop expanding mins/maxs by 1 unit when loading brush models.
Non-playable characters
Fixed NPCs not always playing a scripted sequence if dying.
Fixed crashing Osprey helicopters spawning living NPCs.
Fixed medical NPCs being unable to complete their revive sequence.
Fixed player made snarks and chumtoads not inheriting class from their owner.
Fixed scientists displaying as an enemy on HUD.
Fixed invalid tentacle eye position.
Ignore collision with players when the NPC's "iuser2" key is above 0. (Server-side physics.)
Sound
Fixed material load message being shown too soon. (When developer mode was level 2+.)
Fixed servers loading the material lists twice. (Minor performance enhancement.)
Increased materials limit to 4096 from 2048.
Show count of materials or sentences loaded. (When developer mode is level 1+.)
Show warning if material or sentence limit reached.
Weapons/Items
Fixed M16 firing effects appearing in random locations. (Especially noticeable on map "snd".)
Fixed odd weapon behavior when using tertiary attack with Gauss Gun, Gluon Gun, Hand Grenades, Shock Rifle, and Minigun.
Fixed players from harming or blocking other players with their Snarks or Chumtoads.
Maps
Black Mesa: Special Tactics Sector
Changed back to the non-Christmas version.
Fixed a rare crash.
Implemented multiple sky lights.
Rebalanced tier 5, particularly the overpowered Gonarch.
The Xen arena is not so bright.
Models
Non-playable characters
New forklift model.
SDK
Svencraft
Compile at below normal priority to not jam up the system entirely during extensive VIS/RAD processes.
Fixed compiler executable not running if the path to it included any spaces.
Larger process window, and centred on screen. (960x600)
Maximum objects raised to 65,536.
More modern font.
FGD
sven-coop.fgd:
Added "(x2)" to the end of descriptions for "ammo_ARgrenades" and "ammo_rpgclip".
Added entity "ammo_556clip".
Added entity "trigger_effect".
ammo_9mmAR: changed shown model from "w_9mmARclip.mdl" to "w_mp5_clip.mdl".
item_inventory: Updated classification list for NPCs.
item_inventory: Either uncommented or deleted various keys based on them being implemented or cancelled.
Written approximate radius distances for "ambient_generic" radius spawn flags.
Example maps
Added example map "___hideandseek" for using the Hide & Seek game script.
Updated example map "___item_inventory" for a fully functional two team based capture the flag scenario.
Misc
Moved default light definitions to "hl_lights.rad" and "zhlt_lights.rad". (Mappers are encouraged to use their own definitions, either set of standard definitions, or the "light_surface" entity.)
Other
Delta
Added "iuser2" to "entity_state_t".
Misc
Fix 1 pixel misalignment in the HUD when selecting the Spanner.
Updated Linux Steamworks SDK re-distributable binaries to build ID 6052876 to remove dependencies for desktop environments. (Fixes dedicated servers with no desktop environment needing to symlink with an alternative "steamclient.so".)
Version details
Steam build ID numbers: Game 6130701, dedicated server tool 6130704, SDK tool 6130705.
Please use the steam build ID number as a reference when posting an issue or query on our message boards. You can find the build number you currently have within Steam by right clicking our game or tools, selecting Properties, then selecting the Local Files tab.
Sven Co-op Update Released [Build 6008644 / Release 5.23]
24 December, 2020 | by AdamR
Hello everyone, it's been a while since we last gave you an update. Almost an entire year, and what a year! We're still here though, and have quite a larger package than normal this time round. hehehe
Big thank you to everyone that took part in the release candidate testing. We feel that this added value to the finalisation of this release, and hope to do the same RC testing next time round.
First and foremost, Hezus has built a brand new map "Search 'n Destroy", featuring a combination of assault and territory control styles of game play with up-to 4 playable classes to choose from.
Vote to play one of four difficulty levels based on your teamwork and toughness.
Please have a play with any amount of players and let us know what you think. -- The map's difficulty will dynamically adjust according to the player count. Beware that a late joiner on insane difficulty will use up the single spare ticket though, so be sure to have at least one medic playing.
If you are running a dedicated server please use SteamCmd to update your servers. Those of you that were using the public release candidate can remain to do so, as this branch now matches the standard branch.
Changes are as follows:
Notable changes
New map: Search 'n Destroy, by Hezus
Do not expose values of protected CVARs in auto-completion (e.g. "rcon_password"), show "***PROTECTED***" instead.
Fixed server browser not showing any results immediately after updating video settings. (No longer requires game to be restarted.)
RPG rockets are now flagged to not collide with allies by relationship. (E.g. players firing their RPG no longer need to worry about suicide due to another player running in front of them.)
Known issues
The following issues are new and known to us since the previous release. (Please don't file bug reports about these.)
NPC corpses may occasionally become solid for a moment during their dying sequence causing a minor block. (This should clear once the death sequence is completed.)
Scientist and medic grunts do not complete their revive sequence properly: They correctly identify whom they should be reviving, and start doing it, but at the end of the sequence the revive doesn't happen.
When a player is revived (by anyone) whilst observing they may respawn with a rolled view angle.
Code
Game library
Added column for armor level in the score board following the same colour codes as health column. (This will show as "N/A" for unsuited players.)
Automatically determine whether to spawn players crouched or standing: When spawning the player a trace is now used to determine if enough free space for standing is available. If the trace is obstructed, the player will always spawn in the crouched position. (This allows for players to spawn in things like vents or low ceiling areas.)
Breakable entities will now consider their classification relationship with an attacker when taking damage or repair.
Camera with cursor tweaks:
Minimum digital mouse action of 0.01 (10ms) to prevent command data explosions when holding a mouse button whilst viewing a cursor enabled cameras.
Added entity key "mouse_digital_action_reset" for mappers to change the wait/reset time between each digital mouse action, though there is still a minimum of 0.01 (10ms) imposed.
Do not check or set digital action next time (wait) if the action is empty or exit the camera.
Added keys "mouse_block_drag_*_*": This allows a mapper to block a repeated action from firing when a mouse button is held down then moved about whilst held. (E.g. constantly triggering a door open/close just by holding a mouse button and jittering movement a bit.)
NB: Digital mouse action means clicking, double-clicking, and wheel up/down. This doesn't apply to analogue actions, being moving and dragging.
Changed some bullet casing projectiles to use new models.
Cheat command "trigger" now has a server-side equivalent "s_trigger", which can be used via RCON or in a server console directly. (The server-side version cannot pass an activating entity to the target.)
Client command "mapinfo" will show a dump of all CVARs of which maps are allowed to edit in their configuration. (Useful for players to know if rogue server ops are messing about with physics.)
Client command "myinfo" and "thatinfo" will now show the chosen and current (if forced) model a player is using when directed at a player.
Client command "myinfo" and "thatinfo" will now work even when cheats are disabled when directed at a player, but only print a much more basic set of information.
CVAR "hud_fastswitch 1" will now cause the game to switch instantly to the next/previous weapon.
CVAR "mp_keep_globalstate" will no longer cause a (silent) memory allocation failure in the engine.
CVAR "mp_nextmap_ignore_mapcfg" when enabled (by default) will no longer allow map configurations to use the super ancient "nextmap" configuration option. (Mappers should have been using "trigger_changelevel" for well over a decade!)
CVAR "mp_npckill" updated to ensure full classification support:
0: An NPC will ignore damage if relationship is neutral or ally.
1: An NPC will never ignore damage regardless of relationship.
2: An NPC will ignore damage if relationship is ally only, and the attacker is a player OR the attacker and victim classes are identical. (Halfway between 0 and 1.)
CVARs "cl_mirror_disabled", "cl_monitor_disabled", and "cl_portal_disabled" (when active) will now draw the original texture in the map instead of an invisible space.
CVARs "mp_allowmonsterinfo" now has value 2 to show information for allies only.
Ensure server name is sent to clients when their HUD is initialised. (For the scoreboard.)
Entity "env_render" now supports "!activator" and "!caller".
Entity "env_sentence" spawn flag 1 added for "Activator Only".
Entity "func_tank" will now use it's "v_angle" property to decide its resting angle.
Entity "func_pushable" will now move much more stably with a player's movement. (Won't slide like they're made of and on top of ice.)
Entity "game_player_counter" can now be triggered to read a count at any time, and will store this in its "dmg" key for reading by other entities (e.g. trigger_condition) or scripts.
Entity "game_player_counter" now asks the engine how many players are present instead of trying to keep its own count internally.
Entity "global_light_control" can now target and change the appearance of switchable light entities.
Entity "global_light_control" will now search for a light entity defined by the "target_entity" key. (If a light entity is found it will update the light entity's corresponding style index to give the light a new appearance.)
Entity "item_inventory" keys "target_on_cant_activate_*" weren't meant to have "on_" in them. (The FGD, and maps, were correct.)
Entity "item_inventory" will no longer perform strict line of sight checking when the item is being triggered directly. (Either by a map or the "trigger" cheat command.)
Entity "item_inventory" will now respawn properly if a player disconnects whilst holding an item. (A drop with return is now forced.)
Entity "item_inventory" will now update its respawn position when moved by a "trigger_setorigin" more reliably.
Entity "path_waypoint" missing feature "Wait Master" added. If a wait master is specified for a "path_waypoint" the NPC will wait at there until the wait master has been triggered.
Entity "trigger_change_class" corrected "none" class unintentionally becoming "object default" at runtime.
Entity "trigger_change_class" corrected use type TOGGLE turning `m_fOverrideClass` off on itself instead of the target when this needs to undo a class override it had previously turned on.
Entity "trigger_changesky" can now change sky colour as well as sky name. (Either property can be left empty to not modify it.)
Entity "trigger_script" will now fire automatically when in trigger mode and the "Start On" flag is enabled. (It will use itself as activator and caller, and push use type toggle.)
Entity server logging text (including player stats) will now use a classification tag for the team field. (E.g. "player", "team1", "human_military", etc.)
Fixed a crash in with the HUD number display.
Fixed a lock-up sometimes occurring when exiting the game due to the Steam API not being given a chance to shut down.
Fixed a player exploit being able to evade a successful kick/ban vote by disconnecting/reconnecting during the poll if they rejoined in a different player slot.
Fixed a player exploit being able to start new polls when a current poll was in progress.
Fixed akimbo Uzis appearing for a moment immediately after changing map that carries inventory to a map that does not allow akimbo Uzis.
Fixed an infinite loop in the media player when only 1 song is in the play list and the random song option is enabled.
Fixed crossbow bolts bouncing off of entity brushes before exploding.
Fixed entities spawning via the "create" cheat command having incorrect angles if the player has a roll angle value greater than zero.
Fixed global entities not being preserved and discarded correctly between level transitions.
Fixed player command "+use" causing inconsistent player movement speeds and velocity. If holding "+use" the player's velocity is no longer clamped. ("+use" and "+speed" commands now share the same movement speed reduction defined by the "cl_movespeed" CVAR.)
Fixed player visible set (PVS) not being cleared when players are teleported directly, which could cause the "Too many entities in visible packet list." warning.
Fixed relationship between player and player ally classes not always being allied. (In some cases they were only neutral.)
Fixed wall clipping issue with custom muzzle sprites.
Function `CheatsAllowed()` now has an extra argument to not produce a message if a cheat command was denied. (Useful if a plug-in needs to check if a cheat is allowed in an way without informing the player because they hadn't tried to use one directly, or logging the "attempt" as a naughty player.)
Increased MAX_WEAPON_POSITIONS to 25 from 20.
Internal functions that kick a player from the game will now use integer user IDs instead of name, to ensure players with obscure names can't evade being kicked when necessary.
Item entities can now use move types none (via -1), toss (default), fly, and fly w/o collision.
Item entities can now use solid types none (via -1), trigger (default), and bounding box. (When an item is solid the custom hull size must also be set for the item to really be solid.)
Mortar damage is now controlled by a new skill variable "sk_mortar" instead of being hard-coded at 200. (Applies to mortar field and Opposing Force mortar cannon.)
New client command "hostinfo" to show some information about the server: (Some have been moved away from "mapinfo".)
Server name
Whether it's private (passworded), though won't reveal the password
Whether it's dedicated, and who the host player is if not
Administrative contact (based on CVAR "sv_contact")
Maximum players
Current map name
Next map name
Cheats mode
Number of entities
Number of pre-cached models
New classification for the missing shock trooper X-Race variant, used by both shock troopers and Voltigores. (ID 15.)
New classifications for four teams 1-4 (IDs 16-19):
Labelled Blue, Red, Yellow, and Green respectively.
Players inserted into team classes will show up coloured in the score board along with their name in text chat.
Players using team talk "messagemode2" will be private from other teams, or in fact any classification not allied to.
Players will not be able to see the health or armor values, and dead status, of players in rival classifications. (Both on the score board and when looking at them.)
Team classes will dislike every other class, and every other class will dislike team classes equally.
New client command "mapname" to show the name of the current map.
New client command "nextmap" to show the name of the next map. (Based on CVAR "mp_nextmap_cycle".)
New client command "playerinfo" to show some information about a player. (1 argument can be empty for yourself, or can specify a user ID integer, or quoted Steam ID.)
New effect flag "EF_NOSHADOW".
New entity flag "EFLAG_IGNOREGRAVITY" to prevent an entity being impacted by gravity (including "trigger_gravity"):
Applied to Alien Controller zap and head balls.
Applied to hornets, both by players and Alien Grunts.
New entity flag "EFLAG_PROJECTILE" to prevent an entity colliding with allies (by relationship):
Applied to RPG rockets so players firing their RPG no longer need to worry about blowing themselves up due to another player running in front of them just at the right (or rather wrong) moment.
New map CVAR "mp_allowplayerinfo" if player HUD info is permitted. (On as standard.) Should be useful for hide and seek, hur hur hur.
New server CVAR "mp_nextmap_parted_mapcfg_limit" allows a server to declare how many concurrent "nextmap" calls maps are allowed to make before it ignores them, only when "mp_nextmap_ignore_mapcfg" is off. (Set to "-1" to disable, also default, or 0 for no parting allowed.)
Player input is now just a range of -255 to 255. (Keyboard buttons will set forward to 255 or -255. Analogue will scale that. The speed key cuts in half, etc.)
Player rendering keys (mode, amount, colour, and FX) set by various trigger entities will now copy the new value to their original (or "standard") rendering properties, so that entity effects knows about it when re-applying them. (E.g. for items, Minigun speed adjustments, etc.)
Player server logging stats will show -1 health for dead players.
Player server logging stats will show armor value, with -1 for unsuited players.
Re-factored how player maximum speed is defined. Deprecated the need for cl_forwardspeed/cl_sidespeed/etc. (The corresponding CVARs have been removed.)
Removed "can't assess" messages from func_tank and monster_apache when using "developer 2"
Removed "Friendly" prefix from NPCs that are spawned as player allies without a customised display name. (No longer necessary.)
Removed many generic references to the redundant "skill" CVAR. Where it is still used for reading in map skill configuration it is forced to medium level (2).
Removed NPC and weapon references to the redundant "skill" CVAR.
Weapons now reset their render mode and render amount upon being picked up by a player. (This fixes the leftover transparency issue when a weapon is picked up while fading out and then dropped again.)
When an intermission is about to start clear the most recent HUD centre message before sending the intermission message as high latency may mean clients still see a historic message scan in place slowly.
When an intermission starts update everyone on the server name, next map, and player scores. (Should any of that have changed.)
AngelScript
Added `SetClassificationSpecial()` to fix issue with AngelScript crashing the game due to `SetClassification()`'s default arguments not being handled when registered.
Class CString now has a `Tokenize()` function to mirror the C++ `strtok()` function:
Includes thread safety.
This is designed to be used in a `white` loop.
Each call to `Tokenize()` with your delimiter character/string will return the next token string.
If your delimiter isn't found the whole string is returned as the only token.
Once the last token has been returned constant NO_MORE_TOKENS will be returned and resets the position of the last token to zero.
Corrected method documentation for `GetWeaponsBlocked()` in `CBasePlayer`, as it actually has a boolean return value.
Fixed a crash with `SetClassification()`.
Fixed a regression for AS get/set methods due to a change in language behaviour.
Fixed incorrect logic for the ShouldGibMonster() method when used with player in scripts.
Function `IRelationship()` now has a second parameter `bool fIgnoreNoTarget`, default false. This can allow a relationship check to ignore a non-targetable flag to fetch a relationship based on the original class, as non-targetable typically forces a neutral relationship. (Enabled internally for healing, repairing, reviving, score board rival info masking, etc.)
New CVAR "plugin_list_file_persistent" to let the server decide if it will reload or persist loaded plug-ins across maps. (Default on.)
Player variable `m_flMaxSpeed` has been removed to remove conflicts with maps and game entities:
Direct speed set via `pev.maxspeed` will no longer work.
Function `SetMaxSpeed()` and `GetMaxSpeed()` sets/gets a player's base maximum speed.
Function `SetMaxSpeedOverride()` and `GetMaxSpeedOverride()` sets/gets a player's temporary maximum speed, with -1 removing this override (for set) or indicating no override is set (for get).
Server plug-ins can now be included/excluded on map by map basis by using keys in the plug-in list file for each plug-in:
CVAR "plugin_list_file_persistent" must be switched off otherwise the "as_reloadplugins" command must be called by the server.
Key "maps_included" to run a plug-in only on the maps specified.
Key "maps_excluded" to run a plug-in on all maps apart from the maps specified.
Multiple maps can be specified in either key by splitting them with a semi-colon ';' delimiter. (E.g. "svencoop1;osprey;stadium4".)
Do not use both "maps_included" and "maps_excluded" keys! (This won't crash, it just won't work at all.)
Updated AngelScript to 2.34.0.
Voice banning is now bridged through the game library instead of going to the engine directly to remove competition between scripts and the game library.
Engine
Added engine client function to change sky colour.
CVAR "mapchangecfgfile" and related functionality is now removed.
Datagram overflow and msg overflow warnings now show the client and user ID they're referring to.
Do not expose values of protected CVARs in auto-completion, show "***PROTECTED***" instead:
Prevents sensitive CVARs such as "password" and "rcon_password" being exposed accidentally whilst streaming.
Submitting the name of these CVARs on their own and pressing ENTER will still expose the value in the console output, e.g. just submitting "rcon_password" will show what value you've got set but only when you press ENTER.
Fixed a lock-up sometimes occurring when exiting the game due to threaded networking not being given a chance to shut down.
Fixed a potential crash that could occur when out of range colour value was supplied from the client code. (Incorrect code, FP errors, etc.).
Fixed a potential crash when the engine is restarted (such as when changing video settings) if a server browser query was in progress.
Fixed a potential variable name conflict that would have caused packets to be sent to the wrong client.
Fixed flashlight spot not being displayed at the correct position for other players, and for the local client when in 3rd person view.
Fixed glow shell render FX breaking additive/masked textures on models.
Fixed issue with player's "notarget" cheat command preventing NPCs from entering combat.
Fixed maximum path length being 256 instead of the usual 260 "MAX_PATH_LENGTH" when loading the list of maps for the "Create Game" form.
Fixed server browser not showing any results immediately after updating video settings. (No longer requires game to be restarted.)
Fixed weapon animation playback de-synchronization problems when switching between first and third person
HPAK: Do not add lumps to pack when the maximum size is zero. (Prevents unnecessary additions to "custom.hpk".)
Improved performance of collision checking so that the game library/code is only asked after a basic exclusion test.
Increased MAX_LIGHTMAPS to 1024 from 512.
Increased network message size limits and allowed more resources.
Interpolation update / listen server visual improvement:
If entity interpolation was deemed non-viable for entities with a MOVETYPE besides MOVETYPE_NONE, MOVETYPE_WALK, MOVETYPE_FLY, or MOVETYPE_STEP, the given entity would not render. Those entities now always render regardless of interpolation checks.
Listen server clients will skip entity interpolation and instead use current entity origin and angles. This fixes visual artefacts where entities like the spore grenade would not render their glow correctly.
LAN games now perform IPv4 address checks using only known reserved ranges (RFC1918, RFC1122, and RFC3927) instead of a basic class B check. (This means anything outside the known reserved ranges will not work for LAN games.)
New VGUI event "NotifyOnExitToDesktop".
New VGUI event "OnExitToDesktop".
Portals (including mirrors and monitors) now function in full screen mode.
Server debug message "Too many entities in visible packet list." now shows which client and user ID its referring to.
Threaded networking:
This offloads handling of the incoming (not outgoing) packet queue to a separate thread away from the main server thread.
It has shown to reduce lag under high CPU load on servers with multiple CPU threads available (affinity of at least 2 threads), and partially mitigates denial of service attacks.
Now enabled by default for clients and servers. (Use switch "-nonetthread" to disable it instead of "-netthread" to enable it.)
Added Linux implementation.
Non-playable characters
Big Momma:
Fixed "Got a NaN velocity on bmortar" error message and prevent division by zero crash
Fixed division by zero: Clamp sv_gravity query to 0.1.
Fixed NaN result: Re-factor speed calculation: Don't perform sqrt() if input isn't greater than zero.
Fixed old Half-Life bug with "Gag" spawn flag not working.
NPCs now float properly in water. "MADWHACK" effect is also working properly now.
NPCs repelling that don't have a target name will now automatically spawn, otherwise they'd never spawn at all.
NPCs will no longer launch into the air if they're presently in water.
NPCs will now re-evaluate their relationship with their engaged enemy. If they're now friends since attacking begun the attacking NPC should stop attacking. (This also fixes a potential bug with "func_tank" and OP4 mortar unintentionally targeting allies.)
Shock Trooper's shock rifle impact now properly creates a lighting effect. (This fixes a regression with the network message.)
Xen Plants now make the default crowbar sound when attacked.
Sound
Sound effects played with out of range volume or attenuation levels will no longer cause the game to exit. Volume levels are now clamped between 0.0 and 1.0. Attenuation levels are now clamped between 0.0 and 4.0.
Volume and attenuation level precision (for sending over a network message) is now more accurate. Both values are now transferred and received correctly with a range of 0 to 255.
Weapons/Items
Fixed issue with "reload" player animation not playing if sniper rifle is reloaded while using scope.
Fixed potentially using uninitialized memory for muzzle sprite offset vectors and other particle effect properties
Shock roach will now be deleted from the world properly after a player drops it.
Entity "item_inventory" restored key "return_delay_respawn" to delay the item's materialisation when returning, like weapons/ammo/etc do.
ZHLT
Added switch to disable AAATRIGGER faces being converted to NULL.
Consistent switch behaviour between platforms. (E.g. Windows had "-estimate" but Linux had "-noestimate".)
Linux is now able to detect the maximum CPU threads available.
More consistency of the names of settings, and how they're displayed prior to each compile process beginning.
Statistic "maxallocblock" now states the correct amount 1024 instead of 64.
Updated MAX_TEXTURE_SIZE for 1024x1024 textures.
Vastly expanded "info_compile_parameters" to include pretty much every setting configurable from the command line:
This should reduce the requirement for a custom batch/script on a per-map basis as you'll be able to store various properties in the map itself.
This should also make compiling more consistent for maps built by multiple people.
Maps
Black Mesa: Special Tactics Sector
Added "trigger_changesky" so an area have it own sky.
Added Christmas decoration in the map.
Added Christmas player and scientist models .
Added a counter for the amount of monsters inside a sample.
Added a new way to understand which monster is inside a sample.
Added new special events which can change an area.
Added support for the new team classifications.
Changed escape maze a bit, random ways now.
Changed the flag item to be dropped after 45 seconds.
Changed the Gonarch HP, way less.
Changed the Xen area a little bit, now has a sky too.
Fixed the suicide bug, where player still got points for survival rounds.
CTF Warforts
Converted team classifications to team 1 (blue) and team 3 (yellow).
Search 'n Destroy
New map! Start with map name "snd".
Stadium 4
Each side is split into blue/red team instead of allied/enemy team.
Players can join the arena as a specific team using their respective portals.
Suspension
Added custom materials file.
Toonrun
Added custom materials file.
Configuration file consistency.
Fixed armor not being given when a player spawns. (25% was intentional.)
Models
NPCs
They Hunger:
Recompiled dog model to implement better hit boxes for the NPC (hungerhound.mdl, hungerhoundt.mdl). Fixes immunity to bullets.
Weapons/Items
Added They Hunger player weapon model for episode 3 MK2 grenade.
Fixed and updated SAW models. (P, V, W, and clip.)
Higher definition spore launcher view model.
New 11.2x33mm (.357 magnum) shell model.
New 7.62x51mm (NATO) shell model.
New SAW ammo model with 3D bullet belt.
Replacement 12GA shotgun shell model.
Replacement 5.56x45mm (NATO) shell model.
Replacement 9mm shell model.
Updated Opposing Force desert eagle, MP5, and SAW view port model in line with the standard. (Fixes muzzle attachments, and extra bullet body groups for the SAW.)
SDK
FGD
survival.fgd:
Added a default survival.fgd to make the survival script easier to use for mappers.
sven-coop.fgd:
Added "color" to "trigger_changesky".
Added "mouse_block_drag_*_*" to "trigger_camera" and "trigger_cameratarget".
Added "mouse_digital_action_reset" to "trigger_camera" and "trigger_cameratarget".
Added "movetype" choice "-1" labelled as "Unmoveable". (This kind of move type prohibits movement of any possible influence, with the exception of the move type being changed to something else at runtime.)
Added "solid" to base class "ItemWithDefaultModel" allowing mappers to set an arbitrary model as solid when paired with a custom hull size.
Added "zhlt_customshadow" (float or RGB float) to brush models to specify a custom shadow colour and opacity for opaque entities. (Either a single float from 0.0 (black) to 1.0 (invisible) can be used for greyscale, or three floats to represent RGB.)
Added "zhlt_embedlightmap" (boolean) to brush models to embed light maps to translucent brushes to give them localised lighting instead of being based on white / full bright. (Brilliant for glass and water!)
Added "zhlt_embedlightmapresolution" (integer) to brush models to embedded light map resolution. (Recommended figure is 4.)
Added "zhlt_invisible" (boolean) to brush models to make it never render, effectively nulls out a brush model.
Added editor model support for "item_inventory".
Added missing human grunt weapon choices in "squadmaker" and "monster_grunt_repel" for the RPG launcher and sniper rifle.
Flipped the choice labels for the "teleport_if_blocked" key value to match in-game behaviour.
New entity "info_compile_parameters" to define compiler settings from within the map. (Reduces need of batch files and hardens consistency among multiple mappers.)
Slight clarification to "item_inventory"'s "return_delay_respawn" description.
Removed "zhlt.fgd" as it's redundant. (Everything is in "sven-coop.fgd".)
StudioMDL
Fix floating point precision errors.
Other
skill.cfg
Added descriptions for misc bullets.
Merged Half-Life and Sven Co-op sections. (No need to keep these split now.)
Moved all behaviours dependent on the "skill" level into customizable variables:
sk_islave_speed_zap: Alien slave zap frame speed (1.0 as with easy/medium, was 1.5 for hard)
sk_apache_enable_rockets: Apache rocket launcher (ON as with medium/hard, was OFF for easy)
sk_hassassin_enable_cloaking: Female assassin cloaking (OFF as with easy/medium, was 1 for hard)
sk_grunt_handgrenades: Grunts throwing hand grenades (ON as with hard, was OFF for easy/medium)
sk_shocktrooper_enable_spores: Shock troopers throwing spores (ON as with hard, was OFF for easy/medium)
sk_plr_shockrifle_recharge: Shock rifle recharge amount (6.667 as with medium, was 10.0 for easy, was 3.333 for hard)
Sorted monsters based on their friendly name (e.g. "Alien controller" comes at "A", not at "C" for "Controller".)
Sorted player weapons based on their HUD selection order.
Misc
Opposing Force & Blue Shift installers:
Improved detection of Half-Life directory location on Windows.
Removed pre-packed node graphs, as it's best that the servers generate these themselves.
Removed "bshift_bsp_convert.exe" within the Blue Shift package.
svencoop.sh and svends_run:
Added message to warn user in case it is running the script from an unsupported shell. (Eg. "sh".)
Added message to warn user in case its distribution has an outdated GNU libc version. (Outdated, not supported, etc.)
Added the old game directory look-up back as a fall back in case the newer one fails. (For those who still insist on running with the old sh.)
Updated crash message with a "or failed to run". (╯°□°)╯︵ ┻━┻
Updated some comments in the script to make more sense for its functions.
Cosmetic changes.
svencoop.sh:
Added a fall-back to current relative directory in case the script fails to find absolute game directory.
Cosmetic changes to make shellcheck.net happy.
Fixed listing duplication in the dependency checker function.
Gracefully close when attempting to start it on MacOS with a message about the platform not being supported.
Updated game directory look-up method. Potentially fixes a issue where the script fails to get current absolute game directory (eg: on arch-based systems).
svends_run:
Added a last fall back to game directory look-up to use current relative path in case all available methods fails.
Updated the game icon (TGA) so that it has an alpha channel.
Version details
Steam build ID numbers: Game 6008644, dedicated server tool 6008647, SDK tool 6008648.
Please use the steam build ID number as a reference when posting an issue or query on our message boards. You can find the build number you currently have within Steam by right clicking our game or tools, selecting Properties, then selecting the Local Files tab.
Rent-A-Map™ with TimeShare® CANCELLED!!!
02ish April, 2020 | by Hezus
Yesterday we announced our new Rent-A-Map™ feature and the initial reactions were great! Paying a small fee to support development for something you could have used for free otherwise seemed to really inspire our playerbase.
However, it also inspired a bunch of lawyers to send us an email about the legal obligations once you call something 'rent'. Apparently once we rent out our maps we are also legally obligated to maintain and support said maps for the foreseeable future. This would not be a problem for our official maps, but since we were planning to apply the Rent-A-Map™ system to all custom maps out there (more than 1500!), we'll be maintaining maps for the rest of our foreseeable lives!
We were trying to make the maps make money for us, not the other way around. So, Rent-A-Map™ will be put on hold for now and we're going back to the drawing board to think up another way to make quick money with minimal effort. We're already exploring several routes, including lootboxes and nanotransactions, so stay tuned for more updates April First 2021!
We here at Sven Co-op work hard on new engine and gameplay features to bring you the best possible co-operative experience. However, we have been having a hard time delivering new official maps with our releases. We only want to give you the AAA+ material you good people all deserve but it takes a lot of time to create such maps. Many of our mappers only work on the MOD in their limited free time and need their day jobs to be financially secure. But now, we came up with a solution for both of these problems:
Of course you want to play Sven Co-op 24/7 but you also have to eat at some point, visit relatives or walk your dog. Plus, you can only play one map at a time, so for 99% of the time, all the maps in your library are unused! So, why pay a lot of money for a map you're only playing every now and then? Why own a thing you hardly use, when you can also RENT it for the time you are using it?
The solution: Rent-A-Map™! For only a small fee you can now rent a map of your choice for your server! Our handy Steam GUI will allow you to select your favourite map, set a rent time and your credit card, PayPal or Steam wallet info and you'll be playing it right away!
And of course you want your friends to join in! That's why we're also offering Rent-A-Map™ TimeShare®. Set the number of friends you want to share this map with and you can invite them straight into your game. You can get great discounts by using TimeShare®: up to 25% for a 16-player Time-Share®!
We're currently converting all official maps to the Rent-A-Map™ system, which will be activated in the next update of Sven Co-op! Our awesome new feature will give you all the convenience and us the funds we need to continue creating high quality content!
Sven Co-op Update Released [Build 4566677 / Release 5.22]
16 January, 2020 | by AdamR
An update for Sven Co-op has been released. If you are running a dedicated server please use SteamCmd to update your servers. Those of you that were using the public release candidate can remain to do so, as this branch now matches the standard branch.
Changes are as follows:
Notable changes
Fix for Windows 10 users using different DPI scales per-monitor.
Increased maximum weapons to 256.
Code
Game library
Commands "myinfo" and "thatinfo":
Show entity index in a header for slightly better formatting.
Show name for classification number.
Show whether that means the class is player allied or not.
HUD: Fixed an issue where scripted weapons failed to display their ammo sprites in the ammo history list, if two or more weapons shared the same ammo type, and the first one wasn't loaded.
Fixed buffer overflow caused by parsing muzzle script files with lines greater than 32 characters long.
Fixed an issue with "Unknown User Msg" being output to console. Caused by spore grenades on the first map load.
Map cycle:
Added server CVAR "mp_nextmap_ignore_mapcfg", which when enabled will ignore CVAR "mp_nextmap" being used by map configurations. -- Fixes the blight caused by really legacy maps misusing the "mp_nextmap" CVAR when they already had a "trigger_changelevel" entity.
Console now shows a message if the map cycle is going to be re-loaded including why.
File modified timestamp is now remembered, so that if a map cycle file is edited whilst a server is running this will be noticed (and reloaded) on the next map change.
Fixed a map series running in loop indefinitely.
Fixed potentially marking an invalid map as the cycle's first map when loading it.
The next map due to run, stored in CVAR "mp_nextmap_cycle", is now sent to players every 60 seconds along with the time left, so that the string in the score board is updated should the CVAR have been changed manually by an admin or by a server plug-in.
monster_sqknest: Fixed a crash that could occur when Snark Nest owned by entity other than Alien Grunt was destroyed (i.e. Snark Nests created by squadmakers).
multisource: Reverting changes from previous update that caused delayed triggers to be ignored by multisource entities. Fixes numerous maps which suddenly had issues with the release of 5.21.
trigger_changesky: Fixed a crash that occurred when the "Update all players" flag wasn't set and no valid activator was passed.
[Linux] The server library is no longer "libssl.so.1.0.0" and "libcrypto.so.1.0.0" dependent.
Engine
Increased maximum weapons to 256.
[Windows] Executables use an updated DPI setting for per-monitor high DPI awareness.
Maps
Half-Life Campaign
HL_C05_A3:
Fixed misaligned biohazard barrel texture on all pushable barrels.
Fixed the func_door_rotating fall-through-ceiling pipe being usable by players.
HL_C06:
Fixed the func_door_rotating fall-through-ceiling pipe being usable by players.
Suspension
Fixed lightmap problems
Sniper and Juggernaut now also get combat knifes
Changed glass texture inside osprey
Removed blue ambient from night mode
Delta
Increased weapon ID size to 8 bits from 7 bits.
Game manual
Index:
Added other social links.
Added SvenDS mailing list link.
Corrected Sven Manor entity guide link.
Maps Page:
Added SCMapDB links.
Removed ".bsp" from BSP name for quicker copypasta.
Added Abandoned. (Not sure why this was missing.)
Updated Dead Simple Neo 2 screen shot.
Corrected Robination to the revised version.
Misc
Map cycle: Removed duplication of "deadsimpleneo2".
Removed older bundled "libssl.so.1.0.0" and "libcrypto.so.1.0.0".
svencoop.sh:
Removed "libssl.so.1.0.0" and "libcrypto.so.1.0.0" files from dependency check.
Removed Steam Overlay library from LD_PRELOAD until engine crash in full screen mode is fixed. Steam overlay will not work on Linux for now.
Version details
Steam build ID numbers: Game 4566677, dedicated server tool 4566690, SDK tool 4566691.
Please use the steam build ID number as a reference when posting an issue or query on our message boards. You can find the build number you currently have within Steam by right clicking our game or tools, selecting Properties, then selecting the Local Files tab.
Sven Co-op Update Released [Build 4534884 / Release 5.21]
01 January, 2020 | by AdamR
An update for Sven Co-op has been released. If you are running a dedicated server please use SteamCmd to update your servers. Those of you that were using the public release candidate can remain to do so, as this branch now matches the standard branch.
Changes are as follows:
Notable changes
Black Mesa: Special Tactics Sector, level by Trempler, now has a serious balance fix. (No more red team permanently winning!)
Suspension, level by Hezus, now features night mode!
Level designers can now change the sky with new entity "trigger_changesky".
Map Compile Tools: Default subdivide value has been increased to 528. This improves world polygon subdivision on all maps, which increases frame rates, and opens the possibility for utilization of 512x512 textures without excessive subdivision.
Added log entries for a non-valid player edict leaving.
Command "myinfo" / "thatinfo": Hide some properties that are completely irrelevant to the entity you're asking about.
Command "myinfo" / "thatinfo": Show extra info such as target, master (if applicable), model skin, model body, move type, solid type, and effect flags.
Debug CVARs "cl_outline_sounds" and "cl_spectrum_debug" are no longer saved to player's config file.
Doors: Do not attempt to play move/stop sound (even "common/null.wav") when the sound string is empty or index choice is 0 (none).
Doors: Now play their locked sound on "+use" if locked.
Fixed "game_playerleave" not firing if the client that left somehow wasn't a valid edict.
Fixed client command "dropitem" blocking a drop call on the "item_inventory" if it can't be dropped by the holder intently.
Fixed empty server timer from not working if the client that left somehow wasn't a valid edict.
Fixed healing not working towards players using cameras or are invulnerable.
Fixed issue with ladders that freezes the game under specific circumstances.
Fixed missing sounds in demo recordings.
Fixed some locked sounds not being played when locked by master.
Host_Say(): Messages written by the server console will be logged with keyword "console" instead of "say".
Host_Say(): Put back a network message so players see their own text messages.
Host_Say(): Removed duplicate network message for text messages.
Inventory UI: Drop button will have a red border if you've selected an item that can't be dropped.
Inventory UI: Fixed icon string not being deleted when an item is dropped.
item_generic: Fixed pre-cache happening fully.
item_inventory: Fixed double-token ';' in key "item_name_canthave" creating a requirement for a non-existent item.
item_inventory: Fixed key "item_name_canthave" for trigger rules writing its value to `m_szRequiresItemName` (for "item_name") instead of `m_szCantHaveItemName`.
item_inventory: Implemented action string to handle multiple inputs for the UI instead of just dropall=true/false. (activate, drop, and dropall)
item_inventory: Items now have the option to delay their "activation" until the holder chooses.
item_inventory: Revised item attachment. Items are now attached to the player model's skeleton just like in Team Fortress Classic instead of just a crude origin copy.
Items: Console now shows a verbose message when its sequence is found (and it isn't "idle").
Items: Console now shows an error message if its sequence isn't found (and it isn't "idle").
Items: Sequence is now reset frame to 0 when being set. If the sequence isn't found the framerate is set to 0.
Map cycle: Fixed the cycle moving on a map when it's too soon to do so, because the expected next map hasn't run yet. This fixes cycles being broken (maps being skipped) due to either manual map changes off cycle, or multi-map series spanning 2+ maps causing a skip of 2+ cycle entries.
MOTD: Fixed "off-by-one" issue that caused memory corruption and crashes in some cases.
MOTD: Fixed a potential memory leak.
MOTD: Mission briefing text will now load from "maps/mapname.txt" if "maps/mapname_motd.txt" is missing or empty.
New cheat command "myfriction" to adjust your own friction value.
New cheat command "mygravity" to adjust your own gravity value. (This works as a multiplier against the world standard, so "1" means normal, "0.5" means half, etc.)
New entity: "trigger_changesky", allows mappers to change the sky texture of a map.
New network message "ChangeSky" to change sky map at runtime.
Physics object: Do not force a drop to floor if the move type isn't gravitational.
Pick-ups: Allow mappers to use move type 8, which disables gravity (like move type 5), but also disables incoming collisions.
Reverted client-side portal bullet trace effects to fix missing water splashes when shooting at shallow water.
Scoreboard now updates immediately for just-connected players.
Text messages from players will now appear in the console immediately.
trigger_counter: Remaining "to go" message now shown to the activating player on dedicated servers.
trigger_counter: Remaining "to go" message shown to all players if the activating player has gone.
trigger_counter: When "to go" is over 3 you're told how many there are instead of just "There are more to go".
trigger_push and func_conveyor move direction will now dynamically update after a move by a trigger_setorigin.
Updated "custom_precache" to support pre-caching additional sky maps. -- Useful if you'll be using "trigger_changevalue" or "trigger_copyvalue" towards a "trigger_changesky".
Wall health chargers deny use when players are at full health, instead of playing the looping healing sound and keep trying to heal.
When dropping ammo, it is now given directly to player in front of you. If there is no player, or the player there cannot take the ammo, it will drop traditionally.
AngelScript
API: Added the Seek method to CASFile for seeking through files, including the SeekFileFlag/SeekFileFlags_t definitions for specifying the seek mode. Also modified the registration order for CASFileSystem subtypes in order to allow previously mentioned additions to register properly.
API: Added PluginExit, an optional plug-in function that gets called upon removing/reloading a plug-in while the server is running. This allows server plugins to process and save persistent data as needed and clean up after certain objects that are otherwise not released until after changing the map, i.e. file handles.
Engine
Incremented version to 5.0.1.4.
Migrated to the latest Visual C++ toolset. Requires Visual C++ Re-distributable for Visual Studio 2019 (x86).
BSP files are checked for correct extension now (.bsp). (BSP files don't have their own unique signature, aside from the version number. The engine simply assumed that the model was a BSP if it didn't match any of the other known signatures.)
Fixed an issue where the "logaddress_add" command failed to detect duplicate list entries in some cases.
Fixed missing sounds in demo recordings.
GL model: 1024 surface extend size to match the map compiler's 64(x16) instead of 16(x16).
GL model: Show texture name with "Bad surface extents" to help mappers pinpoint the troublesome surface.
GL surface: Increase allowed light block size to 1600 luxels (from 324) to allow for BSPs subdivided at 528 (instead of 240).
Legacy sound engine: File loading is immediately aborted if one of the WAV info checks fails.
Legacy sound engine: File name is printed for all WAV info error messages.
Legacy sound engine: Made the "Invalid loop length" WAV info error message non-critical.
Made the "File has been modified since starting the engine" error non-critical.
Rewrote `PF_checkclient()` so that `FIND_CLIENT_IN_PVS()` works properly for multiple players in a server. Several other entities in the game rely on this function to evaluate whether or not to think. Most notably this update fixes the "monster_leech" freeze-in-place bug.
Steam P2P networking: Better error messages for connection failures.
The "sv_visiblemaxplayers" CVAR can no longer be used to advertise more player slots than there actually are. Values higher than the current slot count set via the "maxplayers" command are ignored.
The model loader provides more detailed error messages.
Non-playable characters
Alien Controller: Updated the bouncing ball attack entity to use the "WORLD_BOUNDARY" constant instead of Valve's hardcoded +/- 4096 values, allowing it to spawn and exist outside the old world boundaries.
Barnacles: Will now heal 20% of their lost health (if any) while they are digesting during their idle think, that is when you see them cough up gibs and make a chewing noise.
Nihilanth: Updated the default min/max height, the electric balls and the teleporter balls to use the "WORLD_BOUNDARY" constant instead of Valve's hardcoded +/- 4096 values. Prevents the Nihilanth from restricting its min/max height when height target entities aren't present, and allows it to use its attacks outside the old world boundaries.
Stukabat: Improved find-perch-to-hang-from behavior. Schedule now fails properly if a perch isn't found.
Weapons/Items
weapon_medkit: Primary attack now checks whether the target entity is actually alive before healing it, this fixes corpse prop healing for pseudo-dead entities like monster_*_dead.
Maps
Black Mesa: Special Tactics Sector
Converted red team to use classification "Human Military" (4) instead of "Machine" (1) to reduce the excessive advantage from damage resistance.
Converted non-team NPCs using "Machine" (1) to "Human Military" (4) to balance with the above point.
Half-Life: Uplink
Added a "Enable Survival mode?" vote after the "Everybody ready?" vote requires 70% yes votes to enable.
Added a clip box around player controller turret.
Added a lock to the button it will unlock if the first vote is no or if no one votes.
Clipped stairs to be invisible ramps.
Fixed a pipe not being connected to a other pipe near the sewer exit.
Set "zhlt_noclip" as 1 to player controlled turret to avoid players getting stuck inside of the turret.
Suspension
Now features night mode!
Added streetlights.
Added vote system for Day/Night mode.
Blocks under cables render/unrender.
Changed green lights to cyan in spawn.
Containers doors close after section ends.
Fixed small clip problem in sector 3.
Improved container textures.
Improved HINT/SKIP.
Improved lighting effects (new sprites and volumetric light models).
Improved wpoly by seperating func_walls/breakable brushes.
New HD portal sprites.
New HD textures.
New road texture.
New rope textures.
Recompiled with subdivide 528.
Remade teleport sprite to remove dithering.
Reworked bridge suspension cables.
Sides of the bridge render/unrender.
They Hunger: Escape
Optimized wpoly around the map. Recompiled with new compilers featuring subdivide 528. (Map should have overall lower wpoly.)
Models
Weapons/Items
Medkit: Updated OP4 medkit view model to use Norman's improved model with glowing buttons.
NPCs
Classic Scientist: Recompiled model into a single file.
Classic Scientist: Tweaked some animation events that used old Half-Life sound methods (*path/.wav)
Other
Restored mouth controller for the They Hunger head models; Tweaked normals/smoothing groups; Minor tweak to UV map for einarhead.mdl
Updated models used as inventory items to reflect the changes to the player bone merging code: Suspension (bomb), They Hunger Escape (battery, gas can, toolbox), Robination (gasmask)
SDK
Svencraft
Migrated to the latest Visual C++ toolset. Requires Visual C++ Re-distributable for Visual Studio 2019 (x86).
2D view options: Implemented default grid zoom. Choices are 0-10, with 1-10 mimicking the keyboard shortcut zoom levels. (10 being the level for your 0 key.)
Enlarged the "Check for map problems" dialogue so it's more readable.
Fixed a buffer overrun in the FGD token reader.
Maximum length of key identifiers is now 256 to match our engine.
FGD
Added "move type" choice "8", "Hover in the air, ignore brush collision", to applicable classes.
Added "trigger_changesky".
custom_precache: Updated to allow pre-caching of sky maps.
"holder_time_activate_wait" - Holder: Delay between self-activations (0 = none)
"holder_can_activate" - Holder: Allowed to self-activate
"holder_timelimit_wait_until_activated" - Holder: Hold time limit doesn't start until item activated
"target_on_activate" - Target: On self-activate (self)
"target_on_activate_team" - Target: On self-activate (team)
"target_on_activate_other" - Target: On self-activate (others)
"target_cant_activate" - Target: On can't self-activate (self)
"target_cant_activate_team" - Target: On can't self-activate (team)
"target_cant_activate_other" - Target: On can't self-activate (others)
"effects_wait_until_activated" - Effects: Wait until item is self-activated?
trigger_camera: Corrected missing word "Double" from "Left Double Click Param" and "Right Double Click Param".
Map compile tools
Added AVX2 binaries for those of you lucky enough to have such a modern CPU (You may experience a very splendid benefit indeed during VIS and RAD.)
ZHLT Compile Tools: Default subdivide value has been increased to 528. This improves world polygon subdivision on all maps, which increases frame rates, and opens the possibility for utilization of 512x512 textures without excessive subdivision.
"DEFAULT_SUBDIVIDE_SIZE" now just reads "MAX_SUBDIVIDE_SIZE" directly.
Surface extents now go up to 64 instead of 16, because we don't need to worry about software rendering any more.
Other
Game manual
Updated team / credits page.
Misc
FindHLDirectory.bat: Fixed a case where pInstallDir was wrongly identified as empty when it isn't.
FindHLDirectory.bat: Implemented a new search method which uses Steam installation path as start point and scans through all user's library paths. Users aren't required anymore to run Half-Life once to write ModInstallPath, as this method cover these cases where the user owns Opposing Force and/or Blue Shift but not Half-Life (the only one capable of writing ModInstallPath registry).
Fixed seams in the xen8 sky. Now seamless and correct angles on the 'dn' texture.
svencoop.sh: A dialog box with a link to our public Discord server is now displayed in case of game crash.
svencoop.sh: Added a dependency checker which enumerates and notify the user about any missing library in their system. Supports multiple dialog box types picking one that is installed in the system (zenity, gxmessage, kdialog, yad, xmessage), as well as printing to Steam stdout.
svencoop.sh: Added -nosteamruntime launch option which disables the usage of Steam runtime libraries and use system's provided instead. This behaviour is automatically enforced if Steam client is launched with STEAM_RUNTIME=0.
svencoop.sh: Fixed Steam overlay not working on Linux.
svencoop.sh: Reset $PATH to system default env (without Steam additions) when running with -nosteamruntime parameter.
svencoop.sh: Script now prints on terminal/Steam stdout some extra information, such as GNU C version and all defined environment variables during runtime, when launching the game to help diagnose game launching issues.
Text UI resources: Use spaces for tabs, remove confusion from editors.
Titles: Added entry for activating an item (inventory).
Titles: Added entries for the MOTD/briefing buttons.
User advanced settings: Added drop down for Discord rich presence options.
Version details
Steam build ID numbers: Game 4534884, dedicated server tool 4534885, SDK tool 4534886.
Please use the steam build ID number as a reference when posting an issue or query on our message boards. You can find the build number you currently have within Steam by right clicking our game or tools, selecting Properties, then selecting the Local Files tab.
Sven Co-op Update Released [Build 3735813 / Release 5.20]
14 April, 2019 | by AdamR
An update for Sven Co-op has been released. If you are running a dedicated server please use SteamCmd to update your servers. Those of you that were using the public release candidate can remain to do so, as this branch now matches the standard branch.
Changes are as follows:
Code
Engine
[VGUI2/GameUI] Fixed paste command not working for password fields.
[VGUI2/GameUI] Number pad Enter can be used to confirm choices, buttons, dialogs, etc.
[Networking] All recvfrom/sendto related socket errors are now non-critical (similar to Source engine). To see socket related errors set the "developer" CVAR to "1" or higher.
Fixes the "ERROR: Network is unreachable" shutdown on Linux.
Fixes the "ERROR: NO ERROR" shutdown on Windows.
[Networking] Proper error messages are now printed for recvfrom/sendto errors on both Windows and Linux (Linux-only previously).
Added few security fixes present in vanilla GoldSrc but missing from Svengine.
Disabled post-map change texture stats. ("gl_texstats" still works as before)
Fixed multiple info string exploits.
Fixed unsafe string handling in DLL interfaces.
Version details
Steam build ID numbers: Game 3735813, dedicated server tool 3735815, SDK tool 3735816.
Please use the steam build ID number as a reference when posting an issue or query on our message boards. You can find the build number you currently have within Steam by right clicking our game or tools, selecting Properties, then selecting the Local Files tab.
Sven Co-op Update Released [Build 3695902]
01 April, 2019 | by JPolito
Normally I'd like to report good news concerning Sven Co-op to you but, sadly, this is not such occasion. Last week one of our senior developers, Adam, suffered a grave injury while working on our new bug tracking system. It turned out one of our repository servers wasn't correctly installed in its bracket and came loose and hit Adam on his pinky toe. While our lives as developers are mostly fun and games, moments like these make you realise how precious life is and how important workplace safety can be.
While Adam held an icepack on his toe, we started discussing how our MOD's content doesn't reflect our newly found believes about safety in the workplace. Especially our cornerstone, the Half-Life campaign, is a terrible example of the use of safety measures and this is not how we would like to portray ourselves any longer. So, we'd like to present to you:
We've worked hard to bring you a better version of Half-Life Co-op: a version where workspace safety isn't neglected and things go according to protocol. No one has to suffer any injuries or even think of the possibility of dying on the job in this improved installment! So, make sure to play our new version through the SP Portal map! We're eagerly awaiting your feedback and are already on the way to adjust our Blue Shift campaign to feature the same high standard of workplace safety. Also, we'll be cutting the complete Opposing Force campaign from the game, since (with improved safety protocols) the Black Mesa accident did not happen.
Check out our preview with some of the new high-lights of the improved campaign!
If you are running a dedicated server please use SteamCmd to update your servers. Those of you that were using the public release candidate can remain to do so, as this branch now matches the standard branch.
Changes are as follows:
Notable changes
Implemented Steam P2P (peer-to-peer) based network layer. Allows players to host listen servers without the hassle of port forwarding. (usage: "connect STEAM_1:1:12345678")
The Anomalous Materials Laboratory in Half-Life now follows proper workplace safety regulations.
Our version of Hammer has been renamed to Svencraft to ensure the changes from our engine customisations are distinguished from vanilla GoldSrc map editors. (Mainly Hammer.) -- There is a new subsection for this in the SDK section towards the end.
Code
Game library
[Sound Engine] File names with spaces are parsed correctly now (Note: Even with this change it's still not recommended to use spaces in file names).
Implemented Discord rich presence.
Removed cached.wad, no longer needed (only used by the old WON builds for the console background image). The engine now skips this file if referenced by the "wad" key value.
Engine
[Event System] Event directories are now mounted as read only. Fixes BZ2 compression not working for the sound cache file.
[FastDL] Added URL encoding. FastDL should now work for files containing spaces and/or special characters.
[GameUI] Fixed Options Dialog not displaying all required tabs in some games.
[MP3 player] Added new commands "cd list" and "mp3 list" - prints the current track list.
[MP3 player] Fixed MP3 music not playing in some games when loading new map (i.e. "c0a0" in Half-Life).
[MP3 player] Removed support for audio CD playback. All games that were using the legacy CD audio are now available with MP3 soundtrack, so this feature is no longer needed. Fixes an issue where the game would start playing audio CD, if there was one present in user's optical drive.
[MP3 player] The player now supports custom track lists (media/tracklist.txt). The default track list is still hard-coded in the engine and will be used as a fallback, if custom track list file doesn't exist.
[VGUI2] RichText: Fixed text selection starting with a new line character even when it shouldn't. Fixes a common problem where text copied from the developer console wasn't accepted by the console input line.
[VGUI2] TextEntry: The copy-paste feature no longer skips the last character for multi-line TextEntry components.
Added disconnect countdown to the "WARNING: Connection Problem" message. (Similar to Source.)
All "gfx.wad" related errors are non-critical now. (Worst case scenario, the "PAUSED"/"LOADING..." images won't be visible.)
"cl_timeout" values less than or equal to 0 now mean "no timeout". Fixes an issue where the client got disconnect immediately after joining a server, if "cl_timeout" met this condition.
Dedicated server no longer loads "gfx.wad" as it doesn't need it for anything.
Fixed the "heartbeat" console command. Forces heartbeat refresh of master server (Steam).
Fixed the "lambert" CVAR. Can be used to tweak studio model lighting (together with the "direct" CVAR). Requires "sv_cheats 255".
Fixed the "MAX_GLTEXTURES" client error. Studio and sprite textures are now unloaded after each map change. Added new debug command, "gl_texstats".
Implemented Steam P2P (peer-to-peer) based network layer. Supports NAT traversal and Steam relay servers. Ideal for listen servers. Can be disabled by adding "-nop2p" to launch options.
Improved OpenGL state consistency between the various draw methods. Fixes UI transparency not working correctly in some cases (i.e. VGUI2 text selection).
Map WAD loader now ignores following special WADs: gfx.wad, cached.wad, and fonts.wad, in addition to already ignored pldecal.wad/tempdecal.wad files.
Map WADs are now checked for correct lump type. Only lump type 67 (0x43, mipmapped picture) is allowed, other lumps are ignored. (Loading them could cause access violation.)
Migrated the engine to C++ and the latest Visual C++ toolset. Requires Visual C++ Re-distributable for Visual Studio 2017 (x86).
Removed support for 16- and 24-bit color depths (including the "-16bpp", "-24bpp", and "-32bpp" launch parameters). This is no longer useful as all relevant video adapters/drivers support 32-bit colors without any performance or compatibility issues. (The feature was broken anyway since the SteamPipe GoldSrc update.)
The engine now checks if there is room for another map WAD before loading it. (max. 128 map WADs)
Updated Steam API and libraries to version shipped with the latest Steamworks SDK (v1.43, 20th February 2019).
When joining a password protected server the user is prompted to (re)enter the password, if the "password" CVAR is empty or invalid.
Maps
Half-Life Campaign
Implemented workplace safety level alterations.
Half-Life Single Player Portal
Implemented workplace safety level alterations.
They Hunger
Implemented high-quality radio station music loops and ending credits music (Loungemeat - You Are What I Eat).
[TH_EP2_04] Removed the seamless teleport in the stairwell and merged both halves of the map together. Reworked some rooms so that they would fit. Optimized clip nodes.
Sounds
Weapons/Items
[They Hunger Weapons] Monofied all sound effects and increased volume for tesla gun effects.
SDK
Svencraft
Our version of Hammer has been renamed to Svencraft to ensure the changes from our engine customisations are distinguished from vanilla GoldSrc map editors. (Mainly Hammer.)
2D views now show angle/size for brush transformations.
3D view clear color can be changed from the "Options" dialog now. Defaults to teal.
Active 3D views are now refreshed by a timer - results in more stable frame rates.
Added new file filter option that displays both RMF and MAP files.
Added support for animated textures.
Added support for masked textures.
Added support for NPOT textures.
Added support for "sequence", "skin" and "body" key values.
Added support for transparent objects.
Default texture name is now saved per-game.
Enabled anisotropic texture filtering.
Face texture edit:
Larger texture preview to fit the widened dialogue.
Scales, shifts, and rotation will now be normalised up to 6 point precision instead of 2 point. (This fixes very precisely fitted textures being wrongly rounded when revisiting that face in the tool.)
Scales, shifts, and rotation will now have trailing zeros (and a subsequent trailing dot for whole numbers) trimmed. -- Expect nice and precise numbers like 1, 2.25, 1.325, 2.62421, etc. (No more 1.00, 2.50, etc.)
Using the justify options will no longer produce negative numbers or numbers equal to the texture size in the shift. (You should see zero figures more often when no shifting was really required.)
FGD Parser:
There is now an error message if the target FGD file does not exist.
Strings and tokens can be up to 1024 characters long now (was 128).
Fixed a freeze issue when parsing long strings (>128 chars). Error is displayed for strings longer than 1024 chars.
Fixed an issue where long comments (>512 chars) could cause parsing errors. Comment length is now unlimited.
File paths can now be up to 260 (MAX_PATH) characters long (was 128).
Fixed a potential crash issue caused by long status/error messages. Unified size of all message buffers.
Fixed studio models animating too fast, if there is more than one instance of the same model.
Game configs are now saved as XML. -- The editor can still load old binary WC game configs, but it can't save in that format any more.
Message window supports text selection and clipboard operations.
Messages generated early during the startup process are buffered (instead of being thrown away) and copied to the Message window once it's available.
Object properties:
Implemented angle dials for pitch and roll.
Implemented angle drop downs containing commonly used angles. (Can be disabled in the options.)
Interface tweaks to improve usability.
Key value changes are now applied immediately. It's no longer necessary to de-select the entity for the changes to take effect.
Smart Edit mode setting no longer resets when switching between entities.
Studio model animations now reset back to frame 0 when animations are disabled by the user.
Texture browser:
Added new scale/size modes: 400%, 200%, 100%, 50%, 25%, 32x32, 48x48, 64x64, 96x96, 128x128, 192x192, 256x256, 384x384, and 512x512.
Added option that will stretch small textures when in tile mode.
Fixed a problem where it wasn't always possible to scroll to the very top when using mouse wheel.
Fixed horizontal scrollbar being always visible even when not needed.
Polished the UI.
Set the filter combo-box to always have focus when opening the texture browser.
Texture group (WAD name) is now displayed for the selected texture.
Texture names are properly clipped now.
Texture previews maintain aspect ratio of the displayed texture (optional).
Window now has proper icon.
Texture filtering modes can be changed on-the-fly now. Multiple modes available: None, Bilinear, Trilinear, and Anisotropic 2x - 16x.
Texture lists are now saved per-game.
The crosshair in 3D views is now perfectly symmetrical.
Up to 100 WAD files may be loaded at once when adding WADs to a game configuration.
User Interface:
Added controls for the new rendering features to "Options->3D Views" (animated textures, NPOT textures, texture filtering modes, alpha blending, masked textures).
Added "Rename" button to the "Game Config" dialog. Added confirmation dialog for the "Delete config" operation.
Added "Reset" button to the texture dialog.
All dockable windows are resizeable now.
Cleaned up toolbar bitmaps. Fixed transparency.
"Editor options" and "Game configurations" are two separate windows now.
Message window is now dockable.
New "About" dialog.
New splash screen and program icons (courtesy of DGF).
New toolbar for file operations (New, Open, Save).
New toolbar and menu for rendering options (Masked textures, Animated textures, Blending, Studio model rendering, Studio model anims).
Replaced the old "MS Sans Serif" UI font with "MS Shell Dlg" (TrueType font).
Tweaked many dialogs for better user experience (bigger texture previews, more space for file lists, horizontal scrollbars for overflowing fields, etc.)
Updated the application to use MFC Feature Pack (better look and feel).
Updated the "Web Resources" menu.
Visgroups are no longer displayed after a map is closed.
When adding new WADs the list is checked for duplicates. Files that are already present on the list are skipped and the user is informed about what happened.
World size can be changed per-game.
Version details
Steam build ID numbers: Game 3695902, dedicated server tool 3695904, SDK tool 3695905.
Please use the steam build ID number as a reference when posting an issue or query on our message boards. You can find the build number you currently have within Steam by right clicking our game or tools, selecting Properties, then selecting the Local Files tab.
20 years of Sven Co-op! -- Sven Co-op Update Released [Build 3482406]
19 January, 2019 | by AdamR
Nothing interesting ever happens on a Tuesday. Except for January 19th, 1999. This is when Sven Co-op beta 0.8 was released to the just recently formed Half-Life community. When it became clear that Half-Life (unlike its predecessors Doom and Quake) would not have a co-operative mode, the community took the task upon itself to fill the void Valve left behind. One of those people was Sven Viking.
At this point, Sven Co-op was not much more than a proof of concept, or to put it into Sven's own words: "mostly just to give everyone an idea of what I'm doing, partly because of various bugs in the map that I don't know how to fix :)". At this point the mod consisted of only one map and a few scripts. Sven found help sorting out the initial problems he was facing and the few rooms that made up beta 0.8 quickly grew into a full fledged map, which was released in early May of that same year.
This all happened 20 years ago, in a time when, for many people, going on-line was met with dial-up tones from your modem, playing games on low resolution software rendering and a latency of 300 ms wasn't something to complain about. Luckily for us all, technology has moved forward and so has Sven Co-op. Ever since that first map, SC has tried to push the boundaries of what is possible with Half-Life. We've seen thousands of maps, models and other custom assets made by our community members, millions of downloads and, most importantly, countless hours of co-operative game play fun!
After two decades, Sven Co-op still has a steady and rich player base and a dedicated group of talented developers and we believe, especially since our standalone release on Steam in 2016, that there will be much more to look forward to in the future!
Come celebrate Sven Co-op's anniversary with us by joining the servers and make sure to give "svencoop1" a replay for old times' sake. We'll be there! For the nostalgic or the curious, the original website from 1999 is available here. This is also where you can still find the original beta 0.8!
An update for Sven Co-op has been released. If you are running a dedicated server please use SteamCmd to update your servers. Those of you that were using the public release candidate can remain to do so, as this branch now matches the standard branch.
This is officially the first release to drop support for Windows XP/2003, Windows Vista/2008, and Linux with GLibC earlier than version 2.24. -- Sven Co-op may fail to work completely on those operating systems. More information
Changes are as follows:
Notable changes
Event system to adjust various content according to the event. -- Content for our 20th anniversary included.
Better support for Stretch and Buster versions of Debian Linux.
Code
Game library
Linux specific:
Added local build of LibSSL 1.0.0, so secure connections will now work on Stretch and Buster versions of Debian.
Removed "vgui2_controls.a".
Removed i486 binaries.
Removed local build of LibSTD C++ 6.
Updated local build of LibCURL to 7.63.0, and fixed the certificate authority path not being correct for some distributions.
AngelScript
Added new hooks: PickupObject::CanCollect, PickupObject::Materialize, PickupObject::Collected.
DamageInfo.pVictim is no longer constant. (Fixes casting issues.)
Documentation: Changed how hook description is handled and added description for all existing hooks.
The plug-in manager can handle multiple plug-in lists now.
Updated AngelScript to version 2.33.0 (22nd December 2018).
IMPORTANT: Arrays no longer contains a "length" property. Getting the length of an array must be done with "array.length()" instead of "array.length".
Engine
Added support for wide-screen menu backgrounds. In wide-screen mode "BackgroundLoadingLayoutWide.txt" / "BackgroundLayoutWide.txt" definition files are checked first, and if not found "BackgroundLoadingLayout.txt" / "BackgroundLayout.txt" is used as a fall-back.
All search paths are cleaned up before they get registered by the file system. (This should fix path inconsistencies caused by the SvenDS launcher still returning relative paths on some Linux systems.)
Both launchers (client and server) now use the same method when building their "basedir" path. (The server originally returned "." instead of the actual absolute path causing content to be missing if you hadn't set the shell's working directory first.)
Dedicated server UI:
Fixed dedicated server not starting properly occasionally when launched in the UI mode.
Fixed graph axis labels.
Fixed some fields not initializing properly until a minute later.
Detailed information is provided if client or server library fails to load. (This is especially useful on Linux where it should report any missing ".so" dependencies.)
Files created by the engine (server logs, tempdecal.wad, custom.hpk, user.scr, settings.scr) now use the "GAMECONFIG" PathID to make sure they will always end up in the main game directory ("svencoop") even if some other path was added later on ("svencoop_hd", "svencoop_event_*" etc.).
Fixed an issue where the key value parser accessed and potentially corrupted memory beyond the terminating zero if an empty string was passed in.
Fixed an issue where the string loaded from background layout files wasn't zero-terminated correctly before parsing.
Fixed buffer overflow and some unsafe string operations when un-mounting file system paths.
Fixed buffer overflows in demo parsing. (HL Github issue #1654)
Fixed heap corruption issue that would occur when destroying stack-located instances of UtlBuffer.
Fixed Mod_Extradata() accessing model data incorrectly for sprites.
Fixed some garbled and/or misleading error messages.
Fixed script includes not working between the different game folders ("svencoop", "svencoop_addon", "svencoop_downloads", etc.) on dedicated servers.
Host_EndGame messages are always printed to the console now, even if the "developer" CVAR is set to "0".
Legacy sound system: Removed support for automatic ambient sounds, including the "ambient_level" and "ambient_fade" CVARs. (Quake feature, broken and unused in GoldSrc.)
Linux: Fixed a client crash when changing video settings.
Linux: Removed i486 binaries.
More specific reason is provided if the engine fails to create an SDL Window.
Server Browser: Removed default ping ports not related to GoldSrc based games.
Resolution of chrome textures is no longer locked to 64 x 64 px.
The UI code now uses separate pathID "UI" to load resources. (Only relevant paths are searched now.)
Video Options: Everything with aspect ratio >= 1.4 is considered as a wide-screen now.
VGUI2:
Combo box, check box, radio button, scrollbar, and frame now use Marlett font glyphs for their graphics.
Fixed editable panels not resizing correctly.
Fixed fonts being too large on Linux compared to Windows. (Proper height to PPEm calculation is used now.)
Fixed some fonts not loading on Linux.
Minor visual tweaks to some of the VGUI2 controls.
Sound
Attack trace line strike sound now uses the new dirt/grass impact for CHAR_TEX_DIRT
If a material definition is too long it will be trimmed until it fits. (Still logged it as a warning though for the mapper's attention.)
Non-playable characters
NPCs using an MP5 will now use 1 of 3 sounds randomly when firing instead of just 1: Bodyguard, human grunt (HL and OP4), male assassin, and robot grunt.
[HWGrunt] Will now stop firing the minigun if launched into the air.
Weapons/Items
Fixed a holder's item (item_inventory) list pointer being wrongly nulled even when they still have items, for example ones that can be kept on respawn.
Fixed an issue where the active weapon wouldn't get detached from the player when he died and used cheats to revive himself.
Fixed ammo and weaponbox entities not firing their targets when collected.
Fixed the player's MP5 only pre-caching and using 1 sound instead of all 3.
Weapon pick-ups now retain their target name, target, colour map, skin, and body when respawned.
Events
All options are described directly in "event_info.txt".
Console commands:
"ev_list" - lists all detected events
"ev_scan" - scans for new/updated events
"ev_curtime" - prints the current (UTC) time as returned by Steam API
Moved second checkpoint away a bit and placed it next to the chair inside of generator room.
Crystal
[Part 2] Added one barnacle weapon right below checkpoint at middle of jumping puzzle.
Judgement
Added objective signs in the central area.
More explosives available.
Reduced Garg HP from 3000 to 2500 on hard.
Reduced round time from 10 to 7 minutes.
When playing with reduced weapon respawn rate: Weapon respawn frequency changed from 7 to 5.5 minutes.
Single player campaign portal
Added They Hunger campaign.
Changed paths of sounds, models and scripts to one name pattern.
Sounds
Other
New impact/ricochet sounds for dirt/grass and sand/gravel.
SDK
FGD
Added "Glow Shell" to render effects.
Map compile tools
MAX_MAP_PLANES is now 65535. (Limit of 32767 was only there for the faces limit, which is now 65536.)
StudioMDL
Bones with attachments are always preserved.
Brand new help screen.
New command line argument "-k": keep all unused bones.
New QC command "$keepallbones": keep all unused bones.
New QC command "$keepbone <bonename>": keep specified bone even if unused.
New QC command "$protected <bonename>": same as "$keepbone" (Added for compatibility with DoomMusic's StudioMDL).
Removed UV clamping. (This was only ever supposed to be used in the removed "$cliptotextures" mode.)
Resolution of chrome textures is no longer locked to 64 x 64 px.
Tweaked few error messages; added new warning messages.
Other
Misc
Linux SvenDS launcher:
Added a warning message for users running as a root (why would you do that?
Double quotes wherever was needed to avoid issues with spaced strings.
Host CPU family below 6 (i486) will just quit the script. (We're not in 80's/90's any more!)
If "-map" is not specified at start-up, _server_start is used by default. (Can be disabled with "-nodefaultmap".)
Improved auto update feature:
Added support for updating with passworded branches. (-beta_password)
Added support for SteamCMD script. (-steamcmd_script)
Tries to auto detect SteamCMD binary location if "-autoupdate" is specified without "-steam_dir", either from system installed (package manager) or "$svends_dir/steamcmd" folder (vanilla GoldSrc way). User defined "-steam_dir" overrides this even if it is invalid! (Skips auto-update if none is found.)
Increased "ulimit -c" max core file size settings to "unlimited". (This has no effect without "-debug" parameter.)
Lots of optimization and standardization.
Re-implemented auto detection for CPU vendor and selecting proper binary (svends_i686 or svends_amd). This was previously available in older GoldSrc script. (Can be overridden with "-binary" parameter.)
Removed unused console log option.
Replaced forum URL with Discord vanity URL in crash message.
Server example configurations:
Added a read-me to guide you though what the folder is for and how to use it.
Added more profile examples with lots of improvements.
Changed "sv_zmax" to 32768.
Changed misspelled "sv_player_log_frequency" CVAR name to "sv_log_player_frequency".
Renamed "servers" to "servers_example" so Steam updates don't ruin your changes.
Removed "platformconfig/InGameDialogConfig.vdf".
Removed reslist files.
Version details
Steam build ID numbers: Game 3482406, dedicated server tool 3482409, SDK tool 3482410.
Please use the steam build ID number as a reference when posting an issue or query on our message boards. You can find the build number you currently have within Steam by right clicking our game or tools, selecting Properties, then selecting the Local Files tab.
Dropping support for Windows XP/2003, Windows Vista/2008, and Linux GLIBC <2.24 as of Sven Co-op 5.18
11 December, 2018 | by AdamR
We would like to take this opportunity to inform you all that as of our next release (5.18) Sven Co-op will no longer support running on various outdated operating systems. We do not have a release date for 5.18 yet, and to be honest aren't really in a position to consider a date yet, but we'd like to warn you all in advance anyway in case you need to plan any upgrades. We will of course mention this again in the 5.18 release notes, but please treat this as a final reminder.
Part of the reason for this is Valve's decision to drop Windows XP and Vista support with Steam as of 1st January 2019. Also as we previously announced nearly 3 years ago this would be inevitable as operating system components begin to deprecate and remove older functionality, which is beyond our control.
Using more up to date operating systems (and their underlying components) also offers us more opportunity to make the most of their functionality and efficiency upgrades, which ultimately ends up in a better product for all of you.
Windows XP, 2003, Vista, and 2008
We don't need to tell you how out of date Windows XP and 2003 are. Given the growing number of security holes it has going un-patched it would be very ill-advised to use these operating systems for anything at all.
Sven Co-op may still work with Windows Vista and 2008 for a while, however any issues that arise specific to this version will not be supported by us. We've not done anything deliberate to stop this working, but as none of our team use these versions we can't test on them.
As there is a noticeable hardware requirement gap between Windows XP/2003 and Vista (and later) you will almost certainly need to consider this too. This is also out of our control, sorry. The hardware requirements between Windows Vista right the way up to Windows 10 don't have such a wide gap though, so if you're already running Windows Vista there is a likelihood that you can also run any of the newer versions on the same hardware.
Windows 7 and Windows Server 2008 R2 will still be supported for the foreseeable future, again, until circumstances beyond our control dictate otherwise.
Linux using GLIBC earlier than 2.24
All Linux installations will require GLIBC version 2.24 or later. This coincides with an internal infrastructure upgrade from Debian 8 "Jessie" to Debian 9 "Stretch". Debian 9, which we compile our code for Linux on, has not only been stable for nearly 2 years now but can be upgraded to from previous versions easily enough, so this shouldn't be much of an issue. (It can typically be done without issue within the hour on a high speed Internet connection.)
Those of you running Ubuntu version 16.10 or later will not be impacted. If you're running the previous LTS (16.04) you can likely upgrade to the current LTS (18.04) easily enough as with most Debian based Linux distributions.
Sorry to disappoint further, but those of you wanting to run SvenDS on RHEL, CentOS, or FreeBSD will still not be able to do so just as you can't now. To be clear on this, as a game development team we have no desire to support enterprise type distributions of Linux. Though they may be great for many applications, games are certainly not their purpose. Our choice down the Debian distribution path correlates with a happy balance between fairly up to date software and stable proven software. The Debian path also matches Valve's preference with Steam, particularly as they use this for their own SteamOS distribution, of which the current version (3.0) is also based on Debian 9.
If you're not sure which version of GLIBC your Linux installation runs you can find out using `ldd --version` from a terminal, or check this table at Wikipedia.
Sven Co-op Update Released [Build 3082297]
01 September, 2018 | by AdamR
Hello everyone, it's been a while since we last gave you an update. (Very nearly 7 months ago in fact.) We're still here though, and have a slightly bigger package than normal this time round. hehehe
Big thank you to everyone that took part in the release candidate testing via Discord. We feel that this added value to the finalisation of this release, and hope to do the same RC testing next time round. If you're not on our Discord yet you can join here: https://discord.gg/svencoop
First and foremost, Hezus has built a brand new map "Suspension" (or Bridge 3), featuring assault style game play with up-to 8 playable classes to choose from.
Vote to play one of four difficulty levels (with a supporting treat for the hardest) based on your teamwork and toughness, pushing yourself to not only complete the mission but reach that far away platinum award for doing so with zero deaths on your team.
Please have a play with any amount of players and let us know what you think. -- The map's difficulty will dynamically adjust according to the player count. Beware that a late joiner on insane difficulty will use up the single spare ticket though, so be sure to have at least one medic playing. At least one player will need to have explosives, such as the engineer, assault, and pointman classes.
Secondly we have a noticeable wave of engine updates ranging from anti-aliasing support, better Metamod support, more reliable progress indicators for content downloads, and everything in-between.
Server operators that have been using a fork of Metamod-P specifically for Sven Co-op should no longer use this, but instead use the standard distribution of Metamod-P. Please also fully revert modifications in your "liblist.gam" file as you should not be modifying this, as we've needed to add extra properties to it. -- Best practise is to use the -dll launch parameter for specifying an alternative server binary such as Metamod-P to keep "liblist.gam" crisp.
Finally it's worth a mention that the sound engine has had some tweaks to compensate for volume and room effect (EAX) workarounds present in previous builds. You may find that your game is twice as loud, so if you had your "volume" setting on 0.8 consider halving this down to 0.4, though this won't be required for everyone.
Expect further improvements in an upcoming build to improve room effects (EAX) even more so, particularly to reduce the amount of crackles and pops you can hear at high volumes.
If you are running a dedicated server please use SteamCmd to update your servers. Those of you that were using the public release candidate can remain to do so, as this branch now matches the standard branch.
Changes are as follows:
Notable changes
New map "Suspension", by Hezus.
Important notes
Everyone: Your "autoexec.cfg" should be reverted manually. It's a user file but we may need to push important changes to it. (Any problems, just delete the file and re-validate your game.)
Server operators: Please fully reset "liblist.gam", as you shouldn't be modifying this anyway. -- The game will not run properly without some new settings in there.
Server operators: If you're running Metamod please use the vanilla distribution, do not use custom builds for Sven Co-op any more. (They shouldn't be needed and we'd like to verify that.)
Code
Game library
A debug message is printed when following files are loaded by the game: sentence list, material list, replacement map (sounds/models). Requires "developer 1".
Added new cheat command "cl_invisible". Makes you invisible and non-targetable when activated.
Added spawn flags and classification to "myinfo" / "thatinfo".
Ban voting is now disabled as standard unless configured by the server.
Bounce sounds: Volume and pitch is relative to impact velocity. The impacts should sound more natural now.
Changed the maximum "sv_zmax" value from 16000 to 454046 (larger than the max grid size), which should fix black sky box issues that could be seen in enormous maps.
Clamped "volume" and "MP3Volume" to range 0.0 - 1.0.
Creating an RPG rocket via the "create" cheat command now matches your view angles, so it fires where you're looking rather than just firing flat.
Door and button entities can now be re-positioned to the locations of other brush entities via trigger_setorigin and should open and close correctly.
Doors/Platforms: Added "fireonopened" and "fireonclosed" to fire a trigger when the movement ends. ("fireonopen" and "netname" still work.)
Doors/Platforms: Added "fireonopening" and "fireonclosing" to fire a trigger when the movement starts.
Doors/Platforms: Fixed doors not moving when "obey use type" is set to "yes, even while moving", but the door receives USE_TOGGLE and the door is not closed.
Doors/Platforms: Triggers for "fireonopening", "fireonclosing", "fireonopened", and "fireonclosed" now have a corresponding "*_triggerstate" key to choose off/on/toggle trigger use types. (Defaults to toggle.)
env_beam and env_laser: Added support for "!activator" and "!caller" as the stat/end targets.
env_sprite and "env_model" are now allowed to think faster than 10 FPS. (Up to 200, matching MAX_FPS.)
Fixed ammo duplication exploit.
Fixed an issue preventing the game from detecting the "m_rawinput" value correctly in some cases and thus not enabling raw mouse input.
Fixed an issue where players could commit suicide while in observer mode.
Fixed an issue where players entering observer mode were unable to move if they died while operating train/vehicle.
Fixed an issue where the game tried to load a MOTD file as a fall-back for the map vote list.
Fixed an issue where the Geiger counter never stopped "clicking" if the player entered observer mode after dying in a radioactive area.
Fixed an issue where train controls would stay visible on player's HUD if he died while operating train and then got revived.
Fixed the "Player view keeps warping back to the original position when moving the mouse" issue.
Fixed the "sentence_file" / "materials_file" world spawn key values not working.
func_tank: Fixed an issue where the looping sound would keep playing even when the entity was destroyed.
It is now possible to use scoreboard to mute players when in observer mode.
item_inventory: Fixed a bug with item's "trigger on use" whereby an unrelated item would fire this value if you held the item whilst using a different item.
The "MaxRange" world spawn key value works again now. The game sets "sv_zmax" to 16000, then loads the value defined in default_map_settings.cfg, checks the "MaxRange" world spawn key value, and finally looks for "sv_zmax" in the custom map config.
trigger_changevalue, trigger_createentity: Now works with "topcolor" / "bottomcolor" key values.
trigger_copyvalue, trigger_changevalue, trigger_createentity: Now works correctly with "toutfiltertype", "coutfiltertype", "tinfiltertype", and "cinfiltertype" key values.
trigger_copyvalue, trigger_changevalue, trigger_createentity: Now works with "explosion", "material", "gibmodel", and "weapon" key values (func_breakable, func_pushable).
trigger_copyvalue, trigger_changevalue, trigger_createentity: Now works with the "spawnobject" key value (func_breakable).
trigger_random (and derivatives) now support 32 targets, up from 16.
trigger_relay: It is no longer possible to spawn trigger_relay that targets itself. A warning message is printed and the target value is removed to prevent recursion (and server crash).
trigger_setorigin: Added support for "!activator" and "!caller" as the copy target.
AngelScript
Added an option to customize position of the view model. Exposed the functionality as two CBasePlayer methods: SetVModelPos() and ResetVModelPos().
Added SVC_STUFFTEXT to the NetworkMessageType enum.
Changed return type of CBasePlayer::DropPlayerItem() from CBasePlayerItem to CBaseEntity. This is necessary because some weapons drop entity that is not based on CBasePlayerItem (i.e. the Shock rifle).
Exposed new global object "CModelFuncs g_ModelFuncs". Provides various model-related methods (i.e. body group configuration functions).
Exposed new member variable "CBasePlayerWeapon::m_iDefaultSecAmmo".
New hook "EntityCreated" - called whenever a new entity is created.
New hook "PlayerTakeDamage" - called when a player takes damage. Attacker, inflicter, damage amount, and damage flags can all be changed from the hook handler.
New object "DamageInfo" - used by the "PlayerTakeDamage" hook.
Removed CBasePlayerItem::Drop(). This wasn't really a drop method and it was exactly the same as CBasePlayerItem::Kill().
The engine no longer crashes when unused sprite handle is passed in by the client library.
Engine
Added early size check for textures loaded from WAD files. Fixes potential buffer overflow.
Added support for various anti-aliasing modes. This feature is work in progress - no UI for it is available, and the game still defaults to 4x MSAA (or no AA in the low video quality mode). New start-up parameter -aamode N (where N is ID of the desired AA mode. New command gl_dumpaamodes - prints list of all AA modes. MSAA and CSAA (NVIDIA only) modes up to 16 samples are supported.
Bumped the maximum texture size to 1024 x 1024 pixels.
Changed default value of "gl_max_size" to 1024 from 512.
Changed default value of "gl_round_down" to 0 from 3.
Changed the default and fall back colour depth to 32 BBP. (16 BBP colour depth can be problematic on some modern systems.)
Clamped "volume" to 0.0 - 1.0 in the legacy sound engine.
Completely reworked the "stufftext" command filter. Added few more commands to the "stufftext" blacklist. This should make all known "slowhacking" methods ineffective (server OPs altering or trashing player's config, ejecting optical drive remotely, filling player's hard-drive with screenshots etc.). Useful commands like "spk" are still available.
Console: The auto-complete list now moves together with the main console window.
Console: The console no longer auto completes commands when space bar is pressed.
Console: Tweaked the default console size for a better user experience in low resolutions.
Corrected some Windows registry paths.
CVAR "maxplayers" now defaults to 2 for "multi-player only" mods.
Dedicated Server UI: Fixed possible crash caused by mod name not being initialized properly.
Dedicated Server UI: Fixed the [x] close button not working.
Dedicated Server UI: Fixed UI elements not initializing properly.
FastDL: Fixed the loading dialogue not updating when downloading files via HTTP.
FastDL: The progress bar switches into "Marquee" mode if the HTTP server didn't return file size so we can't tell how long will the download take. This way the player gets at least some visual feedback that the file is being downloaded.
FastDL: The second progress bar now works correctly and the time left info is displayed (it likely won't be very accurate for small files but it should stabilize after a while for larger files).
Fixed "-toconsole" not activating the console.
Fixed "r_fullbright" not taking effect immediately. (Requires sv_cheats 255.)
Fixed a crash when applying CVAR value that has white space as the first character (i.e. name " Player").
Fixed a problem that caused all HUD sprites (including the cross-hair) to be blurry and slightly stretched.
Fixed an issue that caused the same map to be listed multiple times when using the "maps" command.
Fixed an issue where "only" the first 32767 BSP faces were loaded and processed correctly. All 65535 faces should be usable now.
Fixed an issue where portions of the sky box would disappear at higher FOV values.
Fixed beams with sine noise not rendering correctly if number of segments is lower than 16. Fixes the egon gun beam glitch when attacking target that is too close.
Fixed buffer overflow in Sys_Error(). This is why some of the critical error messages appeared corrupted.
Fixed dev_overview not being initialized. Map overviews should work correctly now without having to fiddle with the settings every time.
Fixed multiline HUD_PRINTCENTER text overlapping in higher resolutions.
Fixed potential buffer overflow in the texture loader. This could cause instability or other problems whenever the engine tried to upload texture bigger than 640 x 480 pixels.
Fixed screen flashing during seamless (single player) map change (only happened with FBO enabled).
Fixed sky box and world clipping issues when using high sv_zmax values.
Fixed the "envmap" command. Can be used to create environment maps. (Useful for creation of sky box textures, 360 map overviews etc.)
Fixed the "PAUSED" text not appearing.
Fixed the "r_lightmap" command. Displays surfaces with only lightmap applied. Requires sv_cheats 255.
Fixed the "slist" and "list" commands. Added an option for user-defined port range. This will list both sv_lan 1 and 0 servers.
Fixed window title not updating on map changes. Window title no longer displays server name in singleplayer mode. Window title updates on linux as well now (listen server only).
FPS meter: Added new fps meter mode - "cl_showfps 2". Shows average frame time (milliseconds) in addition to the frame rate (frames per second).
FPS meter: Added new fps meter mode - "cl_showfps 3". Shows frame rate (frames per second), frame time (milliseconds), and number of wpolys/epolys. Similar to r_speeds, but doesn't require the developer mode, doesn't spam the console, and the frame time value represents the total frame time not just time spent in rendering.
FPS meter: New CVAR "cl_fpscolor" - when set to 1 the fps meter will change its colour based on the current frame rate.
FPS meter: New CVAR "cl_fpspos" - can be used to change position of the fps meter. Values: 1 - top-left, 2 - top-right, 3 - bottom-left, 4 - bottom-right; Default: 2
Game UI: Changed range of the "volume" and "suitvolume" sliders from 0.0 - 2.0 to 0.0 - 1.0. Values greater than 1.0 were causing sound distortion and the extended range made the slider too sensitive.
Game UI: Empty main menu buttons no longer react to mouse input.
Game UI: Fixed an issue where player models would be listed multiple times in the Multiplayer options menu.
Game UI: Fixed an issue where the game crashed when trying to create a new listen server without having any valid multiplayer maps available.
Game UI: Fixed an issue where the game menu appeared in front of the console window when starting the game with "-console". The console now has keyboard focus when starting the game with "-console".
Game UI: Fixed the "Unknown command: cl_crosshair_size" error message that appeared in the console when applying Multiplayer settings.
Game UI: Fixed the key binding list not rendering correctly if the kb_act.lst file doesn't start with a valid category definition.
Game UI: The console will use the "Default" font as a fall back if "GameConsole_Mono" isn't available.
gl_wireframe: Fixed line colour inconsistencies.
gl_wireframe: Fixed z-fighting issues in the "gl_wireframe 1" mode.
gl_wireframe: New CVAR "gl_wireframecolor" - can be used to customize the line colour. Accepts 3 bytes; i.e. gl_wireframecolor "255 0 0" for red colour. Default value: "255 255 255" (white).
Linux: Fixed the problem with VGUI1 controls "spazzing out" when running the game in windowed mode.
Made the texture size check error messages more informative.
Netgraph: Added new mode 4 ("net_graph 4"). When activated the netgraph will show both the loss/choke info and the graph.
Netgraph: Now only visible during an active game session.
Netgraph: Now rendered behind the VGUI2 elements (i.e. the developer console) but above the in-game VGUI1 elements.
Netgraph: Now uses mono-spaced font to prevent the displayed values from jumping around.
Netgraph: Optimized netgraph rendering to have minimal performance impact.
New command "fs_dump_paths" - prints all search paths currently in use by the file system.
New command "gl_info" - same as the "gl_dump" command but doesn't print the OpenGL extensions.
New command "skybox" - can be used to load different sky box textures on the fly. Only the local client is affected by the change. (Requires sv_cheats 255.)
New CVAR "cl_scaleenginefont" - can be used to toggle engine font scaling (netgraph, fps meter etc.). Default: 1 (enabled).
New CVAR "gl_clearcolor" - can be used to change the clear colour (for debugging). Accepts 3 bytes; i.e. "gl_clearcolor 255 0 0" for red clear colour. Default value: "0 0 0" (black). Requires sv_cheats 255.
New CVAR "gl_npot". Can be used to enable/disable support of NPOT (Non-Power-Of-Two) OpenGL textures. Default value: 1 (windows) if the HW supports it; 0 (Linux).
New launch parameter "-nomtex". Disables multi-texturing and enables texture sorting. This can be useful for players with lower end hardware (i.e. Intel HD Graphics) if they are experiencing performance issues on maps with dynamic lights and/or when using the flashlight. Dynamic lights still work in this mode but detail textures are not available. This can be a better option than disabling dynamic lights completely by setting "r_dynamic" to "0".
New launch parameter "-screen". Can be used to tell the engine which screen (monitor) should it use. The values are indexed from zero: "-screen 0": primary monitor, "-screen 1": secondary monitor etc. The value is not saved. Saving and proper user interface will be added in the next update.
NPOT textures are no longer rescaled if the hardware supports them. This improves quality of many low-res Half-Life textures.
OpenGL now auto-generates mipmaps if supported by the hardware. This will produce correct mipmaps even for NPOT textures, unlike the original box filter algorithm.
Re-enabled the "gl_envmapsize" CVAR that specifies resolution of the environment map textures created by the "envmap" command.
Removed "viewthing" related console commands ("viewmodel", "viewframe", "viewnext", "viewprev").
Removed IPX networking. You can remove "-noipx" from your launch options if you are still using it, it has no effect any more.
Removed screen size related commands ("sizeup" and "sizedown"). This feature only ever worked in the Software rendering mode.
Removed support for paletted OpenGL textures (including the "gl_palette_tex" CVAR). Drivers dropped support for paletted textures long time ago.
Removed support for SGI multi-texture extensions (obsolete, replaced by ARB multi-texture extensions in OpenGL 1.2.1).
Removed support for texture dithering (including the "gl_dither" CVAR).
Removed support for the obsolete ATI TruForm/npatch technology (including the "ati_npatch" CVAR).
Removed the broken and partially disabled Quake 1 mirrors (including the "r_mirroralpha" CVAR).
Removed the following obsolete and/or unused CVARs: "gl_affinemodels", "r_mmx", "d_spriteskip".
Removed the obsolete "gl_flipmatrix" CVAR. -- This was specific to 3DFX and their MiniGL driver and changing it to "1" on any other hardware would cause rendering issues.
Removed the obsolete "gl_ztrick_old" CVAR. Setting this CVAR to "1" caused rendering issues on some systems.
Renamed the "graphheight" CVAR to "net_graphheight" (consistency with the other net_graph CVARs).
Restored API/ABI compatibility with vanilla GoldSrc/Metamod-P. The custom Sven Co-op Metamod-P build is no longer necessary (and in fact won't work anymore).
Server to client file transfer: All .as .rc .cmd .sh and .bash files are now blocked explicitly.
Server to client file transfer: Files transferred over network can have extension of any length now. (Previously only 3-character filename extensions were allowed.)
Setting the "gl_picmip" CVAR value too high or low no longer crashes the game. You can now play the game with 1 x 1 pixels textures if you really want to.
Skybox textures can be up to 1024 x 1024 pixels in size now.
Sprite textures are now clamped correctly to prevent edge artefacts when rendering masked sprites.
The "cmdlist" command can now print command names longer than 16 characters.
The "cvarlist" command now detects all standard CVAR flags. Improved formatting.
The "gl_dump" CVAR now prints all OpenGL extensions no matter how many there are. Prints one extension per line for better readability.
The "screenshot" command now saves files to the "screenshots" sub-folder and uses the same naming conventions as the "snapshot" command ("screenshot" saves TGAs, "snapshot" BMPs).
The engine can handle up to 64 different screen resolutions now (was 32).
The engine no longer checks whether the loaded game/mod supports SDL input every time the mouse is moved.
The engine no longer crashes if the game/base directory paths are enclosed in quotation marks.
The engine no longer crashes when unused sprite handle is passed in by the client library.
The engine no longer loads the unused "cached.wad" and "fonts.wad" files (only used by the old WON builds).
The engine now checks BSP and WAD versions correctly. Only BSP version 30 and WAD version 3 is accepted.
The engine now ignores the .sc event files when "ignore_event_files" is set to "1" in liblist.gam.
The engine now respects the TGA origin bit. TGA textures that use the origin bit incorrectly may appear upside down. This can be fixed by flipping the image vertically or by changing the origin bit.
The engine now shows an error before shutting down if the file system library or the Game UI library fails to load.
The engine now shows more informative error messages if the client library fails to load.
The engine now uses the BMP skybox texture set as a fall-back if the TGA set isn't available.
The liblist.gam file is only loaded and parsed once now.
Sound engine
Adjustments to EAX presets to sound closer to Half-Life. (Has much room for improvement.)
Continue to process materials/sentences files if an empty or too long definition is found (just ignoring the bad material/sentence) rather than just discarding the lot.
Remove volume divisor; volume is no longer based on 2.0 maximum.
Non-playable characters
HWGrunt: Revised Heavy Weapons Grunt's fallen minigun search/pick-up logic.
Robogrunts: Can now fire the: M16A2, sniper rifle, rocket launcher, MP5, etc. Animation support updated for M16A2. Friendly version of Robogrunt has slightly higher voice pitch.
MoveToTarget() will no longer overwrite the m_vecMoveGoal previously defined.
TASK_MOVE_TO_TARGET_RANGE will set m_vecMoveGoal without using a model's head bone lookup.
Weapons/Items
Custom weapon properties are no longer discarded when the weapon is dropped (important for some scripted weapons).
Fixed an issue with the view model moving slightly to one side and then back to the centre when player rotates the view left or right. (This was only noticeable when using custom weapons with iron sights.)
Weapons with custom model definitions no longer revert to the default model when dropped/thrown.
[MP5] The weapon plays one of the 3 fire animations randomly instead of using just the first one.
[SAW] Fixed 2 firing sounds not being pre-cached.
[Uzi] Fixed an issue where some of the ammo would not get transferred to player's ammo reserve when picking up second Uzi.
[Uzi] Fixed Uzi/akimbo Uzi HUD icon not updating correctly on weapon pick-up.
Other
Fixed Linux client crashing on shut down.
Fixed MP3 playback not working on Linux.
Maps
Half-Life Single Player Campaign
Added missing weapon_m16 line to first half of HLSP maps when you should have picked it up by then.
Psyko
Fixed ammo entities jumping up and down in the boss battle arena.
Stadium 4
human_grunt_ally, human_grunt, robogrunt, and male_assassin weapons are now randomized when spawned. The map will spawn each NPC with a unique weapon each time the button is pressed, until it runs out of unique weapons and starts over.
Implemented new mortar ammo sprite by Hezus.
Reduced world poly in top-down camera by 150.
They Hunger: Episode 2
[TH_EP2_02] Possibly fixed the Zork unveil sequence stalling issue.
Scripts
Map Scripts
[survival_generic] Added "void DisableSurvival", which can be called by a trigger_script entity to disable survival mode during a map.
Plugins
[PlayerDecalTracker] Fixed PlayerDecal() method conflicting with a class name. (Symbol search order was fixed in the latest AS version.)
[Vox] Can play any Vox message without pre-caching it.
[Vox] Now uses the newly exposed SVC_STUFFTEXT message to issue "spk" command on client side.
Models
NPCs
[HGrunt] Corrected seams on the Opfor grunt backpacks.
[HGrunt] Fixed issue with aiming/firing oscillations.
[HWGrunt] Fixed smoothing groups and adjusted UV maps.
[RoboGrunt] Corrected weapons bodygroups.
Replaced the old muzzle flashes with new particle-based versions for all grunts (robogrunt, hgrunt, Opposing Force grunts).
Weapons
[MINIGUN] Fixed smoothing groups and adjusted UV maps.
[MP5] Corrected the muzzle flash events on two of the MP5's firing animations.
Added "suspension" to the map cycle and map vote configs.
Added new Opposing Force player models to the command menu.
autoexec.cfg: Added cl_filterstuffcmd "1" to force stricter "stufftext" filtering rules.
autoexec.cfg: Changed "gl_max_size" from 512 to 1024.
Fixed orientation of the forest512 and fodrian sky box textures. All of them were upside down, but since the older engine builds didn't respect the TGA origin bit, it was rendered correctly in-game.
gameui_english.txt / OptionsSubVoice.res: Removed the "Uses Miles Sound System" notice from the Voice Options tab. (the engine uses Steam voice system, not MSS for voice communication)
gameui_english.txt: Added new UI string "GameUI_NoMultiplayerMaps"
Removed tf_original from map cycle (you are supposed to vote for turretfortress.bsp)
Removed the (now unused) *.sc event files.
Removed the empty game menu logo files.
Removed the unused "fonts.wad" file.
Removed unused "gfx" files.
submerged_addons.wad is now included with the game.
zhlt.wad updated to match Vluzacn's VL34 build.
Version details
Steam build ID numbers: Game 3082297, dedicated server tool 3082299, SDK tool 3082300.
Please use the steam build ID number as a reference when posting an issue or query on our message boards. You can find the build number you currently have within Steam by right clicking our game or tools, selecting Properties, then selecting the Local Files tab.
Svenworks: Digital Distribution faces Analogue Retribution
02 April, 2018 | by Hezus
On April 1st, we announced our new digital distribution platform for co-operative gaming, SvenWorks. The initial repsonses of the community were overwhelmingly positive and we were more eager than ever to make our vision of co-operative play a reality. But then the emails from other developers came flooding in on the evening of April 1st.
In previous business meetings, all the game developers were quite happy with our plans to re-release all of their games on our platform (especially the huge gain in sales!) but we might have failed to mention that we were going to alter their games to our vision (whoops!). They were far less pleased when they learned that information from our news post on April 1st. Suddenly no-one wanted to release their games on SvenWorks anymore. Boy, did we feel like a bunch of fools.
So, sadly, we're going to have to pull the plug on our SvenWorks project. On the bright side, this gives us more time and energy to focus on the development of Sven Co-op, which is all about co-operative play! Stay tuned for new updates in the near future or on April first of 2019!
Svenworks: Digital Distribution Gets Social
01 April, 2018 | by Hezus
Today marks a turning point in the history of Sven Co-op. We're finally able to show you what we've been working on over the past few years and we hope you are all as excited as we are! We are proud to present:
What is Svenworks?
In short, Svenworks is a digital distribution platform especially created for co-operative gaming! Next to playing Sven Co-op obviously, you'll be able to enjoy the full range of gaming titles supporting co-operative mode!
How does Svenworks work?
Just as on other platforms, you'll be able to purchase games from our catalogue. Our focus is co-operative play and therefore co-op mode is available to all titles, even those that did not support this mode before. This is a huge advantage over Steam or Origin and with Svenworks you'll never encounter hostile players since all deathmatch modes have been removed. Even titles that only feature single player mode, can now be played in co-operative mode! Our patented matchmaking system will find another player for you to play with while you wait in the game lobby!
Our revolutionary GUI integrates our two basic principles: Games and Friends! Cycle through your games library or friends list with the arrows. The Svenworks button in the center takes you to the game catalogue and personal settings. It's that simple!
Why Svenworks?
As Valve and EA have shown us, the future of Online Gaming is not within the game itself but within the platform supporting those games. By moving our team effort to this new venture we hope to create additional revenue and thus create better games. With these additional funds our team can spend more time on our core business: making Sven Co-op an even better game! We're thinking about adopting an episodic approach to future releases.
What does the future of Svenworks hold?
We're adding new games to our catalogue on a daily basis so you'll be able to play more and more games with your friends! Achievements are currently in development and also trading cards are in the making. Trading cards must be shared with other players at all times to ensure co-operative play! Last but not least, we're currently in the alpha development stage of our very own Svenworks Controller! Have a sneak peek at the prototype here! The current estimated target price for this product is only $89,99! Note that you are required to order a minimum of 2 controllers, because of the co-operative nature of all games!
How to join Svenworks?
Svenworks is still in active development but you can apply for a beta key on our Forums! Make sure you register and then sign up by replying to this thread or click the button below! You will receive a download link and your beta key within 24 hours!
Sven Co-op Update Released [Build 2502859]
09 February, 2018 | by AdamR
An update for Sven Co-op has been released. If you are running a dedicated server please use SteamCmd to update your servers. Those of you that were using the public release candidate can remain to do so, as this branch now matches the standard branch.
Changes are as follows:
Notable changes
Lots of updates to the new They Hunger: Escape map.
Code
Game library
Cross-map inventory: Fixed an issue where stored ammo types would get mismatched under certain conditions. (This typically happened if classic mode was enabled/disabled shortly after the last level change.)
Doors, platforms, and trains (not track train) can now set key "movesnd_loop" to make their moving sound play looped until the brush stops moving. (Set to 1 to enable.)
Fixed an issue where entities spawned via trigger_createentity wouldn't get initialized/spawned properly.
Fixed an issue where position of custom HUD elements would get clamped incorrectly in some cases.
Fixed an issue where the voice chat labels would overlap if two or more players were talking at the same time.
func_tracktrain: All speed related variables are now floats. Fixes an issue where trains with speed lower than 1 wouldn't move at all (i.e. the scissors on ragemap2012_2).
func_tracktrain: Fixed an issue where the "speed" keyvalue of the next path_track entity would be ignored if the new speed was higher than the maximum train speed.
game_end: Fixed the most recently shown player HUD message showing again during the intermission.
HUD debugging statistics will now show the client/server address and port if available.
More consistent line buffer length (512 chars) and comment formatting ("//", "#", rather than one/both/mix/match/wtf) when parsing configuration files, material lists, and replacements.
Moved the persistent inventory flushing out of "game_end" and into the intermission function, so other things changing level by intermission have the chance of clearing cross-map inventory.
myinfo/thatinfo: Added print-out for "takedamage", "gravity", "friction", and "speed".
myinfo/thatinfo: If the entity model is brush based show "Model number: x" instead of "Model file: *x".
myinfo/thatinfo: Water and cheats string tweaks.
Say alias "/me" now works in team say too.
Server command "reloadadminlist" to reload the list of administrators at run time. (Can be used in RCON.)
The server no longer sends gmsgCurWeapon message every frame to all clients with no active weapon.
trigger_changelevel: It will no longer try to read in a map name if it's going to be too long. (32 characters maximum.)
trigger_changelevel: Now creates a log message when a level change is about to happen, in a similar style to "game_end".
trigger_changelevel: Now creates a player HUD message when a level is changing so it's more obvious as to why a brief freeze may be happening.
trigger_multiple: Fixed touchers never being forgotten about when the "fire on enter" flag is set but "fire on leave" is not.
trigger_multiple: The "inventory rules failed" trigger will now impose a reset time when run so it doesn't run every frame.
Voting: A successful map vote will now use the intermission so players get a chance to see why the map is suddenly changing. (More like "game_end" instead of "trigger_changelevel".)
Voting: Players are now shown in their console what kind of vote passed/failed, rather than just "Vote failed".
¯\_(ツ)_/¯
AngelScript
Updated AngelScript to version 2.32.0.
Updated 'ASString' to use the new 'asIStringFactory' interface. (String literals can now be reused to save memory.)
CPathTrack: Changed the recently added "int m_iMaxSpeed" and "int m_iNewSpeed" members to "float m_flMaxSpeed" and "float m_flNewSpeed".
Exposed map class methods to map and plug-in scripts:
'LoadGlobalSkillFile()': Reloads the global skill file.
'LoadMapSkillFile()': Reloads the standard map skill file (_skl.cfg).
'LoadSkillFile( const CString& szFileName )': Loads a custom skill file.
Exposed CBasePlayerItem::LoadSprites(). Can be used to load a different set of HUD sprites for a given weapon.
Fixed some of the CEngineFuncs documentation strings.
Fixed the previously unnamed 'iAttachment' argument of 'CEngineFuncs::GetAttachment()'.
The global "CMap" instance (g_Map) is no longer a constant.
Engine
Fixed a crash due to a race condition with console debug log handle when many many log messages are written in a burst.
Sound
Client command "cl_flushsoundcache": Forcibly delete all client-side sound list files, with the exception of those that may still be needed for a listen server to work.
Client command "cl_flushsoundcache_force": Forcibly delete all client-side sound list files, including those that may still be needed, which may make a listen server un-connectable until the map changes.
Client sound engine will now flush all downloaded sound lists when it starts up and shuts down, and when a server is disconnected from.
Server command "rebuildsoundcachefile": Forcibly re-build the sound list file for players to download without having to restart the map.
Non-playable characters
Stukabats can deal damage again (sk_stukabat_dmg_bite skill CVAR is now registered correctly).
Weapons/Items
Fixed an issue where non-mapper placed weapons would get affected by the mp_weaponstay CVAR, preventing them from being picked up.
The currently active weapon is no longer changed for no reason when one of the inactive weapons is dropped.
[Crowbar] Fixed an issue where thrown crowbars could be duplicated.
[Minigun] Fixed an issue where player could pickup minigun while holding other "exclusive" weapon.
[Satchel] Fixed satchel football causing an infinite loop while touching. There is now a 5ms delay between each slide movement.
[Shock Rifle] Fixed an issue where multiple players could use the same shockrifle (causing strange weapon behaviour and crashing the server when dropped).
[Uzi] Fixed an issue where the weapon view model would glitch out when inactive akimbo uzi is dropped.
Maps
They Hunger: Escape
Added a new room with a shotgun and a zombie cop ambush spawn to the alley next to the ambulance.
Added fold-able wooden barricades next to the burning tunnel debris, visible only when the tunnel is blocked. (Should make it more obvious that this is the only route through to the other side.)
Added fold-able wooden barricades to downtown sewer entrance if toolbox spawns there.
Added infinite spanner spawn to sewer next to where the toolbox sometimes spawns.
Added missing civilian models to the permitted player model list.
Added sewer labels to all three sewer tunnels surrounding the truck to prevent players getting lost so easily.
Added sewer steam to make the entrances more noticeable.
Added skill configuration, with level 1 being normal difficulty, and level 2 being hardcore:
Barney now does 2 points less damage with his pistol in both modes.
Bullsquid has less health and does 5 points less spit damage in normal mode.
Otis cops (sheriff included) now do 25 damage instead of 37 in both modes.
Snarks deal 5 damage per bite instead of 10 in normal mode.
Zombies do 5 less damage per swing and 10 less damage per double-swing in normal mode.
Added some lights to the map start room.
All downtown zombie spawns now use a "trigger_playercheck" master so that they aren't turned on when no one is there.
Colt 1911 handgun now respawns infinitely in the police station / ambulance / radio station.
Deleted female zombie that kept getting stuck in church upper hallway.
Deleted 'random civilian' spawnpoint in the train station that wasn't near any weapons.
Disabled a couple of debug messages in the scripts.
Extra minute is added to the time limit if the game is started with 4 or less players.
Fixed crappy brushwork with holes in it on the roof of the train station and the hallway connected to the church.
Fixed police tunnel roof being "func_detail", which made it so that everything in the tunnel rendered whenever you looked over at it from above.
Fixed some pretty bad cylinder face carving issues.
func_trackvehicle: Updated the script to match the recent API change.
Hardcore mode is now forced for 16+ players, rather than 10+.
In the "jail" lose cutscene, two players will now spawn in either cell and the rest will fall through the collapsing ceiling (only if there are any more than two living players at the end of the round, which is somewhat rare).
Made the unbreakable train depot door metal instead of wood so that dumb people don't pound on it for days trying to break through.
Sewer treatment engineer 3 now spawns with a spanner.
Sheriff now spawns in both normal and hardcore modes, rather than just hardcore. Sheriff has less health in normal mode.
Umbrella in pawn shop now respawns infinitely.
Window glow in the gas station garage is slightly brighter, so that players can actually see the toolbox if it spawns there.
Models
Weapons/Items
Reverted seasonal candy stick crowbar.
Sounds
Weapons/Items
[SAW] Added missing SAW belt/deploy sounds.
SDK
FGD
Added key "movesnd_loop" to doors and platforms. (Drop down yes/no.)
Fixed few default values that were defined as integer where string was expected. (Improves compatibility with some 3rd party tools, i.e. TrenchBroom.)
Fixed the monster_babycrab model name.
Other
Game manual
Corrected value for disabling "mp_timelimit_empty".
Version details
Steam build ID numbers: Game 2502859, dedicated server tool 2502860, SDK tool 2502861.
Please use the steam build ID number as a reference when posting an issue or query on our message boards. You can find the build number you currently have within Steam by right clicking our game or tools, selecting Properties, then selecting the Local Files tab.
Sven Co-op's 19th Anniversary
19 January, 2018 | by Nih
Well, well. Today marks the 19th year of Sven Co-op's existence. That's a lot of years. In honour of this "very special" number, I decided to take the opportunity to write a few words about the game that has taken up so much time of my life.
As a lot of you may know, Sven Co-op started as a Half-Life modification created by Daniel "Sven Viking" Fearon in 1999. At the time it was nothing more than a single custom-made Half-Life level, svencoop.bsp, which had had NPC enemies enabled by the setting of a cvar. As no development kit had been released for modders at the time, there was no custom code. Gradually people started joining Sven Viking's project, contributing the skills they had in programming, level design, modelling, and so on. A lot, if not most, of the contributors were teenagers. The mod's popularity kept growing, and a vibrant community arose, with people creating custom levels, models and other content on their own initiative.
When Half-Life 2 came out in 2004, Half-Life 1 modding took an immediate hit. This was when Sven Co-op's community started to show its unique strength, because while other HL1 mods seemed to lose players at an ever increasing rate, Sven Co-op, after a small initial drop in players, somehow managed to retain almost the same player count right up until the game's Steam release. Mind you, my memory is a bit fuzzy. However, the increasingly antiquated state of Sven Co-op became clear in other ways. It became difficult for the developers to find new people interested in contributing to the development of the game. An ancient game with outdated graphics and a slowly dwindling player base just didn't seem that appealing in comparison to more modern and lively games - especially for people with ambitions of entering a career in game development. The stream of community created content also slowly dried out. The graph below, gathered from scmapdb.com, shows the quantity of map releases (and major map updates) over time, clearly revealing a downward trend since Half-Life 2's release, with a brief resurgence around the release of SC 4.0 in 2008 (which had been in development for 5 years). As you can see, things weren't looking great near the end.
Sven Co-op's release as a free game on Steam in January 2016 was like a rebirth, as it introduced the game to a much larger audience. No longer did you have to convince your friends to shell out money to play Sven Co-op with you. The huge wave of players that came out on the release date was overwhelming and it was a day of huge excitement for me, but it was clear the release was also troubled by some technical issues. As an example, in internal testing our well-coordinated testers had always lined up to use the same battlefield teleporter in my level, Fortified, but on the many chaotic 20+ player servers that appeared, people would enter both teleporters at the same time, resulting in massive-scale telefragging. Sorry, my bad. The team scrambled to fix the issues that appeared in the release, but you can't stop the inevitable. The enormous new boost in players could not last forever and gradually declined, hitting a stable level after a few months. A level that seems quite close to when the mod peaked.
Sven Co-op has come a long way since its humble beginnings, and it's impossible to say how many years it will continue to last. If you travelled back 10 years in time and told me that Sven Co-op would still be played today, I would not have believed it. Being a game based on around fighting predictable AI, rather than unpredictable and intelligent players, one would not expect it to have much replay value. It's clear that the longevity of the game can be attributed to the countless people in the community who have put in their time and effort to create new content for the game, keeping it fresh, as well as the many server operators who have fostered a sense of community among the players. The development team is just an extension of the community; players who have grouped up to work together towards a goal of improving the game and keeping it alive. It's a rather chaotic and directionless group, where people work on whatever project catches their interest, and where people tend to come and go as they please. We have no PR guy or spokesperson; every person on the team speaks only for themselves. And this is how we like it. We have no intention of barking orders to anyone; because in the end we're all just here to have fun. And fun it is. It has been an amazing experience to work with so many people from all over the world, with different backgrounds, personalities, and opinions about the game, all of whom share a great enthusiasm for our old friend Sven Co-op. A few of us have stayed on board for over a decade, including me, and have gone from careless and free teenagers with all the time in the world, to old and grumpy adults who struggle to find any time at all for the game. It's clear that if the game is going to last forever, as we dream of course, we're going to need some more fresh blood. So... Come join us.
Here, at the end of my rant, I would like to thank, from the bottom of my heart, the entire community which has made this game what it is. If I were to compile a list of all the people who have contributed to the game, it would seem endless, and I would have trouble finding my own name within. So thank you all, and thank you again. And thank Valve, of course. And if anyone is in the mood, come reminisce about old times in our Discord channel. All the cool kids, and also the devs, hang out there.