#name "material" #dll "pc" "material" #dll "ps3" "material" #dll "xenon" "material_xenon" #dll "wii" "material_wii" #dll "all" "material_properties" #source_dir "material_source" #target_dir "materials/" #target_dir "images/" #target_dir "material_properties/" #file_ext "*" #version 103 string "material.template" template enum { "world phong", "model phong", "model ambient", "world unlit", "model unlit", "unlit", "2d", "impact mark", "effect", "distortion", "particle cloud", "tools", "sky", "sky noncubemap", "sky noncubemap transition", "water", "ocean", "objective", "tree canopy", "dynamic foliage", "cloud", "custom", "CGFX", "CGFXmodel", "projected decal", "model cook-torrance", "rope" } materialType enum { "none", "clothcharr", "eyeball", "clothwet" } materialFeatureType // Locale specifications. Adding a new locale also requires adding a checkbox for it. // Locale specifications must match the locales in 'locale.txt' exactly, with spaces // replaced by '_' and with 'locale_' prefixed. int 0 0 1 locale_case int 0 0 1 locale_test int 0 0 1 locale_tools int 0 0 1 locale_decal int 0 0 1 locale_Training int 0 0 1 locale_Peleliu int 0 0 1 locale_Okinawa int 0 0 1 locale_Holland int 0 0 1 locale_Hamburg int 0 0 1 locale_Rhine int 0 0 1 locale_Berlin int 0 0 1 locale_Seelow // Usage specifications. Adding a new usage only requires changing this list. enum { "", "case", "tools", "------------------------", "door", "floor", "ceiling", "roof", "interior wall", "interior trim", "exterior wall", "exterior trim", "window", "poster", "sign", "------------------------", "core", "damage", "------------------------", "trench", "fence", "background", "foliage", "ground", "liquid", "road", "rock", "sky", "------------------------", "barrel", "crate" } usage enum { "", "", "asphalt", "brick", "carpet", "ceramic", "cloth", "concrete", "dirt", "flesh", "foliage", "glass", "grass", "gravel", "ice", "metal", "mud", "paper", "plaster", "plastic", "rock", "rubber", "sand", "snow", "water", "wood" | "bark", "cushion", "fruit", "paintedmetal", "tallgrass" } surfaceType string cgfx_filename string cgfxTemplate float 2.5 -1000000000.0 1000000000.0 cg00_x float 2.5 -1000000000.0 1000000000.0 cg00_y float 2.5 -1000000000.0 1000000000.0 cg00_z float 2.5 -1000000000.0 1000000000.0 cg00_w float 2.5 -1000000000.0 1000000000.0 cg01_x float 2.5 -1000000000.0 1000000000.0 cg01_y float 2.5 -1000000000.0 1000000000.0 cg01_z float 2.5 -1000000000.0 1000000000.0 cg01_w float 2.5 -1000000000.0 1000000000.0 cg02_x float 2.5 -1000000000.0 1000000000.0 cg02_y float 2.5 -1000000000.0 1000000000.0 cg02_z float 2.5 -1000000000.0 1000000000.0 cg02_w float 2.5 -1000000000.0 1000000000.0 cg03_x float 2.5 -1000000000.0 1000000000.0 cg03_y float 2.5 -1000000000.0 1000000000.0 cg03_z float 2.5 -1000000000.0 1000000000.0 cg03_w float 2.5 -1000000000.0 1000000000.0 cg04_x float 2.5 -1000000000.0 1000000000.0 cg04_y float 2.5 -1000000000.0 1000000000.0 cg04_z float 2.5 -1000000000.0 1000000000.0 cg04_w float 2.5 -1000000000.0 1000000000.0 cg05_x float 2.5 -1000000000.0 1000000000.0 cg05_y float 2.5 -1000000000.0 1000000000.0 cg05_z float 2.5 -1000000000.0 1000000000.0 cg05_w float 2.5 -1000000000.0 1000000000.0 cg06_x float 2.5 -1000000000.0 1000000000.0 cg06_y float 2.5 -1000000000.0 1000000000.0 cg06_z float 2.5 -1000000000.0 1000000000.0 cg06_w float 2.5 -1000000000.0 1000000000.0 cg07_x float 2.5 -1000000000.0 1000000000.0 cg07_y float 2.5 -1000000000.0 1000000000.0 cg07_z float 2.5 -1000000000.0 1000000000.0 cg07_w float 2.5 -1000000000.0 1000000000.0 cg08_x float 2.5 -1000000000.0 1000000000.0 cg08_y float 2.5 -1000000000.0 1000000000.0 cg08_z float 2.5 -1000000000.0 1000000000.0 cg08_w float 2.5 -1000000000.0 1000000000.0 cg09_x float 2.5 -1000000000.0 1000000000.0 cg09_y float 2.5 -1000000000.0 1000000000.0 cg09_z float 2.5 -1000000000.0 1000000000.0 cg09_w float 2.5 -1000000000.0 1000000000.0 cg10_x float 2.5 -1000000000.0 1000000000.0 cg10_y float 2.5 -1000000000.0 1000000000.0 cg10_z float 2.5 -1000000000.0 1000000000.0 cg10_w float 2.5 -1000000000.0 1000000000.0 cg11_x float 2.5 -1000000000.0 1000000000.0 cg11_y float 2.5 -1000000000.0 1000000000.0 cg11_z float 2.5 -1000000000.0 1000000000.0 cg11_w float 2.5 -1000000000.0 1000000000.0 cg12_x float 2.5 -1000000000.0 1000000000.0 cg12_y float 2.5 -1000000000.0 1000000000.0 cg12_z float 2.5 -1000000000.0 1000000000.0 cg12_w float 2.5 -1000000000.0 1000000000.0 cg13_x float 2.5 -1000000000.0 1000000000.0 cg13_y float 2.5 -1000000000.0 1000000000.0 cg13_z float 2.5 -1000000000.0 1000000000.0 cg13_w float 2.5 -1000000000.0 1000000000.0 cg14_x float 2.5 -1000000000.0 1000000000.0 cg14_y float 2.5 -1000000000.0 1000000000.0 cg14_z float 2.5 -1000000000.0 1000000000.0 cg14_w float 2.5 -1000000000.0 1000000000.0 cg15_x float 2.5 -1000000000.0 1000000000.0 cg15_y float 2.5 -1000000000.0 1000000000.0 cg15_z float 2.5 -1000000000.0 1000000000.0 cg15_w float 2.5 -1000000000.0 1000000000.0 cg16_x float 2.5 -1000000000.0 1000000000.0 cg16_y float 2.5 -1000000000.0 1000000000.0 cg16_z float 2.5 -1000000000.0 1000000000.0 cg16_w float 2.5 -1000000000.0 1000000000.0 cg17_x float 2.5 -1000000000.0 1000000000.0 cg17_y float 2.5 -1000000000.0 1000000000.0 cg17_z float 2.5 -1000000000.0 1000000000.0 cg17_w float 2.5 -1000000000.0 1000000000.0 cg18_x float 2.5 -1000000000.0 1000000000.0 cg18_y float 2.5 -1000000000.0 1000000000.0 cg18_z float 2.5 -1000000000.0 1000000000.0 cg18_w float 2.5 -1000000000.0 1000000000.0 cg19_x float 2.5 -1000000000.0 1000000000.0 cg19_y float 2.5 -1000000000.0 1000000000.0 cg19_z float 2.5 -1000000000.0 1000000000.0 cg19_w float 2.5 -1000000000.0 1000000000.0 cg20_x float 2.5 -1000000000.0 1000000000.0 cg20_y float 2.5 -1000000000.0 1000000000.0 cg20_z float 2.5 -1000000000.0 1000000000.0 cg20_w float 2.5 -1000000000.0 1000000000.0 cg21_x float 2.5 -1000000000.0 1000000000.0 cg21_y float 2.5 -1000000000.0 1000000000.0 cg21_z float 2.5 -1000000000.0 1000000000.0 cg21_w float 2.5 -1000000000.0 1000000000.0 cg22_x float 2.5 -1000000000.0 1000000000.0 cg22_y float 2.5 -1000000000.0 1000000000.0 cg22_z float 2.5 -1000000000.0 1000000000.0 cg22_w float 2.5 -1000000000.0 1000000000.0 cg23_x float 2.5 -1000000000.0 1000000000.0 cg23_y float 2.5 -1000000000.0 1000000000.0 cg23_z float 2.5 -1000000000.0 1000000000.0 cg23_w float 2.5 -1000000000.0 1000000000.0 cg24_x float 2.5 -1000000000.0 1000000000.0 cg24_y float 2.5 -1000000000.0 1000000000.0 cg24_z float 2.5 -1000000000.0 1000000000.0 cg24_w float 2.5 -1000000000.0 1000000000.0 cg25_x float 2.5 -1000000000.0 1000000000.0 cg25_y float 2.5 -1000000000.0 1000000000.0 cg25_z float 2.5 -1000000000.0 1000000000.0 cg25_w float 2.5 -1000000000.0 1000000000.0 cg26_x float 2.5 -1000000000.0 1000000000.0 cg26_y float 2.5 -1000000000.0 1000000000.0 cg26_z float 2.5 -1000000000.0 1000000000.0 cg26_w float 2.5 -1000000000.0 1000000000.0 cg27_x float 2.5 -1000000000.0 1000000000.0 cg27_y float 2.5 -1000000000.0 1000000000.0 cg27_z float 2.5 -1000000000.0 1000000000.0 cg27_w float 2.5 -1000000000.0 1000000000.0 cg28_x float 2.5 -1000000000.0 1000000000.0 cg28_y float 2.5 -1000000000.0 1000000000.0 cg28_z float 2.5 -1000000000.0 1000000000.0 cg28_w float 2.5 -1000000000.0 1000000000.0 cg29_x float 2.5 -1000000000.0 1000000000.0 cg29_y float 2.5 -1000000000.0 1000000000.0 cg29_z float 2.5 -1000000000.0 1000000000.0 cg29_w float 2.5 -1000000000.0 1000000000.0 cg30_x float 2.5 -1000000000.0 1000000000.0 cg30_y float 2.5 -1000000000.0 1000000000.0 cg30_z float 2.5 -1000000000.0 1000000000.0 cg30_w float 2.5 -1000000000.0 1000000000.0 cg31_x float 2.5 -1000000000.0 1000000000.0 cg31_y float 2.5 -1000000000.0 1000000000.0 cg31_z float 2.5 -1000000000.0 1000000000.0 cg31_w string colorLabel00 string colorLabel01 string colorLabel02 string colorLabel03 string colorLabel04 string colorLabel05 string colorLabel06 string colorLabel07 string colorLabel08 string colorLabel09 string colorLabel10 string colorLabel11 string colorLabel12 string colorLabel13 string colorLabel14 string colorLabel15 string varLabel00 string varLabel01 string varLabel02 string varLabel03 string varLabel04 string varLabel05 string varLabel06 string varLabel07 string varLabel08 string varLabel09 string varLabel10 string varLabel11 string varLabel12 string varLabel13 string varLabel14 string varLabel15 string varLabel16 string varLabel17 string varLabel18 string varLabel19 string varLabel20 string varLabel21 string varLabel22 string varLabel23 string varLabel24 string varLabel25 string varLabel26 string varLabel27 string varLabel28 string varLabel29 string varLabel30 string varLabel31 string colorMap00 string colorMap01 string colorMap02 string colorMap03 string colorMap04 string colorMap05 string colorMap06 string colorMap07 string colorMap08 string colorMap09 string colorMap10 string colorMap11 string colorMap12 string colorMap13 string colorMap14 string colorMap15 enum { "tile both*", "tile horizontal", "tile vertical", "no tile" } texTile00 enum { "tile both*", "tile horizontal", "tile vertical", "no tile" } texTile01 enum { "tile both*", "tile horizontal", "tile vertical", "no tile" } texTile02 enum { "tile both*", "tile horizontal", "tile vertical", "no tile" } texTile03 enum { "tile both*", "tile horizontal", "tile vertical", "no tile" } texTile04 enum { "tile both*", "tile horizontal", "tile vertical", "no tile" } texTile05 enum { "tile both*", "tile horizontal", "tile vertical", "no tile" } texTile06 enum { "tile both*", "tile horizontal", "tile vertical", "no tile" } texTile07 enum { "tile both*", "tile horizontal", "tile vertical", "no tile" } texTile08 enum { "tile both*", "tile horizontal", "tile vertical", "no tile" } texTile09 enum { "tile both*", "tile horizontal", "tile vertical", "no tile" } texTile10 enum { "tile both*", "tile horizontal", "tile vertical", "no tile" } texTile11 enum { "tile both*", "tile horizontal", "tile vertical", "no tile" } texTile12 enum { "tile both*", "tile horizontal", "tile vertical", "no tile" } texTile13 enum { "tile both*", "tile horizontal", "tile vertical", "no tile" } texTile14 enum { "tile both*", "tile horizontal", "tile vertical", "no tile" } texTile15 enum { "mip standard (2x bilinear)*" | "*" | "bilinear" | "trilinear" | "anisotropic", "mip expensive (4x bilinear)", "mip more expensive (2x trilinear)", "mip most expensive (4x trilinear)", "nomip nearest" | "nearest", "nomip bilinear" | "linear", "mip (1x bilinear)", "mip (1x trilinear)" } filterColor00 enum { "mip standard (2x bilinear)*" | "*" | "bilinear" | "trilinear" | "anisotropic", "mip expensive (4x bilinear)", "mip more expensive (2x trilinear)", "mip most expensive (4x trilinear)", "nomip nearest" | "nearest", "nomip bilinear" | "linear", "mip (1x bilinear)", "mip (1x trilinear)" } filterColor01 enum { "mip standard (2x bilinear)*" | "*" | "bilinear" | "trilinear" | "anisotropic", "mip expensive (4x bilinear)", "mip more expensive (2x trilinear)", "mip most expensive (4x trilinear)", "nomip nearest" | "nearest", "nomip bilinear" | "linear", "mip (1x bilinear)", "mip (1x trilinear)" } filterColor02 enum { "mip standard (2x bilinear)*" | "*" | "bilinear" | "trilinear" | "anisotropic", "mip expensive (4x bilinear)", "mip more expensive (2x trilinear)", "mip most expensive (4x trilinear)", "nomip nearest" | "nearest", "nomip bilinear" | "linear", "mip (1x bilinear)", "mip (1x trilinear)" } filterColor03 enum { "mip standard (2x bilinear)*" | "*" | "bilinear" | "trilinear" | "anisotropic", "mip expensive (4x bilinear)", "mip more expensive (2x trilinear)", "mip most expensive (4x trilinear)", "nomip nearest" | "nearest", "nomip bilinear" | "linear", "mip (1x bilinear)", "mip (1x trilinear)" } filterColor04 enum { "mip standard (2x bilinear)*" | "*" | "bilinear" | "trilinear" | "anisotropic", "mip expensive (4x bilinear)", "mip more expensive (2x trilinear)", "mip most expensive (4x trilinear)", "nomip nearest" | "nearest", "nomip bilinear" | "linear", "mip (1x bilinear)", "mip (1x trilinear)" } filterColor05 enum { "mip standard (2x bilinear)*" | "*" | "bilinear" | "trilinear" | "anisotropic", "mip expensive (4x bilinear)", "mip more expensive (2x trilinear)", "mip most expensive (4x trilinear)", "nomip nearest" | "nearest", "nomip bilinear" | "linear", "mip (1x bilinear)", "mip (1x trilinear)" } filterColor06 enum { "mip standard (2x bilinear)*" | "*" | "bilinear" | "trilinear" | "anisotropic", "mip expensive (4x bilinear)", "mip more expensive (2x trilinear)", "mip most expensive (4x trilinear)", "nomip nearest" | "nearest", "nomip bilinear" | "linear", "mip (1x bilinear)", "mip (1x trilinear)" } filterColor07 enum { "mip standard (2x bilinear)*" | "*" | "bilinear" | "trilinear" | "anisotropic", "mip expensive (4x bilinear)", "mip more expensive (2x trilinear)", "mip most expensive (4x trilinear)", "nomip nearest" | "nearest", "nomip bilinear" | "linear", "mip (1x bilinear)", "mip (1x trilinear)" } filterColor08 enum { "mip standard (2x bilinear)*" | "*" | "bilinear" | "trilinear" | "anisotropic", "mip expensive (4x bilinear)", "mip more expensive (2x trilinear)", "mip most expensive (4x trilinear)", "nomip nearest" | "nearest", "nomip bilinear" | "linear", "mip (1x bilinear)", "mip (1x trilinear)" } filterColor09 enum { "mip standard (2x bilinear)*" | "*" | "bilinear" | "trilinear" | "anisotropic", "mip expensive (4x bilinear)", "mip more expensive (2x trilinear)", "mip most expensive (4x trilinear)", "nomip nearest" | "nearest", "nomip bilinear" | "linear", "mip (1x bilinear)", "mip (1x trilinear)" } filterColor10 enum { "mip standard (2x bilinear)*" | "*" | "bilinear" | "trilinear" | "anisotropic", "mip expensive (4x bilinear)", "mip more expensive (2x trilinear)", "mip most expensive (4x trilinear)", "nomip nearest" | "nearest", "nomip bilinear" | "linear", "mip (1x bilinear)", "mip (1x trilinear)" } filterColor11 enum { "mip standard (2x bilinear)*" | "*" | "bilinear" | "trilinear" | "anisotropic", "mip expensive (4x bilinear)", "mip more expensive (2x trilinear)", "mip most expensive (4x trilinear)", "nomip nearest" | "nearest", "nomip bilinear" | "linear", "mip (1x bilinear)", "mip (1x trilinear)" } filterColor12 enum { "mip standard (2x bilinear)*" | "*" | "bilinear" | "trilinear" | "anisotropic", "mip expensive (4x bilinear)", "mip more expensive (2x trilinear)", "mip most expensive (4x trilinear)", "nomip nearest" | "nearest", "nomip bilinear" | "linear", "mip (1x bilinear)", "mip (1x trilinear)" } filterColor13 enum { "mip standard (2x bilinear)*" | "*" | "bilinear" | "trilinear" | "anisotropic", "mip expensive (4x bilinear)", "mip more expensive (2x trilinear)", "mip most expensive (4x trilinear)", "nomip nearest" | "nearest", "nomip bilinear" | "linear", "mip (1x bilinear)", "mip (1x trilinear)" } filterColor14 enum { "mip standard (2x bilinear)*" | "*" | "bilinear" | "trilinear" | "anisotropic", "mip expensive (4x bilinear)", "mip more expensive (2x trilinear)", "mip most expensive (4x trilinear)", "nomip nearest" | "nearest", "nomip bilinear" | "linear" } filterColor15 int 0 0 1 missileClip int 0 0 1 bulletClip int 0 0 1 playerClip int 0 0 1 aiClip int 0 0 1 vehicleClip int 0 0 1 itemClip int 0 0 1 canShootClip int 0 0 1 aiSightClip int 0 0 1 noFallDamage int 0 0 1 noSteps int 0 0 1 noImpact int 0 0 1 noMarks int 0 0 1 noPenetrate int 0 0 1 noDrop int 0 0 1 slick int 0 0 1 ladder int 0 0 1 mantleOn int 0 0 1 mantleOver int 0 0 1 mount enum { "*", "Uncompressed", "Alpha Only", "DXT1", "DXT3", "DXT5" } textureFormat00 enum { "*", "Uncompressed", "Alpha Only", "DXT1", "DXT3", "DXT5" } textureFormat01 enum { "*", "Uncompressed", "Alpha Only", "DXT1", "DXT3", "DXT5" } textureFormat02 enum { "*", "Uncompressed", "Alpha Only", "DXT1", "DXT3", "DXT5" } textureFormat03 enum { "*", "Uncompressed", "Alpha Only", "DXT1", "DXT3", "DXT5" } textureFormat04 enum { "*", "Uncompressed", "Alpha Only", "DXT1", "DXT3", "DXT5" } textureFormat05 enum { "*", "Uncompressed", "Alpha Only", "DXT1", "DXT3", "DXT5" } textureFormat06 enum { "*", "Uncompressed", "Alpha Only", "DXT1", "DXT3", "DXT5" } textureFormat07 enum { "*", "Uncompressed", "Alpha Only", "DXT1", "DXT3", "DXT5" } textureFormat08 enum { "*", "Uncompressed", "Alpha Only", "DXT1", "DXT3", "DXT5" } textureFormat09 enum { "*", "Uncompressed", "Alpha Only", "DXT1", "DXT3", "DXT5" } textureFormat10 enum { "*", "Uncompressed", "Alpha Only", "DXT1", "DXT3", "DXT5" } textureFormat11 enum { "*", "Uncompressed", "Alpha Only", "DXT1", "DXT3", "DXT5" } textureFormat12 enum { "*", "Uncompressed", "Alpha Only", "DXT1", "DXT3", "DXT5" } textureFormat13 enum { "*", "Uncompressed", "Alpha Only", "DXT1", "DXT3", "DXT5" } textureFormat14 enum { "*", "Uncompressed", "Alpha Only", "DXT1", "DXT3", "DXT5" } textureFormat15 int 0 0 1 wetnessInvert int 0 0 1 noLightmap int 0 0 1 noDynamicLight int 0 0 1 noCastShadow int 0 0 1 onlyCastShadow int 0 0 1 noReceiveDynamicShadow int 0 0 1 noDraw int 0 0 1 noFog int 0 0 1 drawToggle int 0 0 1 sky int 0 0 1 radialNormals int 0 0 1 nonColliding int 0 0 1 nonSolid int 0 0 1 transparent int 0 0 1 detail int 0 0 1 structural int 0 0 1 portal int 0 0 1 lightPortal int 0 0 1 origin int 0 0 1 physicsGeom int 0 0 1 hdrPortal int 0 0 1 hasEditorMaterial int 0 0 1 zFeather int 40 0 1024 zFeatherDepth int 0 -1024 1024 eyeOffsetDepth int 0 0 1 outdoorOnly int 0 0 1 notInBoats int 0 0 1 falloff float 35.0 0.0 90.0 falloffBeginAngle float 65.0 0.0 90.0 falloffEndAngle int 0 0 1 useSpotLight int 0 0 1 distFalloff float 200.0 0.0 10000.0 distFalloffBeginDistance float 10.0 0.0 10000.0 distFalloffEndDistance color 1 1 1 1 falloffBeginColor color 0.5 0.5 0.5 0.5 falloffEndColor int 0 0 1 texScroll int 0 0 1 subLayerScroll float 8 0.125 64 detailScaleX float 8 0.125 64 detailScaleY float 1 0 10 detailScaleHeight float 0.2 0.0 1.0 envMapMin float 1.0 0.0 3.0 envMapMax float 2.5 0.05 20.0 envMapExponent float 0.0 -10.0 10.0 uScroll float 0.0 -10.0 10.0 vScroll float 0.0 -10.0 10.0 uScroll00 float 0.0 -10.0 10.0 vScroll00 float 0.0 -10.0 10.0 uScroll01 float 0.0 -10.0 10.0 vScroll01 int 0 0 1 useLegacyNormalEncoding color 1 1 1 1 cloudLightColor color 0.5 0.5 0.5 0.5 cloudDarkColor color 1.0 0.75 0.5 1.0 cloudLiningColor float 16.0 1.0 64.0 cloudLiningSize enum { "*", "distortion", "opaque water", "boat hull", "opaque ambient", "opaque", "sky", "skybox - sun / moon", "skybox - clouds", "skybox - horizon", "decal - bottom 1", "decal - bottom 2", "decal - bottom 3", "decal - static decal", "decal - middle 1", "decal - middle 2", "decal - middle 3", "dynamic water", "after dynamic water", "decal - weapon impact", "decal - top 1", "decal - top 2", "decal - top 3", "multiplicative", "banner / curtain", "hair", "underwater", "transparent water", "corona", "window inside", "window outside", "before effects - bottom", "before effects - middle", "before effects - top", "blend / additive", "effect - auto sort", "after effects - bottom", "after effects - middle", "after effects - top", "viewmodel effect" } sort string customTemplate string customString color 1 1 1 1 colorTint string colorMap string detailMap string normalMap string specColorMap string cosinePowerMap int 100 10 100 specColorStrength int 100 10 100 cosinePowerStrength enum { "tile both*", "tile horizontal", "tile vertical", "no tile" } tileColor enum { "tile both*", "tile horizontal", "tile vertical", "no tile" } tileNormal enum { "tile both*", "tile horizontal", "tile vertical", "no tile" } tileSpecular enum { "mip standard (2x bilinear)*" | "*" | "bilinear" | "trilinear" | "anisotropic", "mip expensive (4x bilinear)", "mip more expensive (2x trilinear)", "mip most expensive (4x trilinear)", "nomip nearest" | "nearest", "nomip bilinear" | "linear" } filterColor enum { "mip standard (2x bilinear)*" | "*" | "bilinear" | "trilinear" | "anisotropic", "mip expensive (4x bilinear)", "mip more expensive (2x trilinear)", "mip most expensive (4x trilinear)", "nomip nearest" | "nearest", "nomip bilinear" | "linear" } filterColorDetail enum { "mip standard (2x bilinear)*" | "*" | "bilinear" | "trilinear" | "anisotropic", "mip expensive (4x bilinear)", "mip more expensive (2x trilinear)", "mip most expensive (4x trilinear)", "nomip nearest" | "nearest", "nomip bilinear" | "linear" } filterDetail enum { "mip standard (2x bilinear)*" | "*" | "bilinear" | "trilinear" | "anisotropic", "mip expensive (4x bilinear)", "mip more expensive (2x trilinear)", "mip most expensive (4x trilinear)", "nomip nearest" | "nearest", "nomip bilinear" | "linear" } filterNormal enum { "mip standard (2x bilinear)*" | "*" | "bilinear" | "trilinear" | "anisotropic", "mip expensive (4x bilinear)", "mip more expensive (2x trilinear)", "mip most expensive (4x trilinear)", "nomip nearest" | "nearest", "nomip bilinear" | "linear" } filterSpecular int 0 0 1 nopicmipColor int 0 0 1 nopicmipColorDetail int 0 0 1 nopicmipDetail int 0 0 1 nopicmipNormal int 0 0 1 nopicmipSpecular int 0 0 1 noStreamColor float 0 0 65536 tessSize int 1 1 64 textureAtlasRowCount int 1 1 64 textureAtlasColumnCount float 0.5 0 1000 distortionScaleX float 0.5 0 1000 distortionScaleY enum { "scales distortion strength*", "tints distorted pixel color" } distortionColorBehavior float -1.98 -100 100 waterScrollX0 float 1.32 -100 100 waterScrollY0 float 4.44 -100 100 waterScrollX1 float -5.18 -100 100 waterScrollY1 float 3.44 -100 100 waterScrollX2 float 3.18 -100 100 waterScrollY2 // Generic water parameters color 0.19 0.3 0.15 0 waterColor float 0.05 0 1 waterFeather float 0 0 1 waterOpacity float 0.1 0 10 waterRoughness float 30 0 200 waterRefract color 0.63 0.77 0.77 0 waterSkyColor color 0.26 0.27 0.11 0 waterGroundColor float 10.0 0 100 oceanSunBrightness float 0.0125 0 1 oceanSunSize // Ocean-specific parameters. float 1.0 0 1 oceanFoamIntensity float 2.0 0 8 oceanFoamOverbright float 8.0 1 256 oceanFoamRepeat float 32.0 1 256 oceanBumpRepeat float 100 1 1000 oceanShoreFeather float 0.95 0 1 oceanShoreEdgeness float 0.85 0 1 oceanShoreBrightness float 5.0 0 10 oceanReflectFuzzyness int 0 0 1 scorchable int 0 0 1 marksDirectionFade enum { "*", "Uncompressed", "Alpha Only", "DXT1", "DXT3", "DXT5" } formatColor enum { "*", "Uncompressed", "Alpha Only", "DXT1", "DXT3", "DXT5" } formatColorDetail enum { "*", "Uncompressed", "Alpha Only", "DXT1", "DXT3", "DXT5" } formatDetail enum { "*", "Uncompressed", "DXT3", "DXT5" } formatSpecular enum { "*", "Uncompressed", "DXT1", "DXT3", "DXT5" } formatSpecularDetail enum { "*", "Uncompressed" } formatNormal enum { "Replace*", "Blend", "Add", "Multiply", "Screen Add", "Custom" } blendFunc enum { "Add*", "Subtract", "RevSubtract", "Min", "Max", "Disable" } customBlendOpRgb enum { "Add*", "Subtract", "RevSubtract", "Min", "Max", "Disable" } customBlendOpAlpha enum { "One*", "Zero", "SrcColor", "InvSrcColor", "SrcAlpha", "InvSrcAlpha", "DestAlpha", "InvDestAlpha", "DestColor", "InvDestColor" } srcCustomBlendFunc enum { "One*", "Zero", "SrcColor", "InvSrcColor", "SrcAlpha", "InvSrcAlpha", "DestAlpha", "InvDestAlpha", "DestColor", "InvDestColor" } destCustomBlendFunc enum { "One*", "Zero", "SrcColor", "InvSrcColor", "SrcAlpha", "InvSrcAlpha", "DestAlpha", "InvDestAlpha", "DestColor", "InvDestColor" } srcCustomBlendFuncAlpha enum { "One*", "Zero", "SrcColor", "InvSrcColor", "SrcAlpha", "InvSrcAlpha", "DestAlpha", "InvDestAlpha", "DestColor", "InvDestColor" } destCustomBlendFuncAlpha enum { "Always*", "GE128" } alphaTest enum { "LessEqual*", "Less", "Equal", "Always", "Disable" } depthTest enum { "*", "On", "Off" } depthWrite enum { "Back*", "Front", "None" } cullFace enum { "None*", "Static Decal", "Weapon Impact" } polygonOffset enum { "*", "PC / Xenon" } showAdvancedOptions enum { "Enable", "Disable" } colorWriteRed enum { "Enable", "Disable" } colorWriteGreen enum { "Enable", "Disable" } colorWriteBlue enum { "Enable", "Disable" } colorWriteAlpha enum { "Keep", "Zero", "Replace", "IncrSat", "DecrSat", "Invert", "Incr", "Decr" } stencilOpFail1 enum { "Keep", "Zero", "Replace", "IncrSat", "DecrSat", "Invert", "Incr", "Decr" } stencilOpZFail1 enum { "Keep", "Zero", "Replace", "IncrSat", "DecrSat", "Invert", "Incr", "Decr" } stencilOpPass1 enum { "Keep", "Zero", "Replace", "IncrSat", "DecrSat", "Invert", "Incr", "Decr" } stencilOpFail2 enum { "Keep", "Zero", "Replace", "IncrSat", "DecrSat", "Invert", "Incr", "Decr" } stencilOpZFail2 enum { "Keep", "Zero", "Replace", "IncrSat", "DecrSat", "Invert", "Incr", "Decr" } stencilOpPass2 enum { "Always", "Never", "Less", "Equal", "LessEqual", "Greater", "NotEqual", "GreaterEqual" } stencilFunc1 enum { "Always", "Never", "Less", "Equal", "LessEqual", "Greater", "NotEqual", "GreaterEqual" } stencilFunc2 enum { "Disable", "One-sided", "Two-sided" } stencil enum { "ambient", "phong" } dynamicFoliageLightMethod float 1 0 1 dynamicFoliageFlexibility float 0 0 100 dynamicFoliageSunDiffuseMin float 1 0 100 dynamicFoliageSunDiffuseMax float 0 0 1 treeCanopyMinimumSway float 0.1 0 1 treeCanopyScaleRotationAngles float 0.5 0 1 treeCanopyAmbientOcclusion float 0.5 0 1 treeCanopyLightingAmount color 0.7 0.83 0.36 0 treeCanopyScatterColor // MP weapon detail maps int 0 0 1 isMPWeapon string colorDetailMap float 8 0.125 64 colorDetailScaleX float 8 0.125 64 colorDetailScaleY string specDetailMap float 8 0.125 64 specDetailScaleX float 8 0.125 64 specDetailScaleY int 100 10 100 specDetailStrength vcontainer { hcontainer { scrollbox( materialType ) [ exec { tooltip("see wiki page for explanation of material types!") width( 255 ) labelwidth( 100 ) } ] scrollbox( sort ) [ exec { tooltip("see wiki page for explanation of sort settings!") width( 230 ) labelwidth( 55 ) unsorted() } ] } hcontainer { scrollbox( surfaceType ) [ exec { tooltip( "Sets the bullet collision particle for your material." ) width( 255 ) labelwidth( 100 ) } ] scrollbox( usage ) [ exec { tooltip("Sets what filters show this material in Radiant") width( 230 ) labelwidth( 55 ) unsorted() } ] } vcontainer { hcontainer { checkbox( locale_case ) [ exec { righttext() height( 15 ) label( "case" ) } ] checkbox( locale_test ) [ exec { righttext() height( 15 ) label( "test" ) } ] checkbox( locale_tools ) [ exec { righttext() height( 15 ) label( "tools" ) } ] checkbox( locale_decal ) [ exec { righttext() height( 15 ) label( "decal" ) } ] } hcontainer { checkbox( locale_Training ) [ exec { righttext() height( 15 ) label( "Training" ) } ] checkbox( locale_Peleliu ) [ exec { righttext() height( 15 ) label( "Peleliu" ) } ] checkbox( locale_Okinawa ) [ exec { righttext() height( 15 ) label( "Okinawa" ) } ] } hcontainer { checkbox( locale_Holland ) [ exec { righttext() height( 15 ) label( "Holland" ) } ] checkbox( locale_Hamburg ) [ exec { righttext() height( 15 ) label( "Hamburg" ) } ] checkbox( locale_Rhine ) [ exec { righttext() height( 15 ) label( "Rhine" ) } ] } hcontainer { checkbox( locale_Berlin ) [ exec { righttext() height( 15 ) label( "Berlin" ) } ] checkbox( locale_Seelow ) [ exec { righttext() height( 15 ) label( "Seelow" ) } ] } } [ exec { visible( materialType != "2d" && materialType != "particle cloud" && materialType != "objective" ) groupBox( "Locales (select all appropriate for world materials)" ) } ] vcontainer { hcontainer { scrollbox( blendFunc ) [ exec { tooltip("Transparancy settings, Replace is for most materials, Blend is for standard transparency like glass, multiply is used for grime decals, the rest are mostly for fx") unsorted() width( 215 ) labelwidth( 100 ) } ] scrollbox( cullFace ) [ exec { tooltip("Back will only draw outside faces, Front will only draw inside faces, None will draw both.") width( 215 ) labelwidth( 100 ) } ] scrollbox( polygonOffset ) [ exec { tooltip("Only adjust this for decals.") width( 265 ) labelwidth( 100 ) } ] } hcontainer { scrollbox( customBlendOpRgb ) [ exec { width( 215 ) label( "blendOp" ) labelwidth( 100 ) } ] scrollbox( srcCustomBlendFunc ) [ exec { width( 215 ) label( "srcBlend" ) labelwidth( 100 ) } ] scrollbox( destCustomBlendFunc ) [ exec { width( 215 ) label( "destBlend" ) labelwidth( 100 ) } ] } [ exec { visible( blendFunc == "Custom" ) } ] hcontainer { scrollbox( customBlendOpAlpha ) [ exec { width( 215 ) label( "separateAlpha" ) labelwidth( 100 ) } ] scrollbox( srcCustomBlendFuncAlpha ) [ exec { width( 215 ) label( "srcBlend" ) labelwidth( 100 ) } ] scrollbox( destCustomBlendFuncAlpha ) [ exec { width( 215 ) label( "destBlend" ) labelwidth( 100 ) } ] } [ exec { visible( blendFunc == "Custom" ) } ] hcontainer { scrollbox( alphaTest ) [ exec { tooltip("GE128 = punchout alpha, black and white. Always = everything else") width( 215 ) labelwidth( 100 ) } ] scrollbox( depthTest ) [ exec { tooltip("adjusts the rendering order of the material.") width( 215 ) labelwidth( 100 ) } ] scrollbox( depthWrite ) [ exec { tooltip("turns z buffer info on or off, leave on default unless you know what you are doing!") width( 175 ) labelwidth( 100 ) } ] floatedit( tessSize, 32, 256 ) [ exec { width( 125 ) labelwidth( 65 ) visible( materialType == "world phong" || materialType == "custom" ) } ] } } [ exec { visible( materialType != "sky" ) groupBox( "Framebuffer operations" ) } ] vcontainer { edit( customTemplate ) [ exec { width( 450 ) label( "Template" ) labelwidth( 100 ) } ] edit( customString ) [ exec { width( 450 ) label( "String" ) labelwidth( 100 ) } ] } [ exec { visible( materialType == "custom" ) groupBox( "Custom Settings" ) } ] vcontainer { spinedit( textureAtlasRowCount, 1, 5 ) [ exec { width( 150 ) labelwidth( 100 ) label( "Row Count" ) } ] spinedit( textureAtlasColumnCount, 1, 5 ) [ exec { width( 150 ) labelwidth( 100 ) label( "Column Count" ) } ] } [ exec { groupBox( "Texture Atlas Settings" ) visible( materialType == "effect" || materialType == "distortion" || materialType == "custom" ) } ] hcontainer { vcontainer { floatedit( distortionScaleX, 1, 10 ) [ exec { width( 150 ) labelwidth( 100 ) label( "Scale X" ) } ] floatedit( distortionScaleY, 1, 10 ) [ exec { width( 150 ) labelwidth( 100 ) label( "Scale Y" ) } ] } scrollbox( distortionColorBehavior ) [ exec { width( 300 ) labelwidth( 100 ) label( "Vertex Color..." ) } ] } [ exec { groupBox( "Distortion Settings" ) visible( materialType == "distortion" || materialType == "custom" ) } ] vcontainer { checkbox( falloff ) [ exec { righttext() height( 15 ) label( "Enable" ) } ] floatedit( falloffBeginAngle, 0, 90 ) [ exec { visible( falloff == 1 ) width( 370 ) labelwidth( 310 ) label( "Opaque Angle (0 is head-on, 90 is side-on)" ) } ] floatedit( falloffEndAngle, 0, 90 ) [ exec { visible( falloff == 1 ) width( 370 ) labelwidth( 310 ) label( "Invisible Angle (0 is head-on, 90 is side-on)" ) } ] } [ exec { groupBox( "God Ray Falloff" ) visible( materialType == "effect" || materialType == "model unlit" || materialType == "world unlit" || materialType == "custom" ) } ] vcontainer { checkbox( distFalloff ) [ exec { righttext() height( 15 ) label( "Enable" ) } ] floatedit( distFalloffBeginDistance, 0, 10000 ) [ exec { visible( distFalloff == 1 ) width( 370 ) labelwidth( 310 ) label( "Opaque Distance" ) } ] floatedit( distFalloffEndDistance, 0, 10000 ) [ exec { visible( distFalloff == 1 ) width( 370 ) labelwidth( 310 ) label( "Invisible Distance" ) } ] } [ exec { groupBox( "Distance (hdrPortal) Falloff" ) visible( materialType == "world unlit" || materialType == "custom" ) visible( hdrPortal == 1 ) } ] vcontainer { colorpicker( falloffBeginColor ) [ exec { width( 370 ) labelwidth( 310 ) label( "Opaque Color" ) } ] colorpicker( falloffEndColor ) [ exec { width( 370 ) labelwidth( 310 ) label( "Transparent Color" ) } ] } [ exec { groupBox( "Falloff Colors" ) visible( (falloff == 1 || distFalloff == 1) && (materialType == "effect" || materialType == "model unlit" || materialType == "world unlit" || materialType == "custom") ) } ] vcontainer { checkbox( zFeather ) [ exec { righttext() height( 15 ) label( "Enable" ) } ] spinedit( zFeatherDepth, 1, 10 ) [ exec { width( 150 ) labelwidth( 100 ) label( "Depth" ) } ] } [ exec { groupBox( "Z Feathering" ) visible( materialType == "effect" || materialType == "custom" ) } ] vcontainer { spinedit( eyeOffsetDepth, 1, 10 ) [ exec { width( 150 ) labelwidth( 100 ) label( "Depth" ) } ] } [ exec { groupBox( "Eye Offset" ) visible( materialType == "effect" || materialType == "model unlit" || materialType == "world unlit" || materialType == "custom" ) } ] vcontainer { checkbox( outdoorOnly ) [ exec { righttext() height( 15 ) label( "Outdoor Only" ) } ] } [ exec { visible( ((materialType == "effect" || materialType == "model unlit" || materialType == "world unlit") && zFeather == 1) || materialType == "particle cloud" ) } ] vcontainer { checkbox( notInBoats ) [ exec { righttext() height( 15 ) label( "Not in boats" ) } ] } [ exec { visible( materialType == "effect" || materialType == "distortion" || materialType == "model unlit" || materialType == "world unlit" || materialType == "particle cloud" ) } ] vcontainer { checkbox( useSpotLight ) [ exec { righttext() height( 15 ) label( "Use spot light" ) } ] } [ exec { visible( materialType == "effect" || materialType == "particle cloud" ) } ] fxvcontainer { hcontainer { fxfileedit( cgfx_filename ) [ exec { width( 400 ) labelwidth( 40 ) label( "FX" ) } ] fxeditc( cgfxTemplate ) [ exec { width( 250 ) labelwidth( 80 ) label( "Template" ) } ] } hcontainer { fxeditb( varLabel00 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V0" ) } ] fxfloatedit( cg00_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg00_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg00_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg00_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel01 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V1" ) } ] fxfloatedit( cg01_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg01_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg01_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg01_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel02 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V2" ) } ] fxfloatedit( cg02_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg02_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg02_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg02_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel03 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V3" ) } ] fxfloatedit( cg03_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg03_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg03_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg03_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel04 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V4" ) } ] fxfloatedit( cg04_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg04_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg04_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg04_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel05 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V5" ) } ] fxfloatedit( cg05_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg05_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg05_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg05_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel06 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V6" ) } ] fxfloatedit( cg06_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg06_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg06_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg06_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel07 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V7" ) } ] fxfloatedit( cg07_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg07_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg07_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg07_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel08 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V8" ) } ] fxfloatedit( cg08_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg08_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg08_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg08_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel09 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V9" ) } ] fxfloatedit( cg09_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg09_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg09_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg09_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel10 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V10" ) } ] fxfloatedit( cg10_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg10_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg10_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg10_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel11 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V11" ) } ] fxfloatedit( cg11_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg11_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg11_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg11_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel12 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V12" ) } ] fxfloatedit( cg12_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg12_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg12_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg12_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel13 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V13" ) } ] fxfloatedit( cg13_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg13_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg13_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg13_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel14 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V14" ) } ] fxfloatedit( cg14_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg14_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg14_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg14_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel15 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V15" ) } ] fxfloatedit( cg15_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg15_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg15_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg15_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel16 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V16" ) } ] fxfloatedit( cg16_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg16_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg16_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg16_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel17 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V17" ) } ] fxfloatedit( cg17_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg17_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg17_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg17_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel18 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V18" ) } ] fxfloatedit( cg18_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg18_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg18_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg18_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel19 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V19" ) } ] fxfloatedit( cg19_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg19_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg19_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg19_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel20 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V20" ) } ] fxfloatedit( cg20_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg20_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg20_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg20_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel21 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V21" ) } ] fxfloatedit( cg21_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg21_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg21_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg21_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel22 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V22" ) } ] fxfloatedit( cg22_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg22_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg22_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg22_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel23 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V23" ) } ] fxfloatedit( cg23_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg23_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg23_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg23_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel24 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V24" ) } ] fxfloatedit( cg24_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg24_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg24_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg24_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel25 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V25" ) } ] fxfloatedit( cg25_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg25_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg25_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg25_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel26 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V26" ) } ] fxfloatedit( cg26_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg26_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg26_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg26_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel27 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V27" ) } ] fxfloatedit( cg27_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg27_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg27_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg27_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel28 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V28" ) } ] fxfloatedit( cg28_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg28_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg28_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg28_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel29 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V29" ) } ] fxfloatedit( cg29_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg29_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg29_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg29_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel30 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V30" ) } ] fxfloatedit( cg30_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg30_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg30_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg30_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxeditb( varLabel31 ) [ exec { width( 250 ) labelwidth( 40 ) label( "V31" ) } ] fxfloatedit( cg31_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg31_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg31_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg31_w, 0.01, 0.05 ) [ exec { label( "W" ) labelwidth( 20 ) width( 100 ) } ] } hcontainer { fxedit( colorLabel00 ) [ exec { width( 251 ) labelwidth( 40 ) label( "T0" ) } ] fileedit( colorMap00 ) [ exec { width( 400 ) labelwidth( 0 ) } ] scrollbox( texTile00 ) [ exec { visible( materialType != "sky" && materialType != "water" ) width( 100 ) labelwidth( 0 ) tooltip( "Wraps the image so it repeats at the edges, or clamps it so it stops at the edges" ) } ] scrollbox( filterColor00 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( textureFormat00 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Changes the compression method for the texture") } ] } hcontainer { fxedit( colorLabel01 ) [ exec { width( 251 ) labelwidth( 40 ) label( "T1" ) } ] fileedit( colorMap01 ) [ exec { width( 400 ) labelwidth( 0 ) } ] scrollbox( texTile01 ) [ exec { visible( materialType != "sky" && materialType != "water" ) width( 100 ) labelwidth( 0 ) tooltip( "Wraps the image so it repeats at the edges, or clamps it so it stops at the edges" ) } ] scrollbox( filterColor01 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( textureFormat01 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Changes the compression method for the texture") } ] } hcontainer { fxedit( colorLabel02 ) [ exec { width( 251 ) labelwidth( 40 ) label( "T2" ) } ] fileedit( colorMap02 ) [ exec { width( 400 ) labelwidth( 0 ) } ] scrollbox( texTile02 ) [ exec { visible( materialType != "sky" && materialType != "water" ) width( 100 ) labelwidth( 0 ) tooltip( "Wraps the image so it repeats at the edges, or clamps it so it stops at the edges" ) } ] scrollbox( filterColor02 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( textureFormat02 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Changes the compression method for the texture") } ] } hcontainer { fxedit( colorLabel03 ) [ exec { width( 251 ) labelwidth( 40 ) label( "T3" ) } ] fileedit( colorMap03 ) [ exec { width( 400 ) labelwidth( 0 ) } ] scrollbox( texTile03 ) [ exec { visible( materialType != "sky" && materialType != "water" ) width( 100 ) labelwidth( 0 ) tooltip( "Wraps the image so it repeats at the edges, or clamps it so it stops at the edges" ) } ] scrollbox( filterColor03 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( textureFormat03 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Changes the compression method for the texture") } ] } hcontainer { fxedit( colorLabel04 ) [ exec { width( 251 ) labelwidth( 40 ) label( "T4" ) } ] fileedit( colorMap04 ) [ exec { width( 400 ) labelwidth( 0 ) } ] scrollbox( texTile04 ) [ exec { visible( materialType != "sky" && materialType != "water" ) width( 100 ) labelwidth( 0 ) tooltip( "Wraps the image so it repeats at the edges, or clamps it so it stops at the edges" ) } ] scrollbox( filterColor04 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( textureFormat04 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Changes the compression method for the texture") } ] } hcontainer { fxedit( colorLabel05 ) [ exec { width( 251 ) labelwidth( 40 ) label( "T5" ) } ] fileedit( colorMap05 ) [ exec { width( 400 ) labelwidth( 0 ) } ] scrollbox( texTile05 ) [ exec { visible( materialType != "sky" && materialType != "water" ) width( 100 ) labelwidth( 0 ) tooltip( "Wraps the image so it repeats at the edges, or clamps it so it stops at the edges" ) } ] scrollbox( filterColor05 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( textureFormat05 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Changes the compression method for the texture") } ] } hcontainer { fxedit( colorLabel06 ) [ exec { width( 251 ) labelwidth( 40 ) label( "T6" ) } ] fileedit( colorMap06 ) [ exec { width( 400 ) labelwidth( 0 ) } ] scrollbox( texTile06 ) [ exec { visible( materialType != "sky" && materialType != "water" ) width( 100 ) labelwidth( 0 ) tooltip( "Wraps the image so it repeats at the edges, or clamps it so it stops at the edges" ) } ] scrollbox( filterColor06 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( textureFormat06 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Changes the compression method for the texture") } ] } hcontainer { fxedit( colorLabel07 ) [ exec { width( 251 ) labelwidth( 40 ) label( "T7" ) } ] fileedit( colorMap07 ) [ exec { width( 400 ) labelwidth( 0 ) } ] scrollbox( texTile07 ) [ exec { visible( materialType != "sky" && materialType != "water" ) width( 100 ) labelwidth( 0 ) tooltip( "Wraps the image so it repeats at the edges, or clamps it so it stops at the edges" ) } ] scrollbox( filterColor07 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( textureFormat07 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Changes the compression method for the texture") } ] } hcontainer { fxedit( colorLabel08 ) [ exec { width( 251 ) labelwidth( 40 ) label( "T8" ) } ] fileedit( colorMap08 ) [ exec { width( 400 ) labelwidth( 0 ) } ] scrollbox( texTile08 ) [ exec { visible( materialType != "sky" && materialType != "water" ) width( 100 ) labelwidth( 0 ) tooltip( "Wraps the image so it repeats at the edges, or clamps it so it stops at the edges" ) } ] scrollbox( filterColor08 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( textureFormat08 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Changes the compression method for the texture") } ] } hcontainer { fxedit( colorLabel09 ) [ exec { width( 251 ) labelwidth( 40 ) label( "T9" ) } ] fileedit( colorMap09 ) [ exec { width( 400 ) labelwidth( 0 ) } ] scrollbox( texTile09 ) [ exec { visible( materialType != "sky" && materialType != "water" ) width( 100 ) labelwidth( 0 ) tooltip( "Wraps the image so it repeats at the edges, or clamps it so it stops at the edges" ) } ] scrollbox( filterColor09 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( textureFormat09 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Changes the compression method for the texture") } ] } hcontainer { fxedit( colorLabel10 ) [ exec { width( 251 ) labelwidth( 40 ) label( "T10" ) } ] fileedit( colorMap10 ) [ exec { width( 400 ) labelwidth( 0 ) } ] scrollbox( texTile10 ) [ exec { visible( materialType != "sky" && materialType != "water" ) width( 100 ) labelwidth( 0 ) tooltip( "Wraps the image so it repeats at the edges, or clamps it so it stops at the edges" ) } ] scrollbox( filterColor10 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( textureFormat10 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Changes the compression method for the texture") } ] } hcontainer { fxedit( colorLabel11 ) [ exec { width( 251 ) labelwidth( 40 ) label( "T11" ) } ] fileedit( colorMap11 ) [ exec { width( 400 ) labelwidth( 0 ) } ] scrollbox( texTile11 ) [ exec { visible( materialType != "sky" && materialType != "water" ) width( 100 ) labelwidth( 0 ) tooltip( "Wraps the image so it repeats at the edges, or clamps it so it stops at the edges" ) } ] scrollbox( filterColor11 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( textureFormat11 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Changes the compression method for the texture") } ] } hcontainer { fxedit( colorLabel12 ) [ exec { width( 251 ) labelwidth( 40 ) label( "T12" ) } ] fileedit( colorMap12 ) [ exec { width( 400 ) labelwidth( 0 ) } ] scrollbox( texTile12 ) [ exec { visible( materialType != "sky" && materialType != "water" ) width( 100 ) labelwidth( 0 ) tooltip( "Wraps the image so it repeats at the edges, or clamps it so it stops at the edges" ) } ] scrollbox( filterColor12 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( textureFormat12 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Changes the compression method for the texture") } ] } hcontainer { fxedit( colorLabel13 ) [ exec { width( 251 ) labelwidth( 40 ) label( "T13" ) } ] fileedit( colorMap13 ) [ exec { width( 400 ) labelwidth( 0 ) } ] scrollbox( texTile13 ) [ exec { visible( materialType != "sky" && materialType != "water" ) width( 100 ) labelwidth( 0 ) tooltip( "Wraps the image so it repeats at the edges, or clamps it so it stops at the edges" ) } ] scrollbox( filterColor13 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( textureFormat13 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Changes the compression method for the texture") } ] } hcontainer { fxedit( colorLabel14 ) [ exec { width( 251 ) labelwidth( 40 ) label( "T14" ) } ] fileedit( colorMap14 ) [ exec { width( 400 ) labelwidth( 0 ) } ] scrollbox( texTile14 ) [ exec { visible( materialType != "sky" && materialType != "water" ) width( 100 ) labelwidth( 0 ) tooltip( "Wraps the image so it repeats at the edges, or clamps it so it stops at the edges" ) } ] scrollbox( filterColor14 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( textureFormat14 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Changes the compression method for the texture") } ] } hcontainer { fxedit( colorLabel15 ) [ exec { width( 251 ) labelwidth( 40 ) label( "T15" ) } ] fileedit( colorMap15 ) [ exec { width( 400 ) labelwidth( 0 ) } ] scrollbox( texTile15 ) [ exec { visible( materialType != "sky" && materialType != "water" ) width( 100 ) labelwidth( 0 ) tooltip( "Wraps the image so it repeats at the edges, or clamps it so it stops at the edges" ) } ] scrollbox( filterColor15 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( textureFormat15 ) [ exec { unsorted() width( 200 ) labelwidth( 0 ) tooltip( "Changes the compression method for the texture") } ] } } [ exec { visible( materialType == "CGFX" || materialType == "CGFXmodel" ) groupBox( "CGFX Infomation" ) } ] vcontainer { hcontainer { floatedit( treeCanopyMinimumSway, 0.01, 0.05 ) [ exec { label( "Minimum sway" ) tooltip("Minimum sway specifies the least sway fraction, Random value between 1 and (1-minimum sway is added per leaf).") labelwidth( 150 ) width( 230 ) } ] floatedit( treeCanopyScaleRotationAngles, 0.01, 0.05 ) [ exec { label( "Scale rotation angles" ) tooltip("Think of this value as the inverse distance from pivot to leaf. Closer the leaves to the pivot, higher this value.") labelwidth( 150 ) width( 230 ) } ] } hcontainer { floatedit( treeCanopyAmbientOcclusion, 0.01, 0.05 ) [ exec { label( "Ambient Occlusion" ) tooltip("Amount of AO applied (0 means no AO, 1 means full AO).") labelwidth( 150 ) width( 230 ) } ] floatedit( treeCanopyLightingAmount, 0.01, 0.05 ) [ exec { label( "Lighting Amount" ) tooltip("Amount of lighting applied (0 means ambient lighting, 1 means harsh lighting).") labelwidth( 150 ) width( 230 ) } ] } hcontainer { colorpicker( treeCanopyScatterColor ) [ exec { width( 200 ) labelwidth( 150 ) label( "Sub-surface scatter" ) tooltip( "Color of the light coming through the leaves." ) } ] } } [ exec { visible( materialType == "tree canopy" ) groupBox( "Tree Canopy Material" ) } ] vcontainer { checkbox( isMPWeapon ) [ exec { tooltip("Provides support for more detail textures, for MP weapon models only.") labelwidth( 200 ) righttext() label( "Enable" ) } ] } [ exec { groupBox( "Multiplayer Weapon Material" ) visible( materialType == "model phong" ) } ] vcontainer { hcontainer { fileedit( colorMap ) [ exec { width( 450 ) labelwidth( 0 ) } ] colorpicker( colorTint ) [ exec { tooltip( "for world materials, instead of vertex coloring." ) labelwidth( 40 ) label( "Tint" ) visible( materialType != "2d" && materialType != "distortion" && materialType != "particle cloud" && materialType != "sky" && materialType != "water" && materialType != "objective" ) } ] } hcontainer { scrollbox( tileColor ) [ exec { visible( materialType != "sky" && materialType != "water" ) width( 115 ) labelwidth( 0 ) tooltip( "Wraps the image so it repeats at the edges, or clamps it so it stops at the edges" ) } ] scrollbox( filterColor ) [ exec { unsorted() width( 250 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( formatColor ) [ exec { width( 165 ) labelwidth( 0 ) } ] checkbox( nopicmipColor ) [ exec { tooltip("Ignores mip maps, image will always be high rez. Prevents the game from reducing this image's resolution when trying to save texture memory.") righttext() labelwidth( 65 ) label( "nopicmip" ) } ] checkbox( noStreamColor ) [ exec { righttext() labelwidth( 75 ) label( "no stream" ) visible( materialType == "world unlit" || materialType == "model unlit" ) } ] } } [ exec { groupBox( "Color map" ) visible( materialType != "water" ) } ] vcontainer { fileedit( colorDetailMap ) [ exec { width( 450 ) labelwidth( 0 ) } ] hcontainer { floatedit( colorDetailScaleX, 1, 4 ) [ exec { tooltip("A higher number makes the detail map tile more often relative to the texture it's on.") label( "x scale" ) labelwidth( 55 ) width( 115 ) } ] floatedit( colorDetailScaleY, 1, 4 ) [ exec { tooltip("A higher number makes the detail map tile more often relative to the texture it's on.") label( "y scale" ) labelwidth( 55 ) width( 115 ) } ] scrollbox( filterColorDetail ) [ exec { unsorted() width( 250 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( formatColorDetail ) [ exec { width( 165 ) labelwidth( 0 ) } ] checkbox( nopicmipColorDetail ) [ exec { tooltip("ignores mip maps, image will always be high rez. Prevents the game from reducing this image's resolution when trying to save texture memory.") righttext() labelwidth( 65 ) label( "nopicmip" ) } ] } } [ exec { groupBox( "Color detail map" ) visible( materialType == "model phong" && ( isMPWeapon==1 || materialFeatureType == "clothwet" ) ) } ] vcontainer { hcontainer { fileedit( colorMap01 ) [ exec { width( 450 ) labelwidth( 0 ) } ] colorpicker( colorTint ) [ exec { tooltip( "for world materials, instead of vertex coloring." ) labelwidth( 40 ) label( "Tint" ) visible( materialType != "2d" && materialType != "distortion" && materialType != "particle cloud" && materialType != "sky" && materialType != "water" && materialType != "objective" ) } ] } hcontainer { scrollbox( tileColor ) [ exec { visible( materialType != "sky" && materialType != "water" ) width( 115 ) labelwidth( 0 ) tooltip( "Wraps the image so it repeats at the edges, or clamps it so it stops at the edges" ) } ] scrollbox( filterColor ) [ exec { unsorted() width( 250 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( formatColor ) [ exec { width( 165 ) labelwidth( 0 ) } ] checkbox( nopicmipColor ) [ exec { tooltip("Ignores mip maps, image will always be high rez. Prevents the game from reducing this image's resolution when trying to save texture memory.") righttext() labelwidth( 65 ) label( "nopicmip" ) } ] checkbox( noStreamColor ) [ exec { righttext() labelwidth( 75 ) label( "no stream" ) visible( materialType == "world unlit" || materialType == "model unlit" ) } ] } } [ exec { groupBox( "Color map 2" ) visible( materialType == "sky noncubemap transition" ) } ] vcontainer { fileedit( normalMap ) [ exec { width( 450 ) labelwidth( 0 ) } ] hcontainer { scrollbox( tileNormal ) [ exec { width( 115 ) labelwidth( 0 ) tooltip( "Wraps the image so it repeats at the edges, or clamps it so it stops at the edges" ) } ] scrollbox( filterNormal ) [ exec { unsorted() width( 250 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( formatNormal ) [ exec { width( 165 ) labelwidth( 0 ) } ] checkbox( nopicmipNormal ) [ exec { tooltip("ignores mip maps, image will always be high rez. Prevents the game from reducing this image's resolution when trying to save texture memory.") righttext() labelwidth( 65 ) label( "nopicmip" ) } ] checkbox( useLegacyNormalEncoding ) [ exec { righttext() labelwidth( 110 ) label( "legacy encoding" ) tooltip( "Keeps backwards compatibility with a buggy version of the normal map compression. New textures should always switch this off." ) } ] } } [ exec { visible( materialType != "2d" && materialType != "unlit" && materialType != "world unlit" && materialType != "model unlit" && materialType != "effect" && materialType != "distortion" && materialType != "tools" && materialType != "sky" && materialType != "sky noncubemap" && materialType != "sky noncubemap transition" && materialType != "particle cloud" && materialType != "objective" && materialType != "model ambient" && materialType != "dynamic foliage" && materialType != "cloud" ) groupBox( "Normal map" ) } ] vcontainer { fileedit( detailMap ) [ exec { width( 450 ) labelwidth( 0 ) } ] hcontainer { floatedit( detailScaleX, 1, 4 ) [ exec { tooltip("A higher number makes the detail map tile more often relative to the texture it's on.") label( "x scale" ) labelwidth( 55 ) width( 115 ) } ] floatedit( detailScaleY, 1, 4 ) [ exec { tooltip("A higher number makes the detail map tile more often relative to the texture it's on.") label( "y scale" ) labelwidth( 55 ) width( 115 ) } ] floatedit( detailScaleHeight, 1, 4 ) [ exec { tooltip("A higher number makes the detail map more bumpy. (1.0 is default)") label( "height scale" ) labelwidth( 85 ) width( 145 ) } ] scrollbox( filterDetail ) [ exec { unsorted() width( 250 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( formatDetail ) [ exec { width( 165 ) labelwidth( 0 ) } ] checkbox( nopicmipDetail ) [ exec { tooltip("ignores mip maps, image will always be high rez. Prevents the game from reducing this image's resolution when trying to save texture memory.") righttext() labelwidth( 65 ) label( "nopicmip" ) } ] } } [ exec { groupBox( "Detail normal map" ) visible( materialType == "world phong" || materialType == "model phong" || materialType == "model cook-torrance" || materialType == "custom" ) } ] vcontainer { hcontainer { floatedit( waterScrollX0, 0.1, 0.2 ) [ exec { unsorted() width( 200 ) labelwidth( 120 ) label( "Water 0 Scroll X" ) } ] floatedit( waterScrollX1, 0.1, 0.2 ) [ exec { width( 200 ) labelwidth( 120 ) label( "Water 1 Scroll X" ) } ] floatedit( waterScrollX2, 0.1, 0.2 ) [ exec { width( 200 ) labelwidth( 120 ) label( "Water 2 Scroll X" ) } ] } hcontainer { floatedit( waterScrollY0, 0.1, 0.2 ) [ exec { width( 200 ) labelwidth( 120 ) label( "Water 0 Scroll Y" ) } ] floatedit( waterScrollY1, 0.1, 0.2 ) [ exec { width( 200 ) labelwidth( 120 ) label( "Water 1 Scroll Y" ) } ] floatedit( waterScrollY2, 0.1, 0.2 ) [ exec { width( 200 ) labelwidth( 120 ) label( "Water 2 Scroll Y" ) } ] } hcontainer { colorpicker( waterColor ) [ exec { width( 200 ) labelwidth( 150 ) label( "Color" ) tooltip( "Base color of the water itself" ) } ] floatedit( waterFeather, 0.01, 0.05 ) [ exec { width( 100 ) labelwidth( 50 ) label( "Feather" ) tooltip( "How the water fades off around the edges" ) } ] floatedit( waterOpacity, 0.01, 0.05 ) [ exec { width( 100 ) labelwidth( 50 ) label( "Opacity" ) tooltip( "How cloudy the water is" ) } ] floatedit( waterRoughness, 0.01, 0.05 ) [ exec { width( 100 ) labelwidth( 50 ) label( "Roughness" ) tooltip( "Roughness of the water surface's bump map" ) } ] floatedit( waterRefract, 1, 5 ) [ exec { width( 100 ) labelwidth( 50 ) label( "Refraction" ) tooltip( "Amount of refraction distortion to apply" ) } ] } hcontainer { colorpicker( waterSkyColor ) [ exec { width( 200 ) labelwidth( 150 ) label( "Sky Reflection Color" ) tooltip( "Average sky color of the surrounding world" ) } ] colorpicker( waterGroundColor ) [ exec { width( 200 ) labelwidth( 150 ) label( "Ground Reflection Color" ) tooltip( "Average ground color of the surrounding world" ) } ] } hcontainer { floatedit( oceanSunBrightness, 0.01, 0.05 ) [ exec { width( 200 ) labelwidth( 150 ) label( "Sun Brightness" ) tooltip( "Brightness of the sun reflection" ) } ] floatedit( oceanSunSize, 0.01, 0.05 ) [ exec { width( 200 ) labelwidth( 150 ) label( "Sun Size" ) tooltip( "Size of the sun reflection" ) } ] } } [ exec { visible( materialType == "water" || materialType == "ocean" ) groupBox( "Water map" ) } ] vcontainer { hcontainer { floatedit( oceanFoamIntensity, 0.01, 0.05 ) [ exec { width( 200 ) labelwidth( 150 ) label( "Foam Intensity" ) tooltip( "Alpha value for the foam floating on top of the water, (i.e. wave crests)" ) } ] } hcontainer { floatedit( oceanFoamOverbright, 0.01, 0.05 ) [ exec { width( 200 ) labelwidth( 150 ) label( "Foam Overbright" ) tooltip( "Allows the foam to go super-white when there's a lot of it - useful for getting like whitecaps and stuff" ) } ] } hcontainer { floatedit( oceanFoamRepeat, 1, 16 ) [ exec { width( 200 ) labelwidth( 150 ) label( "Foam Repeat" ) tooltip( "UV mapping for the foam texture - how often it repeats across the world" ) } ] } hcontainer { floatedit( oceanBumpRepeat, 1, 16 ) [ exec { width( 200 ) labelwidth( 150 ) label( "Bump Repeat" ) tooltip( "UV mapping for the bump map - how often it repeats across the world" ) } ] } hcontainer { floatedit( oceanShoreFeather, 1, 10 ) [ exec { width( 200 ) labelwidth( 150 ) label( "Shore Feather" ) tooltip( "Distance from the shore that the foam starts to appear at" ) } ] } hcontainer { floatedit( oceanShoreEdgeness, 0.01, 0.05 ) [ exec { width( 200 ) labelwidth( 150 ) label( "Shore Edgeness" ) tooltip( "Controls the Z-feather at the very edge of the water" ) } ] } hcontainer { floatedit( oceanShoreBrightness, 0.01, 0.05 ) [ exec { width( 200 ) labelwidth( 150 ) label( "Shore Brightness" ) tooltip( "Intensity of the foam around the shoreline" ) } ] } hcontainer { floatedit( oceanReflectFuzzyness, 0.01, 0.05 ) [ exec { width( 200 ) labelwidth( 150 ) label( "Reflection Fuzzyness" ) tooltip( "Fuzzyness of the sky reflection" ) } ] } } [ exec { visible( materialType == "ocean" ) groupBox( "Ocean parameters" ) } ] vcontainer { hcontainer { fileedit( specColorMap ) [ exec { width( 450 ) labelwidth( 0 ) } ] } hcontainer { scrollbox( tileSpecular ) [ exec { width( 115 ) labelwidth( 0 ) tooltip( "Wraps the image so it repeats at the edges, or clamps it so it stops at the edges" ) } ] scrollbox( filterSpecular ) [ exec { unsorted() width( 250 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( formatSpecular ) [ exec { width( 165 ) labelwidth( 0 ) } ] checkbox( nopicmipSpecular ) [ exec { tooltip("Ignores mip maps, image will always be high rez. Prevents the game from reducing this image's resolution when trying to save texture memory.") righttext() labelwidth( 65 ) label( "nopicmip" ) } ] } } [ exec { visible( materialType != "2d" && materialType != "unlit" && materialType != "world unlit" && materialType != "model unlit" && materialType != "effect" && materialType != "distortion" && materialType != "tools" && materialType != "sky" && materialType != "sky noncubemap" && materialType != "sky noncubemap transition" && materialType != "water" && materialType != "particle cloud" && materialType != "objective" && materialType != "model ambient" && materialType != "dynamic foliage" && materialType != "cloud" && materialType != "ocean" ) groupBox( "Specular color map" ) } ] vcontainer { hcontainer { fileedit( specDetailMap ) [ exec { width( 450 ) labelwidth( 0 ) } ] } hcontainer { floatedit( specDetailScaleX, 1, 4 ) [ exec { tooltip("A higher number makes the detail map tile more often relative to the texture it's on.") label( "x scale" ) labelwidth( 55 ) width( 115 ) } ] floatedit( specDetailScaleY, 1, 4 ) [ exec { tooltip("A higher number makes the detail map tile more often relative to the texture it's on.") label( "y scale" ) labelwidth( 55 ) width( 115 ) } ] scrollbox( formatSpecularDetail ) [ exec { width( 165 ) labelwidth( 0 ) } ] } } [ exec { visible( materialType == "model phong" && ( isMPWeapon==1 || materialFeatureType == "clothwet" ) ) groupBox( "Specular color detail map" ) } ] vcontainer { hcontainer { fileedit( cosinePowerMap ) [ exec { width( 450 ) labelwidth( 0 ) } ] } hcontainer { scrollbox( tileSpecular ) [ exec { width( 115 ) labelwidth( 0 ) tooltip( "Wraps the image so it repeats at the edges, or clamps it so it stops at the edges" ) } ] scrollbox( filterSpecular ) [ exec { unsorted() width( 250 ) labelwidth( 0 ) tooltip( "Makes the image clearer when viewed from an angle, at some cost of rendering time") } ] scrollbox( formatSpecular ) [ exec { width( 165 ) labelwidth( 0 ) } ] checkbox( nopicmipSpecular ) [ exec { tooltip("Ignores mip maps, image will always be high rez. Prevents the game from reducing this image's resolution when trying to save texture memory.") righttext() labelwidth( 65 ) label( "nopicmip" ) } ] } } [ exec { visible( materialType != "2d" && materialType != "unlit" && materialType != "world unlit" && materialType != "model unlit" && materialType != "effect" && materialType != "distortion" && materialType != "tools" && materialType != "sky" && materialType != "sky noncubemap" && materialType != "sky noncubemap transition" && materialType != "water" && materialType != "particle cloud" && materialType != "objective" && materialType != "model ambient" && materialType != "dynamic foliage" && materialType != "cloud" && materialType != "ocean" && materialType != "tree canopy" ) groupBox( "Cosine power map" ) } ] vcontainer { hcontainer { floatedit( envMapMin, 0.01, 0.05 ) [ exec { label( "Minimum" ) tooltip( "Amount of reflection looking directly at a surface." ) labelwidth( 80 ) width( 140 ) } ] floatedit( envMapMax, 0.01, 0.05 ) [ exec { label( "Maximum" ) tooltip( "Amount of reflection at full glancing angle." ) labelwidth( 80 ) width( 140 ) } ] floatedit( envMapExponent, 0.01, 0.05 ) [ exec { label( "Exponent" ) tooltip( "Controls how quickly specular strength goes from 'Minimum' to 'Maximum' as the angle approaches glancing. Larger values keep the strength near Minimum for longer." ) labelwidth( 80 ) width( 140 ) } ] } } [ exec { visible( materialType == "world phong" || materialType == "model phong" || materialType == "custom" || materialType == "water" || materialType == "ocean" ) groupBox( "Env Mapping" ) } ] vcontainer { hcontainer { colorpicker( cloudLightColor ) [ exec { width( 200 ) labelwidth( 150 ) label( "Light Color" ) tooltip( "Lighting on the side facing towards the sun." ) } ] colorpicker( cloudDarkColor ) [ exec { width( 200 ) labelwidth( 150 ) label( "Dark Color" ) tooltip( "Lighting on the side facing away from the sun." ) } ] } hcontainer { colorpicker( cloudLiningColor ) [ exec { width( 200 ) labelwidth( 150 ) label( "Silver Lining Color" ) tooltip( "Color of the silver lining." ) } ] floatedit( cloudLiningSize, 0.05, 0.20 ) [ exec { label( "Silver Lining Size" ) tooltip( "Size of the silver lining. Larger values give a smaller size." ) labelwidth( 120 ) width( 180 ) } ] } } [ exec { visible( materialType == "cloud" ) groupBox( "Clouds" ) } ] vcontainer { checkbox( hasEditorMaterial ) [ exec { label( "Use '_editor' as material in Radiant" ) righttext() height( 15 ) labelwidth( 400 ) } ] } [ exec { groupBox( "Custom Radiant Material" ) width( 400 ) } ] hcontainer { vcontainer { checkbox( missileClip ) [ exec { tooltip( "Makes missiles collide with this material. Setting this flag lets nothing whose flag isn't set collide with the material." ) righttext() height( 15 ) } ] checkbox( bulletClip ) [ exec { tooltip( "Makes bullets collide with this material. Setting this flag lets nothing whose flag isn't set collide with the material." ) righttext() height( 15 ) } ] checkbox( playerClip ) [ exec { tooltip( "Makes the player collide with this material. Setting this flag lets nothing whose flag isn't set collide with the material." ) righttext() height( 15 ) } ] checkbox( aiClip ) [ exec { tooltip( "Makes AI collide with this material. Setting this flag lets nothing whose flag isn't set collide with the material." ) righttext() height( 15 ) } ] checkbox( vehicleClip ) [ exec { tooltip( "Makes vehicles collide with this material. Setting this flag lets nothing whose flag isn't set collide with the material." ) righttext() height( 15 ) } ] checkbox( itemClip ) [ exec { tooltip( "Makes items and guns collide with this material. Setting this flag lets nothing whose flag isn't set collide with the material." ) righttext() height( 15 ) } ] checkbox( canShootClip ) [ exec { tooltip( "AI can't shoot through this material." ) righttext() height( 15 ) } ] checkbox( aiSightClip ) [ exec { tooltip( "AI can't see through this material. Setting this flag lets nothing whose flag isn't set collide with the material." ) righttext() height( 15 ) } ] } vcontainer { checkbox( noFallDamage ) [ exec { tooltip( "Landing on this prevents damage, regardless of the height fallen." ) righttext() height( 15 ) } ] checkbox( noSteps ) [ exec { tooltip( "Suppresses footstep and landing sounds for this surface." ) righttext() height( 15 ) } ] checkbox( noImpact ) [ exec { tooltip( "No impact mark will be made if the mark is centered on this surface. This surface may receive a mark centered on a nearby surface, unless 'noMarks' is also set." ) righttext() height( 15 ) } ] checkbox( noMarks ) [ exec { tooltip( "This surface won't ever receive an impact mark. Neighboring surfaces may still receive a mark when this surface is hit, unless 'noImpact' is also set." ) righttext() height( 15 ) } ] checkbox( noPenetrate ) [ exec { tooltip( "This surface will block bullet penetration." ) righttext() height( 15 ) } ] checkbox( noDrop ) [ exec { tooltip( "A character that dies in this brush won't drop any items, and any items that enter this brush will be removed." ) righttext() height( 15 ) } ] checkbox( slick ) [ exec { tooltip( "Player movement has lower friction on this surface." ) righttext() height( 15 ) } ] checkbox( ladder ) [ exec { tooltip( "Player can climb this surface like a ladder." ) righttext() height( 15 ) } ] checkbox( mantleOn ) [ exec { tooltip( "Player can climb onto this brush." ) righttext() height( 15 ) } ] checkbox( mantleOver ) [ exec { tooltip( "Player can climb over this brush." ) righttext() height( 15 ) } ] checkbox( mount ) [ exec { tooltip( "Player can climb over this brush." ) righttext() height( 15 ) } ] } vcontainer { checkbox( noLightmap ) [ exec { tooltip( "Don't allocate a lightmap for this material, usually because it is a light source." ) righttext() height( 15 ) } ] checkbox( noDynamicLight ) [ exec { tooltip( "Prevent being lit by dynamic lights, usually because the material is a light source." ) righttext() height( 15 ) } ] checkbox( noCastShadow ) [ exec { tooltip( "Prevents ever casting shadows. It may still receive shadows." ) righttext() height( 15 ) } ] checkbox( onlyCastShadow ) [ exec { tooltip( "Causes the material to cast shadows only. The material itself will not render." ) righttext() height( 15 ) } ] checkbox( noReceiveDynamicShadow ) [ exec { label( "noRcvDynShadow" ) tooltip( "Prevents receiving dynamic shadows. It may still cast dynamic shadows and receive precalculated shadows." ) righttext() height( 15 ) } ] checkbox( noDraw ) [ exec { tooltip( "Will be visible only in the editor." ) righttext() height( 15 ) } ] checkbox( noFog ) [ exec { tooltip( "Always draws as if there were no fog." ) righttext() height( 15 ) } ] checkbox( drawToggle ) [ exec { tooltip( "Hides all faces that aren't also 'drawToggle' in the editor if draw toggle is enabled." ) righttext() height( 15 ) } ] checkbox( sky ) [ exec { tooltip( "This is a sky material." ) righttext() height( 15 ) } ] checkbox( radialNormals ) [ exec { tooltip( "When used on a model without 'noRadialNormals' checked, surfaces with this material will have their normals auto-generated away from the model's origin." ) righttext() height( 15 ) } ] } vcontainer { checkbox( nonColliding ) [ exec { tooltip( "No collision data is ever stored in the BSP, saving memory and CPU in the game." ) righttext() height( 15 ) } ] checkbox( nonSolid ) [ exec { tooltip( "Nothing collides with this surface, but it still generates collision data. Use 'nonColliding' if possible." ) righttext() height( 15 ) } ] checkbox( transparent ) [ exec { tooltip( "This material isn't a boundary for portals, and geometry on the other side of it won't get deleted." ) righttext() height( 15 ) } ] checkbox( detail ) [ exec { tooltip( "This material will never split the BSP in the map compiler. This is usually set in the editor instead." ) righttext() height( 15 ) } ] checkbox( structural ) [ exec { tooltip( "This material will split the BSP in the map compiler by default. This can be overridden in the editor." ) righttext() height( 15 ) } ] checkbox( portal ) [ exec { tooltip( "This material is a runtime portal. The edges of brush faces using this material will cull geometry." ) righttext() height( 15 ) } ] checkbox( lightPortal ) [ exec { tooltip( "This material starts a new region of influence for a primary light. It doesn't split the BSP." ) righttext() height( 15 ) } ] checkbox( origin ) [ exec { tooltip( "If a brush model entity has a brush with this material, the entity's origin is the center of that brush instead of the world origin." ) righttext() height( 15 ) } ] checkbox( physicsGeom ) [ exec { tooltip( "Used in physics collision maps." ) righttext() height( 15 ) } ] checkbox( hdrPortal ) [ exec { tooltip( "Imitates the HDR effect of eyes adjusting to significantly brighter or darker geometry on the other side of this portal." ) righttext() height( 15 ) } ] } } [ exec { visible( materialType != "2d" && materialType != "particle cloud" && materialType != "objective" ) groupBox( "Special surface properties (extremely rarely needed)" ) } ] checkbox( texScroll ) [ exec { visible( materialType == "model phong" && blendFunc != "Add" ) righttext() height( 15 ) label( "Texture Scroll" ) } ] vcontainer { scrollbox( showAdvancedOptions ) [ exec { label( "Show Platform..." ) } ] vcontainer { hcontainer { scrollbox( colorWriteRed ) [ exec { label( "Color Write - Red" ) } ] scrollbox( colorWriteGreen ) [ exec { width( 150 ) labelwidth( 50 ) label( "Green" ) } ] scrollbox( colorWriteBlue ) [ exec { width( 150 ) labelwidth( 50 ) label( "Blue" ) } ] scrollbox( colorWriteAlpha ) [ exec { width( 150 ) labelwidth( 50 ) label( "Alpha" ) } ] } scrollbox( stencil ) [ exec { label( "Stencil" ) } ] hcontainer { scrollbox( stencilFunc1 ) [ exec { label( "Front - Function" ) } ] scrollbox( stencilOpFail1 ) [ exec { width( 150 ) labelwidth( 50 ) label( "Fail" ) } ] scrollbox( stencilOpZFail1 ) [ exec { width( 150 ) labelwidth( 50 ) label( "Z-fail" ) } ] scrollbox( stencilOpPass1 ) [ exec { width( 150 ) labelwidth( 50 ) label( "Pass" ) } ] } [ exec { visible( stencil != "Disable" ) } ] hcontainer { scrollbox( stencilFunc2 ) [ exec { label( "Back - Function" ) } ] scrollbox( stencilOpFail2 ) [ exec { width( 150 ) labelwidth( 50 ) label( "Fail" ) } ] scrollbox( stencilOpZFail2 ) [ exec { width( 150 ) labelwidth( 50 ) label( "Z-fail" ) } ] scrollbox( stencilOpPass2 ) [ exec { width( 150 ) labelwidth( 50 ) label( "Pass" ) } ] } [ exec { visible( stencil == "Two-sided" ) } ] } [ exec { tooltip("??? code function?.") visible( showAdvancedOptions == "PC / Xenon" ) } ] } [ exec { groupBox( "Advanced Options" ) } ] vcontainer { scrollbox( dynamicFoliageLightMethod ) [ exec { label( "lightMethod" ) tooltip("dynamicFoliageLightingMethod tooptip") width( 215 ) labelwidth( 100 ) unsorted() visible( materialType == "turn this on later" ) } ] floatedit( dynamicFoliageFlexibility, 0.01, 0.05 ) [ exec { label( "flexibility" ) tooltip("1 is default, 0 makes it really stiff that it won't sway in the wind, nor get pushed around.") labelwidth( 80 ) width( 140 ) } ] } [ exec { visible( materialType == "dynamic foliage" ) groupBox( "Dynamic Foliage Material" ) } ] vcontainer { floatedit( dynamicFoliageSunDiffuseMin, 0.01, 0.05 ) [ exec { label( "sunDiffuseMin" ) tooltip("minimum amount of sunlight received, default is 0") labelwidth( 120 ) width( 180 ) } ] floatedit( dynamicFoliageSunDiffuseMax, 0.01, 0.05 ) [ exec { label( "sunDiffuseMax" ) tooltip("maximum amount of sunlight received, default is 1") labelwidth( 120 ) width( 180 ) } ] } [ exec { visible( materialType == "dynamic foliage" || materialType == "model phong" || materialType == "model ambient" ) groupBox( "Foliage Sunlight Adjustment" ) } ] vcontainer { hcontainer { floatedit( uScroll, 0.01, 0.05 ) [ exec { label( "uScroll" ) tooltip( "Texture scroll speed in u direction. 1.0 means the entire texture will scroll by in 1 sec." ) labelwidth( 80 ) width( 140 ) } ] floatedit( vScroll, 0.01, 0.05 ) [ exec { label( "vScroll" ) tooltip( "Texture scroll speed in v direction. 1.0 means the entire texture will scroll by in 1 sec." ) labelwidth( 80 ) width( 140 ) } ] } } [ exec { visible( materialType == "sky noncubemap" || materialType == "sky noncubemap transition" ) groupBox( "sky noncubemap" ) } ] hcontainer { checkbox( scorchable ) [ exec { tooltip( "works on world geometry, static models, and destructible models" ) righttext() height( 15 ) } ] } [ exec { visible( materialType == "world phong" || materialType == "model phong" || materialType == "model ambient" || materialType == "dynamic foliage" ) } ] hcontainer { checkbox( marksDirectionFade ) [ exec { tooltip( "for flamethrower decals. They fade out as they face away from the decal hit normal" ) righttext() height( 15 ) labelwidth( 200 ) } ] } [ exec { visible( materialType == "impact mark" && blendFunc == "Blend" ) width( 200 ) } ] hcontainer { scrollbox( materialFeatureType ) [ exec { tooltip("see wiki page for explanation of material types!") visible( materialType == "model phong" ) width( 255 ) labelwidth( 150 ) } ] } vcontainer { vcontainer { hcontainer { fileedit( colorMap00 ) [ exec { width( 600 ) labelwidth( 150 ) label( "Charring Mask Map" ) } ] floatedit( cg00_x, 0.01, 0.05 ) [ exec { tooltip("") label( "Scale" ) labelwidth( 55 ) width( 115 ) } ] } hcontainer { fileedit( colorMap01 ) [ exec { width( 600 ) labelwidth( 150 ) label( "Charred Color Map" ) } ] floatedit( cg00_y, 0.01, 0.05 ) [ exec { tooltip("") label( "Scale" ) labelwidth( 55 ) width( 115 ) } ] } fileedit( colorMap02 ) [ exec { width( 600 ) labelwidth( 150 ) label( "Charred Normal Map" ) visible( subLayerScroll == 0 ) } ] hcontainer { fxfloatedit( cg01_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "R" ) width( 100 ) } ] fxfloatedit( cg01_y, 0.01, 0.05 ) [ exec { label( "G" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg01_z, 0.01, 0.05 ) [ exec { label( "B" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg01_w, 0.01, 0.05 ) [ exec { label( "Brightness" ) labelwidth( 100 ) width( 200 ) } ] } [ exec { groupBox( "Ember Edge Color" ) } ] } } [ exec { groupBox( "cloth charr set up" ) visible( materialType == "model phong" && materialFeatureType == "clothcharr" ) } ] vcontainer { vcontainer { hcontainer { fxfloatedit( cg00_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "R" ) width( 100 ) } ] fxfloatedit( cg00_y, 0.01, 0.05 ) [ exec { label( "G" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg00_z, 0.01, 0.05 ) [ exec { label( "B" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg00_w, 0.01, 0.05 ) [ exec { label( "A" ) labelwidth( 20 ) width( 200 ) } ] } [ exec { groupBox( "Wet Color" ) } ] floatedit( cg01_x, 0.01, 0.05 ) [ exec { tooltip("") label( "Wetness" ) labelwidth( 150 ) width( 210 ) } ] fileedit( colorMap00 ) [ exec { width( 600 ) labelwidth( 150 ) label( "Wetness Map" ) } ] checkbox( wetnessInvert ) [ exec { righttext() height( 15 ) label( "Invert Wetness Map" ) } ] fileedit( colorMap01 ) [ exec { width( 600 ) labelwidth( 150 ) label( "Wet Cosine Power Map" ) } ] floatedit( cg01_y, 0.01, 0.05 ) [ exec { tooltip("") label( "Wet Specularity" ) labelwidth( 150 ) width( 210 ) } ] vcontainer { hcontainer { floatedit( cg01_z, 0.01, 0.05 ) [ exec { tooltip("") label( "Minimum" ) labelwidth( 150 ) width( 210 ) } ] floatedit( cg01_w, 0.01, 0.05 ) [ exec { tooltip("") label( "Maximum" ) labelwidth( 150 ) width( 210 ) } ] floatedit( cg02_x, 0.01, 0.05 ) [ exec { tooltip("") label( "Exponent" ) labelwidth( 150 ) width( 210 ) } ] } } [ exec { visible( materialType == "model phong" && materialFeatureType == "clothwet" ) groupBox( "Env Mapping" ) } ] } } [ exec { groupBox( "clothwet set up" ) visible( materialType == "model phong" && materialFeatureType == "clothwet" ) } ] vcontainer { vcontainer { floatedit( cg00_x, 0.01, 0.05 ) [ exec { tooltip("") label( "Gloss Scale" ) labelwidth( 150 ) width( 210 ) } ] floatedit( cg00_y, 0.01, 0.05 ) [ exec { tooltip("") label( "Eye Scale" ) labelwidth( 150 ) width( 210 ) } ] hcontainer { fxfloatedit( cg01_x, 0.01, 0.05 ) [ exec { labelwidth(20) label( "X" ) width( 100 ) } ] fxfloatedit( cg01_y, 0.01, 0.05 ) [ exec { label( "Y" ) labelwidth( 20 ) width( 100 ) } ] fxfloatedit( cg01_z, 0.01, 0.05 ) [ exec { label( "Z" ) labelwidth( 20 ) width( 100 ) } ] } [ exec { groupBox( "Eye Center" ) } ] fileedit( colorMap00 ) [ exec { width( 600 ) labelwidth( 150 ) label( "Gloss Map" ) } ] fileedit( colorMap01 ) [ exec { width( 600 ) labelwidth( 150 ) label( "Sphere Map" ) } ] } } [ exec { groupBox( "hair set up" ) visible( materialType == "model phong" && materialFeatureType == "eyeball" ) } ] vcontainer { checkbox( subLayerScroll ) [ exec { righttext() height( 15 ) label( "enable" ) } ] vcontainer { vcontainer { hcontainer { fileedit( colorMap05 ) [ exec { width( 450 ) labelwidth( 100 ) label( "multiply layer" ) } ] floatedit( uScroll01, 0.01, 0.05 ) [ exec { label( "uScroll" ) tooltip( "Texture scroll speed in u direction. 1.0 means the entire texture will scroll by in 1 sec." ) labelwidth( 50 ) width( 110 ) } ] floatedit( vScroll01, 0.01, 0.05 ) [ exec { label( "vScroll" ) tooltip( "Texture scroll speed in v direction. 1.0 means the entire texture will scroll by in 1 sec." ) labelwidth( 50 ) width( 110 ) } ] } hcontainer { fileedit( colorMap04 ) [ exec { width( 450 ) labelwidth( 100 ) label( "base layer" ) } ] floatedit( uScroll00, 0.01, 0.05 ) [ exec { label( "uScroll" ) tooltip( "Texture scroll speed in u direction. 1.0 means the entire texture will scroll by in 1 sec." ) labelwidth( 50 ) width( 110 ) } ] floatedit( vScroll00, 0.01, 0.05 ) [ exec { label( "vScroll" ) tooltip( "Texture scroll speed in v direction. 1.0 means the entire texture will scroll by in 1 sec." ) labelwidth( 50 ) width( 110 ) } ] } } } [ exec { visible( (materialType == "world phong" || materialType == "model phong") && subLayerScroll == 1) } ] } [ exec { groupBox( "sub layer scroll" ) visible( materialType == "world phong" || materialType == "model phong") } ] }