Left 4 Dead 2 - Valve
For the next six days, take advantage of huge savings throughout the Steam store on thousands of titles. Plus, discover new and recommended games on your personalized Exploration Sale page here. Check back each day for new Daily Deals.

Today’s Featured Deals Include:


The Steam Exploration Sale runs from now until 10AM Pacific Time, December 2nd. Complete information on Daily Deals and other special offers can be found on Steam.

Garry's Mod
steamcommunity.com


Microsoft bought Mojang yesterday you may have heard something about that. You may also have heard grumblings from some corners of the community that Minecraft creator Markus "Notch" Persson "sold out" by taking the money and abandoning his game and, by extension, his millions of adoring fans to the fickle whims of of a corporate villain. But Garry Newman, the man behind indie darlings Garry's Mod and Rust, says he'd do exactly the same thing if he could, and you probably would too.

Newman pointed out in a blog post that went up shortly after the Mojang deal was was confirmed that everything changes for an indie developer once he starts hiring people to work for him, because you're suddenly responsible for a lot more people than just yourself. Citing the case of Blitz Game Studios, which shut down in September 2013, laying off 175 employees, and then effectively re-launched in November under a new name, he wrote, "Those are the guys you don't want to be."

"I am sure more than the top guys at Mojang became very financially rich due to this deal and that's something that should be admired not seen as a bad thing," he continued. "Long story short, I d have done the same thing. The money is enough to very much take care of all the staff. The game is in relatively safe hands. Mojang s legacy is as a huge success story instead of a one hit wonder. Everyone wins. Can you seriously say you d have done it differently?"

No, Garry. No, I cannot.

Garry's Mod
Garry's Mod


It could only happen on PC: Garry's Mod, a seemingly pointless sandbox allowing all manner of ridiculous and perverse experimentation, has managed to sell 6 million copies. The news comes via Garry Newman himself, who managed to drag himself away from mountains of cold hard cash for long enough to Tweet the news.

Garry's Mod originated as a Half-Life 2 mod. It hit Steam in 2006 and, according to figures from April 2013, has earned over $22 million. More than a year later, and since the game went standalone earlier this year, that figure has no doubt increased significantly. As reference, the game had sold a mere one million copies back in 2011.

Along with the new sales milestone Newman provided a platform breakdown for the title. The vast majority sold for Windows, 336,765 sold for Mac and 28,322 for Linux.

As for the future of Facepunch Studios, Rust is still in development, albeit in Early Access, while Riftlight is a newly announced topdown shooter which looks pretty sweet.

 
Jul 11, 2014
Garry's Mod - Rubat
A minor update containing a few hotfixes for last update just came out. Restarting your servers is strongly recommended.
If there are any persisting issues left, please report them on the official GitHub issues page.

GLIBC_2.15 dependency on Linux dedicated servers
Some Linux dedicated server owners may have noticed that the game now requires glibc 2.15. This is a necessary change since the version we were using before was really outdated. If your server is running on a relatively old distro which does not include that library, you can find instructions on how to install it here: Linux Dedicated Server Hosting.

Fixed non-ASCII characters being removed from player names
This was accidentally introduced in an attempt to fix an exploit which would let servers tamper with a client’s configuration file, sorry for that! Everything should be back to normal now.

Fixed model scaling not working correctly on some models
Entity:SetModelScale and Entity:EnableMatrix had an issue with some models which would cause transformations to be applied twice. This issue is now fixed, you can see the difference below:

This will break scripts that rely on the old broken behaviour, so I also added Entity:SetLegacyTransform for those who want their current scripts fixed with minimal effort. This function basically brings the old scaling behaviour back for the entity it is called on, so it should be used exclusively as a temporary fix.

Full Changelog

Fixes
  • Fixed plugin_load not doing anything
  • Fixed players being removed when sitting in a vehicle parented to another entity
  • Fixed non-ASCII characters being removed from player names
  • Fixed tabs in RichText selection
  • Fixed properties not correctly working on vanilla
  • Fixed Color.__tostring not outputting alpha
  • Fixed render.CapturePixels crashing when used on render targets
  • Fixed Weapon:CallOnClient crashing when called on a weapon owned by a NPC
  • Fixed player names not updating in scoreboard and voice panels
  • Fixed weapon holdtypes not always updating on the client
  • Definitely fixed Entity:SetModelScale and Entity:EnableMatrix applying transformations twice on some models
Additions
  • Added Entity:SetLegacyTransform(bool)
Deletions
  • Removed properties.HaloThink
  • Removed _restart from blocked concommand list
Jul 11, 2014
Garry's Mod - Rubat
A minor update containing a few hotfixes for last update just came out. Restarting your servers is strongly recommended.
If there are any persisting issues left, please report them on the official GitHub issues page.

GLIBC_2.15 dependency on Linux dedicated servers
Some Linux dedicated server owners may have noticed that the game now requires glibc 2.15. This is a necessary change since the version we were using before was really outdated. If your server is running on a relatively old distro which does not include that library, you can find instructions on how to install it here: Linux Dedicated Server Hosting.

Fixed non-ASCII characters being removed from player names
This was accidentally introduced in an attempt to fix an exploit which would let servers tamper with a client’s configuration file, sorry for that! Everything should be back to normal now.

Fixed model scaling not working correctly on some models
Entity:SetModelScale and Entity:EnableMatrix had an issue with some models which would cause transformations to be applied twice. This issue is now fixed, you can see the difference below:

This will break scripts that rely on the old broken behaviour, so I also added Entity:SetLegacyTransform for those who want their current scripts fixed with minimal effort. This function basically brings the old scaling behaviour back for the entity it is called on, so it should be used exclusively as a temporary fix.

Full Changelog

Fixes
  • Fixed plugin_load not doing anything
  • Fixed players being removed when sitting in a vehicle parented to another entity
  • Fixed non-ASCII characters being removed from player names
  • Fixed tabs in RichText selection
  • Fixed properties not correctly working on vanilla
  • Fixed Color.__tostring not outputting alpha
  • Fixed render.CapturePixels crashing when used on render targets
  • Fixed Weapon:CallOnClient crashing when called on a weapon owned by a NPC
  • Fixed player names not updating in scoreboard and voice panels
  • Fixed weapon holdtypes not always updating on the client
  • Definitely fixed Entity:SetModelScale and Entity:EnableMatrix applying transformations twice on some models
Additions
  • Added Entity:SetLegacyTransform(bool)
Deletions
  • Removed properties.HaloThink
  • Removed _restart from blocked concommand list
Jul 8, 2014
Garry's Mod - Rubat
FIXES
  • Fixed item pickups not being collectable in some cases
  • Fixed env_microphone not always transmitting NPC voices in multiplayer
  • Fixed some textures on gm_construct having an incorrect normal map when running under DX8
  • Fixed console crash on some machines
  • Fixed another possible exploit with CNetChan::SendFile
  • Fixed an exploit allowing access to any file on a client machine
  • Fixed vehicle noclip exploit
  • Fixed SMG viewmodel animation glitch when firing exactly 3 shots in a single burst
  • Fixed inaccurate text selection in RichText controls

IMPROVEMENTS
  • Files with an incorrect extension can no longer be loaded as modules
  • Loose .vcd files can now be loaded without having to be compiled into scenes.image

TTT
  • Fixes
    • Admin commands no longer appear in "last words"
    • Fixed a minor issue with teleporter effects
  • Additions
    • Added lag compensation to the crowbar's secondary attack
    • Added TTTPlayerUsedHealthstation hook
COMMUNITY
  • Fixes
    • Fixed vehicle third person affecting cameras
    • Fixed shipped weapons creating errors when given to NPCs
    • Fixed SimpleDoF to properly work with cameras
    • Fixed return values of draw.SimpleText
    • Fixed big numbers not sending properly with net.WriteTable
    • Fixed gmod_admin_cleanup/gmod_cleanup errors when run in a dedicated server console
    • Fixed vehicles not duplicating their skin, bodygroups, etc
    • Fixed derma.SkinTexture
    • Fixed longstanding thruster crash exploit
    • Fixed pasted ragdolls with duplicator being in T pose until you touch them (still happens for saves though, sorry)
    • Fixed snow footsteps
    • Fixed some base weapons (Alyx gun, HL1 grenade) being .357 clones
  • Improvements
    • Post Process effects are no longer saved across restarts
    • Hidden some useless HL2 maps
    • Updated jQuery/AngularJS
    • draw.SimpleTextOutlined now returns same thing as draw.SimpleText
    • Lua errors notification only stays for 10 seconds instead of 30
    • Clicking "Resize" in spawnicon right click menu no longer automatically rerenders the icon.
    • Fancified Bouncy Ball
    • Updated server browser looks
    • Bots are no longer counted towards player count in server browser
    • Sort addons and games alphabetically in Browse
    • Made player_manager.TranslateToPlayerModelName case insensitive
    • Tweaked some tools
      • Tweaked default values for some of the tools, tweaked limits in context panels for some of the tools
      • Added right click option for lamp tool to copy settings of another lamp
      • Deprecated settings/controls/*.txt, noone uses it, serves no benefit.
    • Improved context menu properties in various ways
      • Now works properly when you look from camera/driving a vehicle
      • Fixed some issues with "Drive" property and cameras
  • Additions
    • Added team.SetColor(index, color)
    • Added Angle:SnapTo(component, degrees)
    • Added IsColor, net.WriteColor, net.ReadColor
LUA
  • Fixes
    • Fixed Entity:PhysicsFromMesh building a deformed collision mesh
    • Fixed PhysicsCollide entity callback missing information about the entity which was collided with
    • Fixed IMaterial:GetMatrix crashing the game
    • Fixed sound.Add not working on dedicated servers
    • Fixed ents.FindByClass not interpreting wildcards correctly
    • Fixed util.CRC not working correctly on strings with embedded zeroes
    • Fixed util.JSONToTable losing precision for large integer values
    • Fixed Entity:GetBoneController returning a truncated value
    • Fixed Entity:SetHitboxSet not working properly with an integer parameter
    • Fixed NPC:FoundEnemySound, LostEnemySound, FearSound, IdleSound and AlertSound not calling their appropriate equivalent in the engine
    • Fixed InnerAngle and OuterAngle parameters not doing anything in lights created by DynamicLight()
    • Fixed util.TableToJSON crashing when passed a table containing keys that aren't strings or numbers
  • Improvements
    • Updated LuaJIT to version 2.0.3
    • Reverted Entity:IsValid to its old behaviour
    • Changed Entity:PhysicsInitBox behaviour to be more consistent with Entity:PhysicsInitConvex (no longer creates a broken physics object in some cases)
    • game.GetWorld is now shared
    • Player:HasWeapon and Player:GetWeapon are now shared
    • Entity(0) now returns the world on both server and client
    • Entities can now have up to 64 DT vars of each type (except strings)
    • Player:Kick and Player:Ban kick/ban reasons are now optional and may contain newlines
    • SWEP holdtypes are now properly networked
    • Vector and angle access using a numerical index rather than x/y/z is now slightly faster
    • gui.OpenURL now clamps URLs to 511 characters max
    • Added safeguards to mesh library functions
    • Entity:GetMaxHealth() is now shared again and properly networked
    • Entity:DrawViewModel now takes an optional second argument which controls which viewmodel to show/hide (defaults to 0)
    • Moved Entity:Disposition, GetActivity, IsNPCMoving, IsUnreachable to NPC:Disposition, GetActivity, IsMoving, IsUnreachable
    • Trace tables now accept an "output" parameter which may contain the table in which trace results should be written
    • sound.PlayFile and sound.PlayURL callbacks now receive an error ID and error name as their second and third parameters if an error occurs
    • Weapon:CallOnClient second argument is now optional
    • Moved Player:PlayScene, NPC:PlayScene and NextBot:PlayScene to Entity metatable
    • Entity:PlayScene second argument (delay) is now optional
    • MsgC can now print text with several colors in a single call
    • Moved Player:Freeze, GodEnable, GodDisable, IsFrozen, HasGodMode to Lua
    • Clamped pitch between -90 and 90 instead of -180 and 180 for AngleRand
    • util.KeyValuesToTable and util.KeyValuesToTablePreserveOrder now accept a third parameter which prevents keys from becoming lowercased when set to true
    • vgui.LoadControlsFromFile/LoadControlsFromString now properly creates scripted panels
    • Optimized vgui.LoadControlsFromString
  • Additions
    • Added Entity:PhysicsDestroy()
    • Added Weapon:GetHoldType()
    • Added util.SharedRandom(uniqueName, min, max, additionalSeed=0)
    • Added util.BlastDamageInfo(dmginfo, origin, radius)
    • Added Entity:SetLOD(lod=-1)
    • Added Entity:SetLagCompensated(bool), IsLagCompensated()
    • Added Player:SetAllowWeaponsInVehicle(bool), GetAllowWeaponsInVehicle()
    • Added CSoundPatch:SetDSP(dsp), GetDSP()
    • Added IGModAudioChannel:EnableLooping(bool)
    • Added IGModAudioChannel:PlayFile(path, flags, callback)
    • Added optional second argument to Entity:SetPhysicsAttacker which controls expiry time
    • Added game.SetSkillLevel(int), game.GetSkillLevel()
    • Added the following hooks to scripted effects: StartTouch, Touch, EndTouch
    • Added CUserCmd:SelectWeapon(weapon_ent)
    • Added __tostring to CNavArea, CSoundPatch, IGModAudioChannel, PhysObj, dlight_t metatables
    • Added PhysObj:GetName()
    • Added CNavArea:Draw(), IsUnderwater(), GetSizeX(), GetSizeY(), IsRoughlySquare(), IsFlat(), GetZ(pos), IsOverlapping(pos, tolerance), Contains(pos), IsCoplanar(navArea), GetClosestPointOnArea(pos), IsVisible(pos), GetCorner(cornerId)
    • Added navmesh.GetNavAreaCount(), GetNavArea(pos, beneathLimit), GetNavAreaByID(id), BeginGeneration(), IsGenerating(), GetPlayerSpawnName(), SetPlayerSpawnName(), AddWalkableSeed(pos, normal), ClearWalkableSeeds()
    • Added Entity:IsDormant()
    • Added ENT:Blocked(other)
    • Added Color:__tostring, Color:__eq and Color:ToHSV
    • Added gui.InternalKeyTyped(code)
  • Removals
    • Removed "loop" flag from sound.PlayURL
    • Removed support for vm_origin and vm_angles from GM:CalcView
Jul 8, 2014
Garry's Mod - Rubat
FIXES
  • Fixed item pickups not being collectable in some cases
  • Fixed env_microphone not always transmitting NPC voices in multiplayer
  • Fixed some textures on gm_construct having an incorrect normal map when running under DX8
  • Fixed console crash on some machines
  • Fixed another possible exploit with CNetChan::SendFile
  • Fixed an exploit allowing access to any file on a client machine
  • Fixed vehicle noclip exploit
  • Fixed SMG viewmodel animation glitch when firing exactly 3 shots in a single burst
  • Fixed inaccurate text selection in RichText controls

IMPROVEMENTS
  • Files with an incorrect extension can no longer be loaded as modules
  • Loose .vcd files can now be loaded without having to be compiled into scenes.image

TTT
  • Fixes
    • Admin commands no longer appear in "last words"
    • Fixed a minor issue with teleporter effects
  • Additions
    • Added lag compensation to the crowbar's secondary attack
    • Added TTTPlayerUsedHealthstation hook
COMMUNITY
  • Fixes
    • Fixed vehicle third person affecting cameras
    • Fixed shipped weapons creating errors when given to NPCs
    • Fixed SimpleDoF to properly work with cameras
    • Fixed return values of draw.SimpleText
    • Fixed big numbers not sending properly with net.WriteTable
    • Fixed gmod_admin_cleanup/gmod_cleanup errors when run in a dedicated server console
    • Fixed vehicles not duplicating their skin, bodygroups, etc
    • Fixed derma.SkinTexture
    • Fixed longstanding thruster crash exploit
    • Fixed pasted ragdolls with duplicator being in T pose until you touch them (still happens for saves though, sorry)
    • Fixed snow footsteps
    • Fixed some base weapons (Alyx gun, HL1 grenade) being .357 clones
  • Improvements
    • Post Process effects are no longer saved across restarts
    • Hidden some useless HL2 maps
    • Updated jQuery/AngularJS
    • draw.SimpleTextOutlined now returns same thing as draw.SimpleText
    • Lua errors notification only stays for 10 seconds instead of 30
    • Clicking "Resize" in spawnicon right click menu no longer automatically rerenders the icon.
    • Fancified Bouncy Ball
    • Updated server browser looks
    • Bots are no longer counted towards player count in server browser
    • Sort addons and games alphabetically in Browse
    • Made player_manager.TranslateToPlayerModelName case insensitive
    • Tweaked some tools
      • Tweaked default values for some of the tools, tweaked limits in context panels for some of the tools
      • Added right click option for lamp tool to copy settings of another lamp
      • Deprecated settings/controls/*.txt, noone uses it, serves no benefit.
    • Improved context menu properties in various ways
      • Now works properly when you look from camera/driving a vehicle
      • Fixed some issues with "Drive" property and cameras
  • Additions
    • Added team.SetColor(index, color)
    • Added Angle:SnapTo(component, degrees)
    • Added IsColor, net.WriteColor, net.ReadColor
LUA
  • Fixes
    • Fixed Entity:PhysicsFromMesh building a deformed collision mesh
    • Fixed PhysicsCollide entity callback missing information about the entity which was collided with
    • Fixed IMaterial:GetMatrix crashing the game
    • Fixed sound.Add not working on dedicated servers
    • Fixed ents.FindByClass not interpreting wildcards correctly
    • Fixed util.CRC not working correctly on strings with embedded zeroes
    • Fixed util.JSONToTable losing precision for large integer values
    • Fixed Entity:GetBoneController returning a truncated value
    • Fixed Entity:SetHitboxSet not working properly with an integer parameter
    • Fixed NPC:FoundEnemySound, LostEnemySound, FearSound, IdleSound and AlertSound not calling their appropriate equivalent in the engine
    • Fixed InnerAngle and OuterAngle parameters not doing anything in lights created by DynamicLight()
    • Fixed util.TableToJSON crashing when passed a table containing keys that aren't strings or numbers
  • Improvements
    • Updated LuaJIT to version 2.0.3
    • Reverted Entity:IsValid to its old behaviour
    • Changed Entity:PhysicsInitBox behaviour to be more consistent with Entity:PhysicsInitConvex (no longer creates a broken physics object in some cases)
    • game.GetWorld is now shared
    • Player:HasWeapon and Player:GetWeapon are now shared
    • Entity(0) now returns the world on both server and client
    • Entities can now have up to 64 DT vars of each type (except strings)
    • Player:Kick and Player:Ban kick/ban reasons are now optional and may contain newlines
    • SWEP holdtypes are now properly networked
    • Vector and angle access using a numerical index rather than x/y/z is now slightly faster
    • gui.OpenURL now clamps URLs to 511 characters max
    • Added safeguards to mesh library functions
    • Entity:GetMaxHealth() is now shared again and properly networked
    • Entity:DrawViewModel now takes an optional second argument which controls which viewmodel to show/hide (defaults to 0)
    • Moved Entity:Disposition, GetActivity, IsNPCMoving, IsUnreachable to NPC:Disposition, GetActivity, IsMoving, IsUnreachable
    • Trace tables now accept an "output" parameter which may contain the table in which trace results should be written
    • sound.PlayFile and sound.PlayURL callbacks now receive an error ID and error name as their second and third parameters if an error occurs
    • Weapon:CallOnClient second argument is now optional
    • Moved Player:PlayScene, NPC:PlayScene and NextBot:PlayScene to Entity metatable
    • Entity:PlayScene second argument (delay) is now optional
    • MsgC can now print text with several colors in a single call
    • Moved Player:Freeze, GodEnable, GodDisable, IsFrozen, HasGodMode to Lua
    • Clamped pitch between -90 and 90 instead of -180 and 180 for AngleRand
    • util.KeyValuesToTable and util.KeyValuesToTablePreserveOrder now accept a third parameter which prevents keys from becoming lowercased when set to true
    • vgui.LoadControlsFromFile/LoadControlsFromString now properly creates scripted panels
    • Optimized vgui.LoadControlsFromString
  • Additions
    • Added Entity:PhysicsDestroy()
    • Added Weapon:GetHoldType()
    • Added util.SharedRandom(uniqueName, min, max, additionalSeed=0)
    • Added util.BlastDamageInfo(dmginfo, origin, radius)
    • Added Entity:SetLOD(lod=-1)
    • Added Entity:SetLagCompensated(bool), IsLagCompensated()
    • Added Player:SetAllowWeaponsInVehicle(bool), GetAllowWeaponsInVehicle()
    • Added CSoundPatch:SetDSP(dsp), GetDSP()
    • Added IGModAudioChannel:EnableLooping(bool)
    • Added IGModAudioChannel:PlayFile(path, flags, callback)
    • Added optional second argument to Entity:SetPhysicsAttacker which controls expiry time
    • Added game.SetSkillLevel(int), game.GetSkillLevel()
    • Added the following hooks to scripted effects: StartTouch, Touch, EndTouch
    • Added CUserCmd:SelectWeapon(weapon_ent)
    • Added __tostring to CNavArea, CSoundPatch, IGModAudioChannel, PhysObj, dlight_t metatables
    • Added PhysObj:GetName()
    • Added CNavArea:Draw(), IsUnderwater(), GetSizeX(), GetSizeY(), IsRoughlySquare(), IsFlat(), GetZ(pos), IsOverlapping(pos, tolerance), Contains(pos), IsCoplanar(navArea), GetClosestPointOnArea(pos), IsVisible(pos), GetCorner(cornerId)
    • Added navmesh.GetNavAreaCount(), GetNavArea(pos, beneathLimit), GetNavAreaByID(id), BeginGeneration(), IsGenerating(), GetPlayerSpawnName(), SetPlayerSpawnName(), AddWalkableSeed(pos, normal), ClearWalkableSeeds()
    • Added Entity:IsDormant()
    • Added ENT:Blocked(other)
    • Added Color:__tostring, Color:__eq and Color:ToHSV
    • Added gui.InternalKeyTyped(code)
  • Removals
    • Removed "loop" flag from sound.PlayURL
    • Removed support for vm_origin and vm_angles from GM:CalcView
Garry's Mod
suyr-newman-top


Garry Newman trolled me. I asked the Garry's Mod and Rust creator to show us his computer setup and he told me, flat out, that he doesn't use a standard PC. Then I asked him to send pictures of the setup and he included male genitalia on one of his monitors. Dude is messing with me.

But when you're Garry Newman, looking in on the ridiculousness of the industry, you can do that. You can see the notion that a game developer should have some hand-crafted PC with a giant case and laugh. You can get an email from someone about showing off your rig and decide to have a little bit of fun. And his rationale for his non-traditional working setup is fascinating.

What's in your PC?
My work PC is a Mac Pro running Windows 8.1.

3.7GHz quad-core with 10MB of L3 cache
12GB (3 x 4GB) of 1866MHz DDR3 ECC
1TB PCIe-based flash storage
Dual AMD FirePro D700 GPUs with 6GB of GDDR5 VRAM each

What's the most interesting part of your setup?
Probably the fact that it's a Mac Pro. It looks like a bin.



What's on your desk?
Mac Pro, 2 Apple Displays (connected via thunderbolt), a phone that I never use and a printer.

Do you have a gaming PC?
No I don't have a gaming 'PC'. The Mac is probably more powerful and sexy looking than any gaming PC I could build. I've never had any problems with performance. PC manufacturers have kind of got it wrong for 10 years when designing gaming PCs. I don't want a computer that looks like a motorbike, I'm not 12 years old. I want a PC that doesn't look out of place in my living room. I don't want to have to lock it away in its own room.

At one time I did build a smaller PC with a smaller case, but it was always a struggle to fit everything in, and even then everything was quite loud.

Even though I use a Mac I don't use OSX. This kind of makes me a sinner in both camps. PC users hate it because I'm using a Mac (even though it's just a PC) and Mac users hate it because I'm using Windows.

Blur added to obscure giant Rust penis.

At home I have an iMac with Windows installed. OSX has a tool built in to let you easily install Windows. It's not running emulated, it creates a partition and you boot into it. I have one wire coming from my computer, and that's plugged in the wall to power it.

The only disadvantages to using a Mac are the price and the fact that you can't really upgrade them (except for memory). To me this isn't a big deal because I'm rich as fuck so I'm more likely to just buy the latest model instead of trying to get 10fps extra in BF4 by upgrading the graphics card.

My days of taking my PC to bits to make it faster are over. In the same way that I don't take my TV or fridge to bits and change components. This stuff doesn't interest me. I just want to use it.

What are you playing right now?
Banished.

What's your favorite game and why?
Ever? My favourite game ever is probably Black and White 2. I don't know exactly why but it's a game that I return to and play through at least once a year.

Mr. Newman also sent a picture of his "PS4/XBone/Steambox desk" for inclusion:

Garry's Mod
gmodkinect-610x343

You may have noticed some strange behavior in Garry s Mod if you played it a couple of days ago. An exploit that took advantage of the Source Engine s file sending mechanism made it possible to send files with any extension to the client or server. Strangely, this was used to change users Steam name to VINH'LL FIX IT, and using them to spam friends and players with the word cough over chat. The exploit is mostly fixed now, but Garry s Mod s own Garry Newman tells us it could have been a lot worse.
The worm as I understand it was transferred to the client as a dll, then when it loaded it crashed the client, in the hope that they'd join another server, Newman told PC Gamer in an email. When they did it downloaded the server's config file and looked for a rcon password. RCON, or remote console, allows you to control a server remotely. If it got one, it infected the server by uploading the dll and running it (it didn't need rcon to upload the dll, only to run it). And then the cycle continued.
Newman said he patched Garry s Mod within an hour of finding out about it, and that Valve did the same, but that it s still possible for the bug to spread via different Source Engine mods, so be careful what you download.
The effects of the worm were mostly non-destructive as far as we know, Newman said. Luckily the creator kept it pretty tame. It could have been a hell of a lot worse. I hope by being proactive and patching it quickly we avoided anyone using it maliciously.
Apr 19, 2014
Garry's Mod - Rubat
An exploit was released last night that took advantage of the Source Engine’s file sending mechanism which made it possible to send files with any extension to the client or server. This exploit is likely still active in all other Source Engine games so we’re not going to go into specific details about it.

Needless to say that this was exploited in Garry’s Mod on Windows to send dlls to clients and servers. As far as we are aware the exploit wasn’t used to do anything malicious beyond propagating itself, spamming chat and changing server names. But to be safe we recommend that you consider deleting your Garry’s Mod install and starting fresh. It might be a good idea to do an online virus scan too.
The patch we released this morning attempts to clean up any mess left behind by these exploits and patches the variety of methods which they used. If anyone has further information about the exploits, or any exploits left un-patched please email Garry Newman personally at garrynewman@gmail.com.
...