Please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Garry's Mod (2012)

From The Cutting Room Floor
(Redirected from Garry's Mod)
Jump to: navigation, search

Title Screen

Garry's Mod

Also known as: Garry's Mod 13
Developer: Facepunch Studios
Publisher: Valve
Platforms: Windows, Mac OS X, Linux
Released internationally: October 24, 2012


DevMessageIcon.png This game has a hidden developer message.
DevTextIcon.png This game has hidden development-related text.
GraphicsIcon.png This game has unused graphics.
SoundIcon.png This game has unused sounds.
Carts.png This game has revisional differences.
PiracyIcon.png This game has anti-piracy features.


So very stubbly.
This page is rather stubbly and could use some expansion.
Are you a bad enough dude to rescue this article?

Formerly a Half-Life 2 mod, Garry's Mod is a physics-based sandbox game that can be purchased from Steam. This page is about the standalone Steam release.

Hmmm...
To do:
Anything in the older versions of Garry's Mod? The older versions can be found on ModDB.

Subpages

Blank.png
Early forms of Garry's Mod
Well, Thank you for that.

Unused Graphics

GarrysMod13 untitled-2.psd.png

An untitled Photoshop file of what appears to be tape.

GMod13 weapon annabelle spawnicon.png

An unused spawn icon for the Annabelle weapon which is disabled by default. For info about how to reactivate it, see the unused text section.

Unused Teams

Inside of gamemodes/base/gamemode/shared.lua, there are definitions for a set of teams that go unused, including a rather curiously named "Sexy Team".

	TEAM_BLUE = 1
	team.SetUp( TEAM_BLUE, "Blue Team", Color( 0, 0, 255 ) )
	team.SetSpawnPoint( TEAM_BLUE, "ai_hint" ) -- <-- This would be info_terrorist or some entity that is in your map

	TEAM_ORANGE = 2
	team.SetUp( TEAM_ORANGE, "Orange Team", Color( 255, 150, 0 ) )
	team.SetSpawnPoint( TEAM_ORANGE, "sky_camera" ) -- <-- This would be info_terrorist or some entity that is in your map

	TEAM_SEXY = 3
	team.SetUp( TEAM_SEXY, "Sexy Team", Color( 255, 150, 150 ) )
	team.SetSpawnPoint( TEAM_SEXY, "info_player_start" ) -- <-- This would be info_terrorist or some entity that is in your map

Unused Text

--ADD_WEAPON( "Alyx Gun",			"weapon_alyxgun" )
--ADD_WEAPON( "Annabelle",		"weapon_annabelle" )

game_hl2.lua contains two commented out weapons from Half-Life 2. Re-adding them to the game functions normally. They can also be obtainable when a NPC drops one of the weapons when killed. Also when re-added, the aftermentioned unused spawn icon can be seen for the Annabelle in the spawn menu.

//"$bumpmap" "gm_construct/grassnormal"

materials/gm_construct/grass.vmt contains a commented-out bumpmap texture which is missing in the game files.

//"LightmappedGeneric"
//{
//	"$basetexture2" "nature/sandfloor009b"
//	"$basetexture" "gm_construct/grass1"
//	
//	//"$bumpmap" "gm_construct/grassnormal"
//	
//	"$surfaceprop" "grass"
//	"$surfaceprop2" "grass"
//	
//	// If there was a detailtransform, we could probably scroll the clouds
//	
//	"$detail" "gm_construct/grass_clouds"
//	"$detailscale" "0.03"
//	
//}

materials/gm_construct/grass-sand_13.vmt contains an alternate material information incase if the developers want to rollback to it.

Hidden Developer Messages

In gamemodes\terrortown\content\materials\models\ttt\deerstalker, the texture file deerstalker.vtf contains a hidden message at the top that says "I am bad at texturing".

GarrysMod13 deerstalker hidden message.png

In the maxofs2d\models folder, three textures contain messages from MaxOfS2D himself.

GarrysMod13 gm painting hidden message.png

"Man, there's a ton of
wasted UV space in that
corner. I wish I could
get an use for it, but this
is a silly painting prop
that I didn't even warn
Garry about. I think
we'll have to live with
these kilobytes of
wasted texture memory.

MaxOfS2D was here.
In your Gmod 13. :>"

GarrysMod13 hover classic hidden message.png

"max's in your
hoverballs
:)

oh baby"

GarrysMod13-button 04-hidden message.png

"MaxOfS2D
was here."

// If there was a detailtransform, we could probably scroll the clouds

materials/gm_construct/flatgrass.vmt

	"$nocull" "1"	// I wanted to have $nocull enabled only at
	                // the two lowest LODs, but Source didn't
			// want to let me. SOURCE ENGINE IN ACTION.	

materials/maxofs2d/models/hover_propeller.vmt

	// Yack, but it's the only way I can find to enable phong.

This message can be found in multiple vmt files at materials/models/balloon.

	// $glowcolor "[0 0 0]"
	// this is what makes the buster appear black in Gmod

materials/models/bots/demo/demo_buster.vmt

	// ------------------------------------------------------------------------
	// PLAYER COLOR CUSTOMIZATION
	// ------------------------------------------------------------------------
	
	// The following chain of proxies is to modulate phong tint (and rimlight,
	// by extension) according to your chosen player color, but only within a
	// certain saturation range: 50%. This might be confusing, I tried my best
	// to comment it, e-mail maxofs2d@facepunchstudios.com if you have any
	// questions regarding how player colourability is set up in VMTs. GLHF.
	
	"$blendtintbybasealpha" "1" // alpha channel of $basetexture: color mask.
 	"$blendtintcoloroverbase" "0" // blend mode. anything =/= 0 is ugly!
	
	// --- Test values. Comment the PlayerColor proxy to use one of these.
	// "$color2" "{0 0 0}" // Black
	// "$color2" "{255 0 0}" // Blue (default)
	// "$color2" "{59 121 160}" // Blue (TF2)
	// "$color2" "{180 52 41}" // Red (TF2)
	// "$color2" "{100 72 58}" // Brown
	// "$color2" "{140 208 112}" // Green
	// "$color2" "{248 166 202}" // Pink
	// "$color2" "{160 100 140}" // Purple
	// "$color2" "{242 168 96}" // Yellow (gold-ish)
	
	"$PhongBrightnessScalar" "0.5" // see below. "0.5" will get overwritten.
	
		PlayerColor
		{
			resultVar	$color2 // pass the player color value to Gmod
			default		0.23 0.35 0.41 // unused for now.
		}
		Clamp // clamp the chosen color between 1% and 125% (usually)
		
		Clamp // copy this value to phong tint, clamp it to 50% min.
		
		Equals // copy $color2 value to exterior variable. this makes it
		{      // no longer a RGB array but a single float instead (!??)
		
		Multiply // multiply $phongtint by this new float value.
		
		Clamp // the result of this multiply doesn't go any lower than 20%

A lot of vmts labeled with player_sheet.vmt or plyr_sheet.vmt contain this message. Some other files vary:

Chell
	// Only a small part of the material is coloured here, so the chain of
	// proxies that modulates rimlight/phong is not present.
	// See ALyx's plyr_sheet for a proper example of those.
Combine Elite
	// This particular model doesn't use the long chain of proxies seen
	// elsewhere, since only a small part of the model is coloured. If you're
	// looking for an example, try models/alyx/plyr_sheet.vmt :)
Corpse
	// This model doesn't vary phong tint based on the player color
	// since the phong effect is being used for the shininess of the blood.
	// If you're looking for a setup example, see alyx/plyr_sheet.vmt :)
	// "$color2" "{58 54 52}" // Anthracite
	// "$color2" "{255 0 0}" // Blue (dark)
	// "$color2" "{59 121 160}" // Blue (fortress)
	// "$color2" "{182 217 234}" // Blue (sky)
	// "$color2" "{86 72 60}" // Brown (dark)
	// "$color2" "{196 162 128}" // Brown (light)
	// "$color2" "{96 174 140}" // Green (medical)
	// "$color2" "{128 196 112}" // Green (wildlife)
	// "$color2" "{248 166 202}" // Purple (candy)
	// "$color2" "{152 144 226}" // Purple (lavande)
	// "$color2" "{160 100 140}" // Purple (saints)
	// "$color2" "{180 52 41}" // Red (fortress)
	// "$color2" "{242 168 96}" // Red (ocre)
	// "$color2" "{222 104 78}" // Red (salmon)
	// "$color2" "{230 186 92}" // Yellow
	// "$color2" "{248 244 248}" // White

A lot of vmts contain multiple colors mainly used for testing.

// No configuration. Entity controlled.

All vmts inside materials/skybox contain this message.

#
# These files aren't fully sent to the client because they
# should never change. Instead we send the CRC of this file
# so the client can load their version - and we know it's kewl.
#

In gamemodes/base, the send.txt contains this.

// This isn't needed because we don't use Valve's server creation crap

VERSION 1.0

DESCRIPTION SERVER_OPTIONS
{
	
}

settings_default.scr in the cfg folder isn't used.

-- Don't try to edit this file if you're trying to add new NPCs.
-- Just make a new file and copy the format below.

-- Did you know that this MAN can shoot annabelle like he's been doing it his whole life?
local NPC = {
	Name = "Dr. Isaac Kleiner",
	Class = "npc_kleiner",
	Category = Category
}

-- I don't trust these Vorts, but I'll let em stay in this category until they mess up
local NPC = {
	Name = "Vortigaunt",
	Class = "npc_vortigaunt",
	Category = Category
}

	--local NPC = { Name = "Turret", Class = "monster_turret", Category = Category } list.Set( "NPC", NPC.Class, NPC )
	--local NPC = { Name = "Mini Turret", Class = "monster_miniturret", Category = Category } list.Set( "NPC", NPC.Class, NPC )
	--local NPC = { Name = "Sentry", Class = "monster_sentry", Category = Category, Offset = -20, OnFloor = true } list.Set( "NPC", NPC.Class, NPC )

base_npcs.lua contains a couple of developer text and three commented out NPC additions for Half-Life: Source. Re-adding the NPCs do nothing as their class entities are non-existent.

-- Not adding this, because exit animation leaves you stuck in the middle
--[[local V = {
	Name = "FSD Overrun",
	Model = "models/props_phx/trains/fsd-overrun2.mdl",
	Class = "prop_vehicle_prisoner_pod",
	Category = Category,

	Author = "PhoeniX-Storms",
	Information = "FSD Overrun Monorail",

	KeyValues = {
		vehiclescript = "scripts/vehicles/prisoner_pod.txt",
		limitview = "0"
	},
	Members = {
		HandleAnimation = HandlePHXVehicleAnimation,
	}
}
list.Set( "Vehicles", "phx_train", V )]]

base_vehicles.lua contains a commented out vehicle and an explaination why it's not in the game. Re-adding it to the game functions normally but the model tends to get stuck in the ground and doesn't do anything else.

/*
		This kind of works but they don't move their stupid mouths. So fuck off.

		self.Scenes = pnl:Add( "DTree" )
		self.Scenes:Dock( BOTTOM )
		self.Scenes:SetSize( 200, 200 )
		self.Scenes.DoClick = function( _, node )
				
			if ( !node.FileName ) then return end
			local ext = string.GetExtensionFromFilename( node.FileName );
			if( ext != "vcd" ) then return end
					
			self.ModelPanel:StartScene( node.FileName );
			MsgN( node.FileName )
				
		end
		
		local materials = self.Scenes.RootNode:AddFolder( "Scenes", "scenes/",	true );
		materials:SetIcon( "icon16/photos.png" )		
*/

iconeditor.lua contains a rude message why this commented out code doesn't work.

--=============================================================================--
--  ___  ___   _   _   _    __   _   ___ ___ __ __
-- |_ _|| __| / \ | \_/ |  / _| / \ | o \ o \\ V /
--  | | | _| | o || \_/ | ( |_n| o ||   /   / \ / 
--  |_| |___||_n_||_| |_|  \__/|_n_||_|\\_|\\ |_|  2010
--										 
--=============================================================================--
--[[__                                       _
 / _| __ _  ___ ___ _ __  _   _ _ __   ___| |__
| |_ / _` |/ __/ _ \ '_ \| | | | '_ \ / __| '_ \
|  _| (_| | (_|  __/ |_) | |_| | | | | (__| | | |
|_|  \__,_|\___\___| .__/ \__,_|_| |_|\___|_| |_|
                   |_| 2012 --]]

A few Lua files contain these credits.

Unused Sounds

Garry's Mod formerly made use of an in-game feature called The Toybox for ease-of-use mod downloading. When this feature was replaced by Steam Workshop integration, the Toybox "download complete" audio file was left unused.

Anti-Piracy

Garrysmod shadepolygon error.png

If the game detects it was pirated, it will pretend to crash and display a fake error message stating "Unable to shade polygon normals", which is not actually an error that can occur. The "error code" provided with the message will be equivalent to the pirate's Steam ID, causing many pirates to out themselves posting the error and its code on the official Garry's Mod forums, resulting in a ban from the forums after being laughed at.