If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
This article has a talk page!

Garry's Mod (2012)

From The Cutting Room Floor
(Redirected from Garry's Mod)
Jump to navigation Jump to 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.


<Sanky> please suggest an unused sprite with a clock or something
This game is still under active development.
Be aware that any unused content you find may become used or removed in the future. Please only add things to the article that are unlikely to ever be used, or went unused for some time. If they do get used, please remove them from the page and specify in the edit summary!
Hmmm...
To do:
Anything in the older versions of Garry's Mod? The older versions can be found on ModDB.

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.

Sub-Page

Garry's mod 1.PNG
Early forms of Garry's Mod
Good old Garry's Mod!
TTT icon.png
Trouble in Terrorist Town
Lies, deception, and cut content.

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.

GMod13 us flag.png
A leftover US flag from the "Flags" icon pack by FAMFAMFAM.

Hidden Weapons

Garry's Mod has some leftover/hidden weapons from Half-Life 1. For the weapons to show properly, you need Half-Life: Source mounted in the game for them to look and sound properly.

Gluon Gun

Gmod-egon-preview.png
weapon_egon: The Gluon Gun is a weapon from Half-Life 1, visually described as a shooter attached to a backpack. The weapon works as intended, with the crosshair for that weapon in the original game.

Tau Cannon

Gmod-gauss-preview.png
weapon_gauss: The Tau Cannon is from HL1 too, but was also featured in HL2. In HL1 it was a normal weapon, then in HL2 it was attached to the Buggy that is driven in the game. Interestingly, this weapon's icon was used for the Physics Gun.

Satchel Charge

Gmod-satchelc-preview.png
weapon_satchel: The Satchel Charge, which later became one of the weapons, called S.L.A.M. that was in Half-Life 2: Deathmatch, is also here. The missing textures also apply to this weapon.

Tripmine

Gmod-tripmine-preview.png
weapon_tripmine: The Tripmine, which had its function be merged with the above weapon to make the S.L.A.M. also exists here. When placed on a wall, it emits a beam which causes the explosive to detonate if crossed.

Cubemaps

Gmod-cubemaps-preview.png
weapon_cubemap: a test/debug weapon leftover common to many Source games pre-Left 4 Dead for testing cubemap reflections. Its viewmodel and worldmodel have some spheres showing reflections of the map you are currently in. It can otherwise be obtained through the impulse 81 console command.

Basehlcombatweapon

Basehlcombatweapon, which is the base class for all firearms in Half-Life 2, has a spawnable entity. Interestingly, in Garry's Mod it has the default name "SWEP", uses the .357 Magnum's viewmodel and ammunition, but is also capable of rapid-fire.

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.

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 the maxofs2d\models folder, three textures contain messages from MaxOfS2D himself.

gm_painting

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 gm painting new.png

This texture was later updated, removing the message and replacing it with a QR code. When scanned, the QR code reads:

Don't leave cheesy messages in a texture file everyone can see, because you'll be really embarrassed when a wiki documents it. (But hey, sometimes you gotta learn the hard way.) Thanks for playing Gmod!

hover_basic

GarrysMod13 hover classic hidden message.png

max's in your
hoverballs
:)

oh baby


GarrysMod13 hover classic new.png

This texture was later updated, removing the message and replacing it with a QR code. When scanned, the QR code leads you to the Wikipedia page for a sphere.


button_04

GarrysMod13-button 04-hidden message.png

MaxOfS2D
was here.


GarrysMod13 button 04 new.png

This message has since been removed.

VMT Files

// 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.

Lua Files

-- 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
}

base_npcs.lua contains a couple of developer text.

-- 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 explanation 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.

Misc Files

#
# 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.

Anti-Piracy

Garrysmod shadepolygon error.png

A patch released for the game on April 13, 2011 checked the game's legitimacy by connecting to The Toybox website (Which no longer works due to Steam Workshop having replaced it) and verifying the pirate's Steam account. If the check failed, the game pretends to crash with a nonsensical error, stating that the game was "unable to shade polygon normals," along an error code that corresponded to the pirate's Steam ID. This would've allowed for easy identification if they attempted to seek help online, particularly the official Garry's Mod forums where they would receive a ban if posted.