Several tutorials exist online for how to use the system, but I found them not comprehensive enough, and also there were many untested edge cases that could arise in the system. This page contains details on how to use the system, descriptions of the quirks and how mappers can use them. Finally there is a gallery of all available "materials" in the base Half-Life game, the textures that map to the materials, and example sounds for each material type.
Contents
- Introduction
- Contents
- Basic Description
- Quirks
- Technical Details
- Materials Gallery
Basic Description
The system works by using a single file, "valve/sound/materials.txt" located within the main Half-Life install folder. Within the file is a series of lines that assign texture names to the first letter of their materials type, for example:
// Half-Life Texture Types. Modify this file only if texture names are changed! // 'M' metal, 'V' ventillation, 'D' dirt, 'S' slosh liquid // 'T' tile, 'G' grate (Concrete is the default), 'W' wood, 'P' computer, 'Y' glass V SILO2_COR D OUT_GRVL1 M SILO2_P2
would cause any surface with SILO_COR2 to use "V"ent sound effects, OUT_GRVL1 is "D"irt and SILO2_P2 is "M"etal. Any texture NOT covered by this file receives the default "concrete" sounds instead. (This includes the tool textures like NULL, CLIP, AAATRIGGER etc).
Unfortunately, this file is global, and applies to ALL texture names used across ALL maps for a given mod. It also cannot be overridden with custom, map-specific entries.
There are a few ways around this problem:
- Don't worry about it, and live with the default sounds for your custom maps.
- Edit materials.txt yourself. But, all players and server must share the changed file... so you could create a mod with your own materials.txt and assign names as you like.
- Override the materials for objects by using brush entities that allow material choice. Currently, only func_pushable and func_breakable allow this: you could use func_breakable, with "Only Trigger", and then never actually assign a trigger thus making it "unbreakable".
- Name your custom textures to match something already in this file. BSP-included textures override those from WAD files, so your custom textures should take precedence over the stock HL ones.
Quirks
Some quirks of the system can be exploited by mappers to make adding new textures easier. Note that all HL textures have a 15-character name limit, so when using one of these methods, be sure the new texture name still fits.12-Character Limit
The header of materials.txt includes this information:// NOTE: only the first 12 characters of the texture name are used
The comment is interesting for mappers, because it means that it is possible to add many more custom textures without having to overwrite existing ones: by using an existing 12-character material in the list, and using that name as a prefix for your new texture, the first 12 characters will match.
For example, "CRETE2_FLR03" is listed as a "Grate" type texture that is 12 characters long. If you create a custom texture, called CRETE2_FLR03_NU, it will still sound like a Grate because the first 12 characters match. However, "ELEV1_FLR" is also listed, but cannot be used for this purpose: if you create "ELEV1_FLR_MyFlr", only the first 8 characters match.
For this reason 12+ character names in the materials file are "special" and will be highlighted in the Gallery below. This quirk is actually used by some stock HL textures as well to provide material sounds to several textures with one entry, e.g. DRKMTLT_WALL)
Prefix Characters
When the engine compares materials.txt to a map texture, it first removes "texture prefix" characters from the map texture. Specifically, it removes a leading +0 or -0 (or any other digit or letter), then can also remove one of !, ~, {, or space, before comparing. In practice, this means that an entry likeG CHAIN_LINKwill match all of the following texture names:
+0CHAIN_LINK -2CHAIN_LINK +A~CHAIN_LINK ~CHAIN_LINK +1{CHAIN_LINKLike the 12-character limit (above), this can be exploited to add new textures without replacing existing ones, by prepending an unused prefix. For example, to add another wood texture, you could name your texture "-1OUT_WD". This matches OUT_WD from materials.txt but leaves OUT_WD from halflife.wad available as well.
Some prefixes have special meaning, so it is probably best to avoid ! ("liquid"), -0 ("randomly tiled") and { ("semi-transparent").
Technical Details
The material handling code (which types are available, and what do they do?) is entirely hard-coded in a couple of places in the Half-Life DLL files. Mod makers can change this to add new material types or alter the sounds played, but without recompiling the only control is provided through materials.txt. Here are relevant technical details based on code from the Half-Life SDK, which covers basic Half-Life and HLDM (as well as Ricochet and Deathmatch Classic). Other mods may have their own rules.Footsteps
The first part of material handling changes the player footstep sound based on the material they are on. This is stored in Single-Player Source, "pm_shared/pm_shared.c" (the "player movement" shared code). Arrays of 512 entries store mappings of 12-character texture names to a texture type, based on this list:
#define CHAR_TEX_CONCRETE 'C' // texture types #define CHAR_TEX_METAL 'M' #define CHAR_TEX_DIRT 'D' #define CHAR_TEX_VENT 'V' #define CHAR_TEX_GRATE 'G' #define CHAR_TEX_TILE 'T' #define CHAR_TEX_SLOSH 'S' #define CHAR_TEX_WOOD 'W' #define CHAR_TEX_COMPUTER 'P' #define CHAR_TEX_GLASS 'Y' #define CHAR_TEX_FLESH 'F'
When choosing a footstep sound to play, the texture under the player is checked against the list to find a type. Player footsteps alternate left/right and play different sounds for each foot. The material sound to use is determined in PM_UpdateStepSound() (line 491), rules being:
- If the player's on a ladder, use ladder sounds.
- Else if the player's knee height is in content_water, play "Wading" sounds.
- Else if the player's foot height is in content_water, play "Slosh Liquid" sounds.
- Else, check the texture underneath them and use special foot-step sounds based on materials.txt:
- Metal
- Dirt
- Vent
- Grate
- Tile
- Slosh
- All other cases use the default "Concrete" sounds - this includes walking on wood, computer, glass, etc. as well as textures not mentioned in the file, and the tool textures (hence "CLIP" always sounds like concrete).
The actual play routine is at line 286, PM_PlayStepSound(). The determined step type is combined with the left/right foot choice and used to play alternating steps. One interesting trivia is that "Tile" steps have an extra sample for the right foot.
Weapon Noises
Part of the system code is visible in the Half-Life SDK, Single-Player Source, file "sound.cpp", beginning from line 1468. The code demonstrates loading of materials.txt and then using the values to return sounds or effects based on the material hit. File loading code begins at TEXTURETYPE_Init() (line 1535), where up to 512 textures are read from materials.txt and stored. Note string termination at the 13th char, and later "strnicmp" in TEXTURETYPE_Find() limited to a 12-character match.
TEXTURETYPE_PlaySound (line 1622) returns the specific sounds to play based on the texture type hit. When performing world-texture lookup, leading -0, +A etc are stripped, then leading special characters {, ~, ! and space are removed. Assuming a successful lookup, this code block determines the actual sound effects played:
switch (chTextureType) { default: case CHAR_TEX_CONCRETE: fvol = 0.9; fvolbar = 0.6; rgsz[0] = "player/pl_step1.wav"; rgsz[1] = "player/pl_step2.wav"; cnt = 2; break; case CHAR_TEX_METAL: fvol = 0.9; fvolbar = 0.3; rgsz[0] = "player/pl_metal1.wav"; rgsz[1] = "player/pl_metal2.wav"; cnt = 2; break; case CHAR_TEX_DIRT: fvol = 0.9; fvolbar = 0.1; rgsz[0] = "player/pl_dirt1.wav"; rgsz[1] = "player/pl_dirt2.wav"; rgsz[2] = "player/pl_dirt3.wav"; cnt = 3; break; case CHAR_TEX_VENT: fvol = 0.5; fvolbar = 0.3; rgsz[0] = "player/pl_duct1.wav"; rgsz[1] = "player/pl_duct1.wav"; cnt = 2; break; case CHAR_TEX_GRATE: fvol = 0.9; fvolbar = 0.5; rgsz[0] = "player/pl_grate1.wav"; rgsz[1] = "player/pl_grate4.wav"; cnt = 2; break; case CHAR_TEX_TILE: fvol = 0.8; fvolbar = 0.2; rgsz[0] = "player/pl_tile1.wav"; rgsz[1] = "player/pl_tile3.wav"; rgsz[2] = "player/pl_tile2.wav"; rgsz[3] = "player/pl_tile4.wav"; cnt = 4; break; case CHAR_TEX_SLOSH: fvol = 0.9; fvolbar = 0.0; rgsz[0] = "player/pl_slosh1.wav"; rgsz[1] = "player/pl_slosh3.wav"; rgsz[2] = "player/pl_slosh2.wav"; rgsz[3] = "player/pl_slosh4.wav"; cnt = 4; break; case CHAR_TEX_WOOD: fvol = 0.9; fvolbar = 0.2; rgsz[0] = "debris/wood1.wav"; rgsz[1] = "debris/wood2.wav"; rgsz[2] = "debris/wood3.wav"; cnt = 3; break; case CHAR_TEX_GLASS: case CHAR_TEX_COMPUTER: fvol = 0.8; fvolbar = 0.2; rgsz[0] = "debris/glass1.wav"; rgsz[1] = "debris/glass2.wav"; rgsz[2] = "debris/glass3.wav"; cnt = 3; break; case CHAR_TEX_FLESH: if (iBulletType == BULLET_PLAYER_CROWBAR) return 0.0; // crowbar already makes this sound fvol = 1.0; fvolbar = 0.2; rgsz[0] = "weapons/bullet_hit1.wav"; rgsz[1] = "weapons/bullet_hit2.wav"; fattn = 1.0; cnt = 2; break; } // did we hit a breakable? if (pEntity && FClassnameIs(pEntity->pev, "func_breakable")) { // drop volumes, the object will already play a damaged sound fvol /= 1.5; fvolbar /= 2.0; } else if (chTextureType == CHAR_TEX_COMPUTER) { // play random spark if computer if ( ptr->flFraction != 1.0 && RANDOM_LONG(0,1)) { UTIL_Sparks( ptr->vecEndPos ); float flVolume = RANDOM_FLOAT ( 0.7 , 1.0 );//random volume range switch ( RANDOM_LONG(0,1) ) { case 0: UTIL_EmitAmbientSound(ENT(0), ptr->vecEndPos, "buttons/spark5.wav", flVolume, ATTN_NORM, 0, 100); break; case 1: UTIL_EmitAmbientSound(ENT(0), ptr->vecEndPos, "buttons/spark6.wav", flVolume, ATTN_NORM, 0, 100); break; // case 0: EMIT_SOUND(ENT(pev), CHAN_VOICE, "buttons/spark5.wav", flVolume, ATTN_NORM); break; // case 1: EMIT_SOUND(ENT(pev), CHAN_VOICE, "buttons/spark6.wav", flVolume, ATTN_NORM); break; } } } // play material hit sound UTIL_EmitAmbientSound(ENT(0), ptr->vecEndPos, rgsz[RANDOM_LONG(0,cnt-1)], fvol, fattn, 0, 96 + RANDOM_LONG(0,0xf)); //EMIT_SOUND_DYN( ENT(m_pPlayer->pev), CHAN_WEAPON, rgsz[RANDOM_LONG(0,cnt-1)], fvol, ATTN_NORM, 0, 96 + RANDOM_LONG(0,0xf)); return fvolbar; }A few interesting things to note here:
- In many cases, the "hit" sound is the same as the footsteps sound, except with less random variation. For example, Concrete footsteps use player/pl_step1.wav through player/pl_step4.wav, but Concrete "hit" sounds use only pl_step1 and pl_step2.
- A "Flesh" material exists and will play flesh-hitting sounds when used, but only if the weapon is not the crowbar. To use Flesh sounds the prefix "F" is used in materials.txt.
- Hitting a "computer" is the same as hitting "glass", except a computer also fires a spark.
- Hitting func_breakable objects doesn't "replace" the texture sound, it simply "quiets" it and allows the breakable to play its own sound too.
Materials Gallery
The following sections describe each material type in Half-Life, as well as the textures from the base four WAD files (halflife.wad, liquids.wad, xeno.wad, decals.wad) that match those material. Each section also includes short audio clips of the associated footsteps and weapon sounds.Concrete
Type | C |
---|---|
Sample footsteps | |
Sample hit sounds | |
Notes | "Concrete" is the default sound and is used when a texture does not match any defined in materials.txt. It IS possible to assign a texture to concrete using material type "C" but this has no different effect than just leaving it undefined. |
Flesh
Type | F |
---|---|
Sample footsteps | |
Sample hit sounds | |
Notes | No "flesh" materials are listed in materials.txt, so this material is unavailable to mappers. The hit sound does not play when using the crowbar. |
Dirt
Type | D |
---|---|
Sample footsteps | |
Sample hit sounds | |
Notes | There are no 12-character Dirt texture names in materials.txt. |
Material Name | Textures |
---|---|
FROSTSEWFLR | |
GENERIC48 | |
GENERIC49 | |
GENERIC51 | |
GENERIC52 | |
GENERIC93 | |
OUT_DIRT1 | |
OUT_DIRT2 | |
OUT_GRSS1 | |
OUT_GRVL1 | |
OUT_GRVL2 | |
OUT_GRVL2B | |
OUT_GRVL3 | |
OUT_MUD1 | |
OUT_NET1 | |
OUT_NET1B | |
OUT_PAVE2 | |
OUT_SNBAG | |
OUT_SNBAG2 | |
OUT_SNBAGB | |
OUT_SNBAGC | |
OUT_SND1 | |
OUT_SND2 | |
OUT_SND2B | |
OUT_SND2C | |
OUT_TNT1 | |
OUT_TNT1B | |
OUT_TNT1C | |
OUT_TNT2 | |
OUT_TNT3 | |
OUT_TNT3B | |
OUT_WLK |
Grate
Type | G |
---|---|
Sample footsteps | |
Sample hit sounds | |
Notes | n/a |
Material Name | Textures |
---|---|
BABTECH_FLR02
(12 characters) | |
CRETE2_FLR03
(12 characters) | |
CRETE2_FLR03A
(12 characters) | |
CRETE2_FLR03B
(12 characters) | |
CRETE2_FLR03C
(12 characters) | |
ELEV1_FLR | |
ELEV2_FLR | |
ELEV_FLR | |
FROSTFLOOR | |
GENERIC015 | |
GENERIC015A | |
GENERIC015B | |
GENERIC015C | |
GENERIC015D | |
GENERIC015E | |
GENERIC015F | |
GENERIC015G | |
GENERIC015H | |
GENERIC015I | |
GENERIC015V | |
GENERIC109 | |
GRATE1 | |
GRATE2 | |
GRATE2A | |
GRATE3A | |
GRATE3B | |
GRATE4A | |
GRATESTEP1 | |
GRATESTEP2 | |
GRATESTEP3 | |
GRID1 | |
GRID2 | |
LAB1_STAIR2A
(12 characters) | |
TNNL_FLR12 | |
TNNL_FLR12A | |
TNNL_FLR1A |
Metal
Type | G |
---|---|
Sample footsteps | |
Sample hit sounds | |
Notes | n/a |
Material Name | Textures |
---|---|
BABFL | |
BABTECH_C5 | |
C1A1_FLR1 | |
C1A4_DOME3 | |
C2A3TURBINE1
(12 characters) | |
C2A3TURBINE2
(12 characters) | |
C2A3TURBINE3
(12 characters) | |
C2A3TURBINE4
(12 characters) | |
FIFTIES_CMP3
(12 characters) | |
FREEZER_FLR1
(12 characters) | |
GENERIC0150 | (none) |
GENERIC015N | |
GENERIC015P | |
GENERIC015R | |
GENERIC015S | |
GENERIC015T | |
GENERIC015U | |
GENERIC015V | |
GENERIC015V2
(12 characters) | |
LAB1_STAIR2B
(12 characters) | |
LAB3_FLR2A | |
LAB3_FLR2B | |
OUT_QUNST11 | |
SILO2_P2 | |
SILO2_P2B | |
SILO2_P3 | |
SILO2_P4 | |
SILO2_PAN2 | |
SILO2_W1 | |
SILO2_W1A | |
SILO2_W2 | |
SILO2_WALL1 |
Computer / Electrical
Type | P |
---|---|
Sample footsteps | |
Sample hit sounds | |
Sample spark sounds | |
Notes | Computer material is exactly like Glass, except that it has a random chance to create a spark when hit. The step sound is Concrete. |
Material Name | Textures |
---|---|
C1A1_GAD1 | |
C1A1_GAD2 | |
C1A1_GAD3 | |
C1A1_GAD4 | |
C1A1_GAD4A | |
C1A1_GGT8 | |
C1A4_PAN1A | |
C1A4_PAN1B | |
C1A4_SWTCH1 | |
C2A2_SATORB | |
C2A4C2C | |
C2A4W1B | |
C2A4X_C1 | |
C2A4X_C3 | |
C2A4_CMP1 | |
C2A4_GAD2 | |
C3A1_NRC2 | |
C3A2A_W1D | |
C3A2A_W1E | |
C3A2A_W2D | |
C3A2A_W2E | |
CRETESTCH01A
(12 characters) | |
DRKMTLLGT1 | |
DRKMTLT_WALL
(12 characters) | |
DRKMTL_SCRN2
(12 characters) | |
DRKMTL_SCRN3
(12 characters) | |
DRKMTL_SCRN4
(12 characters) | |
ELEV1_DWN | (none) |
ELEV1_PAN | |
ELEV2_PAN | |
FIFTIES_GGT8
(12 characters) | |
FIFTIES_LGT2
(12 characters) | |
FIFTIES_MON1
(12 characters) | |
FIFTIES_MON1B
(12 characters) | |
FIFTIES_MON2
(12 characters) | |
FIFTIES_MON2B
(12 characters) | |
FIFTIES_MON3
(12 characters) | |
FIFTIES_MON3B
(12 characters) | |
FIFTIES_MON4
(12 characters) | |
FIFTIES_PAN2
(12 characters) | |
FIFTS_LGHT01
(12 characters) | |
FIFTS_LGHT3 | |
FIFTS_LGHT4 | |
FIFTS_LGHT5 | |
GENERIC105 | |
GENERIC106 | |
GENERIC107 | |
GENERIC113 | |
GENERIC114 | |
GENERIC87A | |
GENERIC88A | |
GENERIC89A | |
GYMLIGHT | |
LAB1_CMP | |
LAB1_CMP1 | |
LAB1_CMP2 | |
LAB1_CMPM1 | |
LAB1_CMPM2 | |
LAB1_CMPM3 | |
LAB1_CMPM4 | |
LAB1_CMPM5 | |
LAB1_CMPM6 | |
LAB1_CMPM7 | |
LAB1_CMPM8 | |
LAB1_COMP1 | |
LAB1_COMP10A
(12 characters) | |
LAB1_COMP10B
(12 characters) | |
LAB1_COMP10C
(12 characters) | |
LAB1_COMP10D
(12 characters) | |
LAB1_COMP10E
(12 characters) | |
LAB1_COMP2 | |
LAB1_COMP2A | (none) |
LAB1_COMP3 | |
LAB1_COMP3A | |
LAB1_COMP3B | |
LAB1_COMP3C | |
LAB1_COMP3D | |
LAB1_COMP4 | |
LAB1_COMP5 | |
LAB1_COMP7 | |
LAB1_COMP8 | |
LAB1_COMP9A | |
LAB1_COMP9A2
(12 characters) | |
LAB1_COMP9B | |
LAB1_COMP9C | |
LAB1_COMP9D | |
LAB1_GAD2 | |
LAB1_GAD3 | |
LAB1_GAD3B | |
LAB1_GAD4 | |
LAB1_RADSCRN2
(12 characters) | |
LAB1_SW1 | |
LAB4_GAD3 | |
LAB4_GAD4 | |
LAB4_SWTCH | |
LAB_COMPM4 | |
LAB_CRT1 | |
LAB_CRT10A | |
LAB_CRT10B | |
LAB_CRT10C | |
LAB_CRT10D | |
LAB_CRT2 | |
LAB_CRT3 | |
LAB_CRT4 | |
LAB_CRT5 | |
LAB_CRT6 | |
LAB_CRT7 | |
LAB_CRT8 | |
LAB_CRT9C | |
LIGHT1 | |
LIGHT2A | |
LIGHT3A | |
LIGHT3B | |
LIGHT3C | |
LIGHT3D | |
LIGHT3E | |
LIGHT3F | |
LIGHT4A | |
LIGHT5A | |
LIGHT5B | |
LIGHT5C | |
LIGHT5D | |
LIGHT5E | |
LIGHT5F | |
LIGHT6A | |
MEDKIT | |
METALSTCH2 | |
RECHARGEA | |
SPOTBLUE | |
SPOTGREEN | |
SPOTRED | |
SPOTYELLOW | |
TNNL_GAD1 | |
TNNL_GAD2 | |
TNNL_GAD4 | |
TNNL_LGT1 | |
TNNL_LGT2 | |
TNNL_LGT3 | |
TNNL_LGT4 |
Slosh Liquid
Type | S |
---|---|
Sample footsteps | |
Sample hit sounds | |
Notes | Slosh sounds are also used when a player is standing in a liquid (brush entity with contents other than "air") up to foot height. If the water is knee-height, "wade" sounds are played instead. Note that textures beginning with ! are listed here; however, the engine converts these to world-water, so they actually have no sound in-game. There are no 12-character Slosh texture names in materials.txt. |
Material Name | Textures |
---|---|
FLUID1A | |
FLUID1B | |
FLUID2 | |
FLUID3 | |
FLUID4 | |
GENERIC_114 | |
TOXICGRN | |
WATERBLUE | |
WATERF | |
WATERGREEN | |
WATERSILO | |
WATERSILO2 |
Tile
Type | S |
---|---|
Sample footsteps | |
Sample hit sounds | |
Notes | Tile sounds have an extra footstep noise (five, instead of four) - the "squeaky" rubber-on-tile sound. |
Material Name | Textures |
---|---|
C1A0_LABFLR | |
C1A0_LABFLRB
(12 characters) | |
C1A0_LABFLRC
(12 characters) | |
C1A0_LABFLRD
(12 characters) | |
C1A0_LABFLRE
(12 characters) | |
C1A2_FLR1 | |
C1A2_FLR2 | |
C2A4_FLR6 | |
FIFTIES_F01 | |
FIFTIES_F02 | |
FIFTIES_F03 | |
FIFTIES_F03B
(12 characters) | |
FIFTIES_FLR01
(12 characters) | |
FIFTIES_FLR02
(12 characters) | |
FIFTIES_FLR02B
(12 characters) | |
FIFTIES_FLR02C
(12 characters) | |
FIFTIES_FLR03
(12 characters) | |
FIFTIES_FLR03B
(12 characters) | |
FIFTIES_FLR5
(12 characters) | |
FIFT_BLOODFLR
(12 characters) | (none) |
FIFT_BLOODFLRA
(12 characters) | (none) |
LAB1_BLUX1 | (none) |
LAB1_BLUX1B | (none) |
LAB1_BLUXFLR1
(12 characters) | |
LAB1_BLUXFLR1B
(12 characters) | |
LAB1_C4003 | |
LAB1_C4A001 | |
LAB1_C4B002 | |
LAB1_C4D2 | |
LAB1_CAB2 | |
LAB1_FLOOR10
(12 characters) | (none) |
LAB1_FLOOR2A
(12 characters) | |
LAB1_FLOOR2B
(12 characters) | |
LAB1_FLOOR3 | |
LAB1_FLOOR4 | |
LAB1_FLOOR5 | |
LAB1_FLOOR6 | |
LAB1_FLR3 | |
LAB1_FLR4 | |
LAB1_FLR4B | |
LAB1_FLR4C | |
LAB1_FLR4D | |
LAB1_FLR5B | |
LAB1_FLR5C | |
LAB1_FLR5D | |
LAB1_FLR6B | |
LAB1_FLR6C | |
LAB1_FLR6D | |
LAB1_W8FLR1 | |
LAB1_W8FLR1B
(12 characters) | |
LAB1_W8FLR1C
(12 characters) | |
LAB1_W8FLR1D
(12 characters) |
Ventilation
Type | V |
---|---|
Sample footsteps | |
Sample hit sounds | |
Notes | There are no 12-character Vent texture names in materials.txt. Vent materials have only one "hit" sound. |
Material Name | Textures |
---|---|
DUCT_FLR01 | |
DUCT_FLR01A | |
DUCT_FLR02A | |
DUCT_VNT | |
DUCT_VNT2 | |
DUCT_WALL01 | |
DUCT_WALL02 | |
DUCT_WALL03 | |
DUCT_WALL04 | |
SILO2_COR |
Wood
Type | V |
---|---|
Sample footsteps | |
Sample hit sounds | |
Notes | The step sound is Concrete. |
Material Name | Textures |
---|---|
BCRATE02 | |
BCRATE03 | |
BCRATE04 | |
BCRATE05 | |
BCRATE06 | |
BCRATE07 | |
BCRATE08 | |
BCRATE12 | |
BCRATE14 | |
BCRATE15 | |
BCRATE16 | |
BCRATE17 | |
BCRATE18 | |
BCRATE25 | |
BCRATE26 | |
CRATE01 | |
CRATE02 | |
CRATE02B | |
CRATE03 | |
CRATE04 | |
CRATE05 | |
CRATE06 | |
CRATE07 | |
CRATE08 | |
CRATE08B | |
CRATE09 | |
CRATE09B | |
CRATE09C | |
CRATE10 | |
CRATE11 | |
CRATE12 | |
CRATE13 | |
CRATE19 | |
CRATE20 | |
CRATE21 | |
CRATE22 | |
CRATE23 | |
CRATE24 | |
CRATE25 | |
CRATE27 | |
FIFTIES_CCH1
(12 characters) | |
FIFTIES_CCH2
(12 characters) | |
FIFTIES_CCH3
(12 characters) | |
FIFTIES_CCH4
(12 characters) | |
FIFTIES_DR1K
(12 characters) | |
FIFTIES_DR2 | |
FIFTIES_DR6 | |
FIFTIES_DR6A
(12 characters) | |
FIFTIES_DR7 | |
FIFTIES_DR8 | |
FIFTIES_DR9 | |
FIFTIES_DSK1
(12 characters) | |
OUT_CAC1 | |
OUT_CAC2 | |
OUT_SLAT01 | |
OUT_WD |
Glass
Type | Y |
---|---|
Sample footsteps | |
Sample hit sounds | |
Notes | The step sound is Concrete. |
Material Name | Textures |
---|---|
GLASSBLUE1 | |
GLASSBLUE2 | |
GLASSGREEEN | (none) |
GLASS_BRIGHT
(12 characters) | |
GLASS_DARK | |
GLASS_MED |