# engineGetShaders (Client)

> Lists every loaded shader and preset, from packs and scripts.

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

## Syntax

```lua
table engineGetShaders()
```

## Returns

A table of name → info. Each entry has `pass` (`gbuffer` or `forward`), `preset`, `origin` and `owner`. A shader also has `shadingModel`, `domain` (`surface`, `terrain`, `water` or `post`), `depthOffset`, `refraction`, `varyings`, `targets`, `steps` (a post process's steps, each with `name` and `size`), `extends` and `resources`. A preset has `shader`, the shader it is based on.

## Example

```lua
for name, info in pairs(engineGetShaders()) do
    if info.domain == "post" then
        outputDebugString(name .. " (" .. info.owner .. ")")
    end
end
```

## See also

- [engineGetShaderParameters (Client)](https://wiki.mymp.gg/en/engineGetShaderParameters.md): Lists the parameters a shader or preset declares.
- [engineCreateShader (Client)](https://wiki.mymp.gg/en/engineCreateShader.md): Creates a shader from a .shader file or from its source text. The shader compiles in the background.
- [engineCreateMaterial (Client)](https://wiki.mymp.gg/en/engineCreateMaterial.md): Creates a material: a shader with parameter values, which then replaces or overlays the materials of models.
