# Lista de proxies de material

< Es

Todos los proxies de material(en) utilizables en materiales(en) de los juegos están en esta lista, junto a los proxies presentes en juegos específicos (en su mayoría de Valve).

## Cálculo

`Add` Adds two variables.

`srcVar1`
`srcVar2`
`resultVar`

`Multiply` Multiplies two variables.

`srcVar1`
`srcVar2`
`resultVar`

`Subtract` Subtracts the second variable from the first.

`srcVar1`
`srcVar2`
`resultVar`

`Divide` Divides the first variable by the second.

`srcVar1`
`srcVar2`
`resultVar`

`Equals` Copies the value of a variable to another.

`srcVar1`
`resultVar`

`Abs` Computes the absolute (i.e. unsigned(en)) value of a variable.

`srcVar1`
`resultVar`

`Frac`

Returns the fractional component of a variable.
Consejo:frac(4.23) = .23
For integer values, no change occurs.
`srcVar1`
`resultVar`

`Int`

Returns the integer component of a variable.
Consejo:int(4.23) = 4
`srcVar1`
`resultVar`

`Clamp` Keeps a variable within a specified range.

`min`
`max`
`srcVar1`
`resultVar`
srcVar1 and resultVar can be the same.

`LessOrEqual` Compares the first value to the second.

`lessEqualVar`
If `srcVar1 <= srcVar2` then the value of this variable is copied into `resultVar`
`greaterVar`
If `srcVar1 > srcVar2` then the value of this variable is copied into `resultVar`
`srcVar1`
`srcVar2`
`resultVar`

`SelectFirstIfNonZero` Selects the first value over the second if it is anything other than zero.

`srcVar1`
`srcVar2`
`resultVar`

`WrapMinMax` Constrains a value into a range, wrapping around if it exceeds it.

`srcVar1`
The value to constrain.
`minVal`
`maxVal`
Range to constrain the value to. If min is less than max, min is always returned.
`resultVar`
The variable to write the results to.

`Exponential` A value that changes at a faster and faster rate(en).

`minVal`
`maxVal`
Upper and lower value clamps.
`srcVar1`
`offset`
`scale`
`resultVar`
resultVar = scale * exp( srcVar1 + offset )
Consejo:exp(5) = 148.413159

## Generación numérica

`Sine` A sine wave(en).

`sineperiod`
Period between wave peaks, in seconds.
`sinemin`
`sinemax`
Values at the top and bottom of the wave
`timeoffset`
Used to offset the starting position of the wave
`resultVar`

`LinearRamp` An ever-increasing float(en) value.

`rate`
Units per second.
`initialValue`
Value at map start.
`resultVar`

`CurrentTime` The number of seconds the current map has been running on the server for.

`resultVar`
This is intended to set the `\$time` shader variable, used by several shaders to adjust their effects over time.

`UniformNoise` A noisy signal where each value is equally likely to occur.

`minVal`
`maxVal`
`resultVar`

`GaussianNoise` A noisy signal where values are biased towards the average.

`mean`
The average value around which the noise will centre
`halfWidth`
The distance from the average at which it's only 30% likely to occur.
`minVal`
`maxVal`
`resultVar`

`MatrixRotate` A rotation matrix(en) from the provided axis and angle.

`axisVar`
Axis of rotation, in the format `[x y z]`
`angle`
Degrees of rotation around axis.
`resultVar`
The result of this is a transformation matrix, suitable to set `\$basetexturetransform` and other similar variables.

## Datos de acceso de entidades

These proxies read values from the entity the proxy is applied to.

Aviso:Will cause a crash when used on prop_static or world brushes, which don't have an entity. Named overlays are fine.

`Alpha` Copies the entity's Render Alpha value to the `\$alpha` material parameter.

`\$alpha`
The alpha material variable is set to the Render Alpha value.

`Cycle` Outputs the progress through the current animation of the entity.

`start`
The value to output at the start of the animation. This can't be a variable reference.
`end`
The value to output at the end of the animation. This can't be a variable reference.
`easein`
Apply easing to the beginning of the output. This can't be a variable reference.
`easeout`
Apply easing to the beginning of the output. This can't be a variable reference.
`resultVar`
The variable to store the result in.

`PlayerProximity` The distance between the entity the material is applied to and the local player.

`scale`
The value is rescaled to be between 0 and the scale value.
`resultVar`

`PlayerTeamMatch` Returns 1 if the team of the entity the material is applied to matches that of the local player. Used in TF2 for func_respawnroomvisualizer(en).

`resultVar`
This value is 1 if the local player is on the same team and 0 if the local player is not.

`PlayerView` The dot product(en) of the player's view angle and the relative origin(en) of the material's entity.

`scale`
The value is rescaled to be between 0 and the scale value.
`resultVar`

`PlayerSpeed` Speed of the local player.

`scale`
The value is multiplied by this value. This factor defaults to `0.005`.
`resultVar`

`PlayerPosition` The local player's position.

`scale`
The value is multiplied by this value. This factor defaults to `0.005`.
`resultVar`
Set to the vector position.

`EntitySpeed` The material's entity's speed.

`resultVar`
The current speed of this entity, in units per second.

`EntityOrigin` The material's entity's origin. The variable set cannot be changed.

`\$entityorigin`
Set to the origin of the entity.

`EntityRandom` A static random number associated with the entity the material is applied to. Helpful for staggering effects that appear on multiple objects.

`scale`
The value is rescaled to be between 0 and the scale value.
`resultVar`

`Health` The material's entity's health (0-1).

`scale`
The value is rescaled to be between 0 and the scale value.
`resultVar`

`IsNPC` Returns whether the material is applied to a NPC. Used in HL2 for npc_hunter(en)'s eye glow, which is supposed to stay off on ragdolls.

`scale`
The value to return when the material is applied to a NPC. Despite the name, nothing in this process is actually multiplied. (although this must be a float)
`resultVar`
If the material is applied to a NPC, this value is equal to `scale`. Otherwise, this value stays at 0.

`WorldDims` The dimensions of the world(en) entity. The variables set cannot be changed.

`\$world_mins`
Set to the minimum X/Y/Z coordinates.
`\$world_maxs`
Set to the maximum X/Y/Z coodinates.

`CrosshairColor` The color of the local player's crosshair. cl_crosshaircolor_(r, g, b)

`resultVar`
Returns [r g b] with values from 0 to 1.

## Manipulación de texturas

`AnimatedTexture` Increments the current frame of an animated VTF.

`animatedtexturevar`
Texture to increment frame for.
( i.e. `\$basetexture`, `\$bumpmap`, `\$normalmap`, `\$envmapmask`, `\$detail`)
`animatedtextureframenumvar`
Frame variable to increment.
( i.e. `\$frame`, `\$bumpframe`, `\$envmapmaskframe`, `\$detailframe`)
`animatedtextureframerate`
Framerate in frames per second. Fixed; cannot be changed once set.

`AnimatedEntityTexture` Identical to AnimatedTexture, except the entity controls when the animation starts and is "notified" when the animation is wrapped.

`animatedtexturevar`
`animatedtextureframenumvar`
`animatedtextureframerate`

`AnimatedOffsetTexture` Identical to AnimatedTexture, except the animation begins when the entity it's applied to spawns.

`animatedtexturevar`
`animatedtextureframenumvar`
`animatedtextureframerate`

`AnimateSpecificTexture` Identical to AnimatedTexture, except only the specified texture could be animated.

`animatedtexturevar`
`animatedtextureframenumvar`
`animatedtextureframerate`
`onlyAnimateOnTexture`
The full path for the texture that this proxy should function with.
Pendiente: What is this used for? None out of around 40 thousand official Valve .vmt files use this proxy

`Pupil` Used for character's eyes, computes the light brightness at the material's position and reacts to bright lights by incrementing the texture's frame.

`TextureVar`
Texture to increment frame for.
`TextureFrameNumVar`
Frame variable to increment.
`PupilCloseRate`
The maximum speed the pupil can close, in fractions/second. The default is 0.1.
`PupilOpenRate`
The maximum speed the pupil can open, in fractions/second. The default is 0.03.
`\$lighting`
This material variable is used to store the previous frame, and should be set to 0.5 in the material. It will be set to the average light value, from 0-1.

`TextureTransform` Generates a texture transform matrix for use with \$basetexturetransform(en) etc.

`centerVar`
`scaleVar`
`rotateVar`
`translateVar`
Optional input variables for the matrix. Each one can be a float(en) or a 2D vector.
`resultVar`

`TextureScroll` Returns a transform matrix or vector that will translate a texture at a given angle at a given rate.

`textureScrollVar`
Destination for the resulting transformation.
`textureScrollRate`
Rate of scroll in units per second.
`textureScrollAngle`
Angle of rotation to move along. (90 = up, 180 = left, etc)

`LampBeam` Modulates the material's alpha value based on angle between the beam's direction and the viewer's eye point. This is used to make the beams of volumetric light on lights fade as you look at them dead on. Must be attached to entity for angle use.

`LampHalo` Modulates the material's alpha value based on angle between the beam's direction and the viewer's eye point. Like the LampBeam proxy, but used for the halo at the beam's base. Must be attached to entity for angle use.

`CustomSteamImageOnModel` Replaces the \$baseTexture with a custom texture. No parameters.

`MaterialModify / MaterialModifyAnimated` Used in conjunction with the material_modify_control(en) entity to configure arbitrary parameters from map I/O. Only works when the material is applied to an entity. MaterialModify takes no parameters. MaterialModifyAnimated takes the same parameters as AnimatedTexture.

`WaterLOD` Coordinates water LOD values between the map's water_lod_control(en) entity and the material's internal values.

`\$CHEAPWATERSTARTDISTANCE`
Start distance for cheap water
Nota:must be set outside of proxy block.
`\$CHEAPWATERENDDISTANCE`
End distance for cheap water
Nota:must be set outside of proxy block.

`BreakableSurface` Sets the base texture to a material name held by the entity (used for switching surface material on shatter). Must be attached to a `func_breakable_surf(en)` entity.

`ConveyorScroll` Returns the scroll parameters for a texture used as a conveyor, so it matches the entity's settings. Must be attached to `func_conveyor(en)` entity.

`textureScrollVar`
Name of variable to place result in. Must be a matrix or vector type variable (i.e. `\$baseTextureOffset`).

`Camo` Only used by material "Dev\dev_camo.vmt". This generates a texture matching the surroundings, which appears to be intended to be used for Combine Elite(en) at some point. Much of the code is disabled, so this is not usable.

`\$camopatterntexture`
The source texture for the camo effect. Should be I8 format.
`\$camoboundingboxmin`
`\$camoboundingboxmax`
Random points within this bounding box will be sampled to determine the camo coloring.

`FleshInterior` Outputs the locations of nearby point_flesh_effect_target(en)s for use by the \$flesh(en) effect.

`\$FleshEffectCenterRadius1`
`\$FleshEffectCenterRadius2`
`\$FleshEffectCenterRadius3`
`\$FleshEffectCenterRadius4`
Set to the world locations of four flesh targets, with the fourth axis set to the radius. If a target is not present, all four axes are set to zero.
`\$FleshGlobalOpacity`
This material variable has to exist for the proxy to function, but it's not actually set at any point.
`\$FleshSubsurfaceTint`
This is just set to `[0 0 0 0]`.

`HeliBlade` Controls transition on npc_helicopter(en)'s blades. This fades in or out the blades to convert from a set of physical blades into a spinning blurred circle.

`\$fadeout`
If the variable is set to 1, fade out the blades as it starts up. If 0, fade in.
`\$alpha`
This proxy sets the value of the alpha variable.

`ParticleSphereProxy` Only used by material "particle\SmokeStack.vmt". Seems to be defined in `particle_proxies.cpp`. Valve remark: "FIXME: Is this even needed any more?"

`PlayerLogo` Internal proxy for "decals/playerlogo##" decals. Generates and assigns a texture for a specific player index.

`Shadow` Only used by Shadow(en). No known parameters. This sets lots of material parameters to render projected texture shadows.

`ShadowModel` Only used by ShadowModel(en). No known parameters. This sets lots of material parameters for rendering projected texture shadows.

`ToggleTexture` Toggles a texture based on the frame number set by env_texturetoggle(en). Must be attached to an entity.

`toggleTextureVar`
Texture to modify based on frames.
`toggleTextureFrameNumVar`
Variable used for frame number.
`toggleShouldWrap`
Whether the animation should wrap over not.

`Empty` Se usa para proxies externos. Un conjunto de proxies con el proxy vacío hace que no funcionen.

`Dummy` Emite mensajes `developer` en respuesta al proxy creado, iniciado, vinculado a una entidad y eliminado.

## Misceláneo

`ConVar Template:L4D add` Te permite vincular una variable específica a un ConVar que el cliente haya establecido.

`convar`
El nombre del ConVar al que vincular. (por ejemplo «mat_specular»)
Nota:Strings will not be parsed through, the value of the ConVar must be a number.
`resultVar`
Devuelve el valor del ConVar. Si es de tipo vector, todos los ejes se establecerán individualmente con el valor del ConVar.

## Específicos de juegos

### Half-Life 2

`EntityOriginAlyx` Identical to EntityOrigin with an x offset of 15. Created as a last-minute hack before The Orange Box shipped.

`Ep1IntroVortRefract` Uses `\$refractamount` to generate a ratio and sends it to the same variable, not using `resultVar`. Created as a last-minute hack before The Orange Box shipped.

`VortEmissive` Sets `\$emissiveblendstrength` and `\$detailblendfactor` to apply the Vortigaunt's blue-purple glow effects in Episode 1's opening.

`Shield` Likely intended to be used for one of the Combine shield types. This is equivalent to a combination of the TextureScroll and Alpha proxies.

`\$translucency`
This variable is set to the Render Alpha value of the attached entity, similar to the Alpha proxy.
`textureScrollVar`
`textureScrollRate`
`textureScrollAngle`
Has identical functionality to the TextureScroll proxy.

### Team Fortress 2

`invis` Funciona con \$cloakPassEnabled(en) activado. Compatible con ambos modelos en primera y tercera persona. Sin color del equipo.

`spy_invis` Funciona con \$cloakPassEnabled activado. Usado con materiales del jugador. Sin parámetros. Usa el color del equipo del jugador por defecto. Incompatible con \$weapon_invis y \$vm_invis.

`weapon_invis` Funciona con \$cloakPassEnabled activado. Usado con materiales de las armas. Sin parámetros. Incompatible con \$spy_invis y \$vm_invis.

`vm_invis` Funciona con \$cloakPassEnabled activado. Usado con materiales del jugador y las armas. Sin parámetros. Incompatible con \$spy_invis y \$weapon_invis.

`building_invis` Sin uso, iba a ser para construcciones que se pudiera hacer invisibles.

`CommunityWeapon` Pasa el valor 1 al marcarse de Calidad de la Comunidad. De otro modo, sería 0.

`resultVar`

`InvulnLevel` Pasa de un valor flotante para establecer la opacidad de su efecto de invulnerabilidad cuando un jugador tiene Supercarga.

`resultVar`

`BurnLevel` Pasa de un valor flotante para establecer la opacidad de su efecto de fuego cuando un jugador está ardiendo.

`resultVar`

`YellowLevel` Pasa a un valor RGB cuando se usa el Fraskungfú en un jugador.

`resultVar`

`ModelGlowColor` Al activarse, pasa un código para crear efecto de críticos. El color es del equipo. Si está desactivado el valor es blanco (255 255 255).

`resultVar`

`ItemTintColor` Pasa a un valor RGB cuando se usa un bote de pintura. El valor especificado corresponde a la pintura. Pasa a 0 si no se usa.

`resultVar`

`BuildingRescueLevel` Pasa a transformar la matriz de la amplitud del campo de la Rescatadora.

`resultVar`

`TeamTexture` Cambia el marco de animación de las texturas según el equipo.

`resultVar`

`AnimatedWeaponSheen` Realiza el efecto de cuentarrachas.

`animatedtexturevar`
`animatedtextureframenumvar`
`animatedtextureframerate`

`WeaponSkin` [Pendiente]

`ShieldFalloff` Hace el escudo de la carga del Vacunador.

`StatTrakIllum` [Pendiente]

`StatTrakDigit` [Pendiente]

`StatTrakIcon` [Pendiente]

`StickybombGlowColor` Al activarse, crea el efecto de selección de la Resistencia Escocesa. El color varía según el equipo.

`resultVar`

`SniperRifleCharge` Varía la carga del Rifle de Francotirador entre 0 y 1.

`resultVar`

`Heartbeat` [Pendiente]

`WheatlyEyeGlow` Intensifica los colores con el desenfoque gaussiano. Se usa con el Ap-Zap.

`resultVar`

`BenefactorLevel` Se usa para escalar el latido según el número de regalos entregados por el jugador. En ella 1 es el máximo y el factor aumenta cuantos más regalos se hagan.

`resultVar`

`PlayerTeam` Returns a value depending on the team the player is currently in.

`team`
Unknown
`resultVar`
0 = survivor / 1 = infected / 2 = spectator

`BloodyHands` Returns a value between 0 and 1 depending on the number of hits with a melee weapon.

`resultVar`
number of hits / 5
doesn't go over 1 after 5 hits
value is shared between world and view model

`IT` Returns a value between 0 and 1 depending on the fact that the survivor is covered in Boomer bile.

`resultVar`
1 = fully covered / 0 = not covered

`BurnLevel` Passes a float value to set the opacity of the fire overlay effect when an infected has been burned.

`resultVar`
1 = on fire / 0 = not on fire

`BBQLevel` Seen in materials\models\infected\hulk\hulk_01.vmt

`resultVar`

### Alien Swarm

`NightVisionSelfIllum` When the player has a night vision effect or sniper scope active, outputs a strength to modulate selfillumination on objects.

`resultVar`
The value to change. Generally set to `\$selfillumtint`.
`asw_night_vision_self_illum_multiplier`
This ConVar specifies the value output when night vision is on at full strength.
`asw_sniper_scope_self_illum_multiplier`
This ConVar specifies the value output when the sniper scope is active.

`AlienSurfaceFX` Sets the \$detail(en) texture and parameters to display fire, freezing and electrical shock effects.

`texturescrollvar`
Set to the name of the matrix or transform variable that shifts the detail texture, usually `\$detailtexturetransform`.

### Portal 1 and 2

`PortalOpenAmount` On portals, transitions from 0 to 1 as the portal opens.

`resultVar`

`PortalStatic` On portals, specifies how much the opaque static effect should render. 1 is a unpaired portal, 0 is an open portal.

`resultVar`

### Portal 2 only

`FizzlerVortex` Sets various parameters used by the SolidEnergy(en) shader for fizzler(en) effects - the location of nearby objects, flashing from portal shots, and power transition times. Doesn't take any arguments.

`\$powerup`
Transitions to 0 when the fizzler is turned off, 1 when turned on.
`\$FLOW_VORTEX1`
Set to 1 when an object is brought near the field, otherwise set to 0.
`\$FLOW_VORTEX_POS1`
Set to the position of the first object.
`\$FLOW_VORTEX2`
Set to 1 when a second object is brought near the field, otherwise set to 0.
`\$FLOW_VORTEX_POS2`
Set to the position of the second object.
Pendiente: What parameter does the portal shot flash set?

`WheatlyEyeGlow`

Presumably controls the glow effect on Wheatley. Not actually used.
Pendiente: Does this do anything? Seems to have been replaced by Lightedmouth.

`Lightedmouth` Used on the various Personality Cores(en) and PoTaTOS to blink their eye-light in sync with their choreo scenes. When idle, the tint is still partially lit. On the viewmodel, it can also be manually controlled via VScript to make GLaDOS appear to shut down.

`resultVar`
A tint to pass to `\$selfillumtint`.

`LightedFloorButton` Used on the clean Super Button materials, sets \$selfillumtint to 1 if the material is being used on a `prop_floor_button`, otherwise sets it to 0. This has no real benefit and just causes the model to appear incorrectly when used on other entities, it was presumably a beta leftover.

`resultVar`
The tint to use, or `[0 0 0]` if not on a button.

`TractorBeam` Used on the Excursion Funnel(en) effect materials, outputs the scroll rate and does other unknown operations.

`resultVar`
Passed to the `textureScrollRate` parameter of various TextureScroll proxies.

### Black Mesa

`TauCharge` Seen in materials\models\weapons\v_gauss\v_taucannon_core.vmt

`resultVar`

### Counter-Strike: Global Offensive

`Select` Picks a result value depending on the input value, like a switch statement(en).

`srcVar1`
`resultVar`
`default`
The default return value if the value of `srcVar1` does not match any case.
`<case>`
The return value if the value of `srcVar1` has the value `<case>`. There can be multiple cases.

Example from `materials\models\inventory_items\dogtags\dogtags_lightray.vmt`:

```"srcVar1"   "\$localTeamNumber"
"resultVar" "\$color"
"default"   "[0.680 0.680 0.680]"
"2"         "[0.680 0.544 0.136]"
"3"         "[0.269 0.474 0.680]"
```
Pendiente: Works for other case types? Other games?

`GetTeamNumber` Gets the team of an entity. Seen in `materials\models\inventory_items\dogtags\dogtags_lightray.vmt`.

`resultVar`
Returns an integer.
• 0: Unassigned
• 1: Spectator
• 2: Terrorist
• 3: Counter-Terrorist
Pendiente: Other games?

`survivalteammate` Used to paint the teammate in . Seen in `materials\models\player\custom_player\econ\body\tm_jumpsuit\jumpsuit_body.vmt`

`resultVar`
Returns 1 if the local player is the teammate of the player that the material is applied to and 0 if not.
Pendiente: Only works in Danger Zone?

`RemapValClamp` Remaps a variable within the specified ranges.

`range_in_min`
`range_in_max`
`range_out_min`
`range_out_max`
`srcVar1`
`resultVar`