# engineGetShaderSwitches (Client)

> Lists the static switches (`bool` parameters) of a shader or preset, with each one's default.

- **Platform**: MY Multiplayer (MYMP)
- **Kind**: Lua Function
- **Side**: Client
- **Category**: Materials and shaders
- **URL**: https://wiki.mymp.gg/en/engineGetShaderSwitches

## Syntax

```lua
table engineGetShaderSwitches(string|shader shader)
```

## Parameters

| Name | Type | Description |
| --- | --- | --- |
| `shader` | `string\|shader` | The name of a shader or preset, or a `shader` element. |

## Returns

A table of switch name → `true` or `false`.

## Example

```lua
for name, default in pairs(engineGetShaderSwitches("surface")) do
    outputDebugString(name .. " = " .. tostring(default))
end
```

### Note

A name that is neither a shader nor a preset is an error.

## See also

- [engineGetMaterialSwitches (Client)](https://wiki.mymp.gg/en/engineGetMaterialSwitches.md): Lists the static switches of a material's shader, with the value each one has in it.
- [engineGetShaderParameters (Client)](https://wiki.mymp.gg/en/engineGetShaderParameters.md): Lists the parameters a shader or preset declares.
- [engineSetMaterialValue (Client)](https://wiki.mymp.gg/en/engineSetMaterialValue.md): Sets a material's value: a shader parameter, a static switch or the render target of a TARGET_n output.
