# godot-shaders: a free shader library that is mid-port to Godot 4

> GDQuest's godot-shaders repository collects 2D, 3D and screen-space shaders with playable demo scenes. The README warns that the project is still being ported to Godot 4, and the only tagged release is the archived Godot 3 set.

**gdquest-demos/godot-shaders** — A large library of free and open-source shaders for the Godot game engine. Here, you'll get 2D and 3D shaders with playable demos.

- Repository: https://github.com/gdquest-demos/godot-shaders
- Stars: 4,144 · Forks: 241
- Language: GDShader
- License: NOASSERTION
- Published: 2026-09-23 · Updated: 2026-09-23 · Language: en
- Canonical page: https://hysenlabs.com/projects/gdquest-demos-godot-shaders

## What godot-shaders actually gives you

This is a reference library of shader source files plus demo scenes, not an addon you install into a project. The README lists the contents in three groups. The 3D group includes 3D dissolve, 3D outline, 3D shockwave, a stylized fire family, an advanced toon shader, force field, stencil mask (described as an impossible cube), stylized bottled liquid, interactive snow, unlit directional tint, texture mixing methods, a stylized waterfall and a spherical mask, plus something the README calls a particle bridge for process to canvas_item and spatial communication. The 2D group covers baked-in-texture glow control, noise-based clouds that cast shadows over the game world, dissolve, glow, outline, palette swap, reflection, two water shaders (one for side-scrolling, one top-down), and an x-ray masking effect. A third group, screen shaders, holds Gaussian blur, inverted colors, pointilism and a 2D shockwave screen distortion. The intended reader is someone who already knows what a shader is and wants working Godot Shader Language code to read and modify. If you are looking for a packaged effect you can drop in without opening the source, this is the wrong shape of project.

## How the repository is laid out and how the code flows

The top level holds .gitignore, LICENSE, README.md, and two directories: godot/ and img/. Inside the Godot project, the README points to three folders. Shader files live in Shaders/. Demo scenes live in Demos/, and the README states that most shaders come with one. A third folder, Intro/, contains an intro animation to the shader pipeline used in GDQuest's course. The practical consequence of this split is that the shader source and the scene that exercises it are separate files: you read the .gdshader to understand the math, then open the matching scene to see which uniforms are wired up, what textures are assigned, and how parameters move over time. The repository's primary language is listed as GDShader, which matches the file-per-effect layout. There is no plugin manifest, no autoload, and no runtime component described in the README, so nothing here runs on its own; the demos are the only executable part of the project.

## Installing godot-shaders and opening your first demo

There is no package to install. The README says you can find the shaders in the Shaders/ directory and the demos in the Demos/ directory, which means you clone the repository and open the Godot project folder that sits at the top level. The README's warning applies before anything else: the project is in the process of being ported to Godot 4, and a working Godot 3 copy is only available from the last Godot 3 release, tagged 1.0.0. Clone the repository first.

```bash
git clone https://github.com/gdquest-demos/godot-shaders.git
```

If you are on Godot 3, the README directs you to the release page for tag 1.0.0 instead of the default branch, because the branch is being converted. If you are on Godot 4, open the project folder in the editor and expect some demos to be mid-conversion; the README links issue 53, titled "Tracker and guide: Update to Godot 4.3", as the place where that work is tracked. Once the project is open, browse to Demos/ and open a scene, for example one of the 2D water demos. To reuse an effect in your own project, copy the shader file from Shaders/ into your project and assign it as a ShaderMaterial on the node you want to affect, then copy the uniform values from the demo's material inspector. The README does not document a step-by-step import path beyond the directory locations, so the demo scene is your reference for wiring.

## The Godot 3 to Godot 4 port is the main limitation

The first thing in the README is a warning banner, and it is the most important fact about the project. The repository is in the middle of a port to Godot 4, and the only tagged release, 1.0.0, is explicitly labelled as the Godot 3 shaders and archived. That means the default branch is a moving target, and there is no release you can pin to for Godot 4. The last push to the repository was on 2026-05-16, so work has happened, but the README still describes the port as in progress and points contributors at issue 53. For anyone evaluating this as a dependency, the practical failure mode is a shader that compiles in the demo but breaks in your project because it was written against the Godot 3 pipeline and has not been converted yet. The README does not document which of the listed shaders are already ported and which are not, so the list of names above is not a compatibility guarantee. Treat every shader as unverified until you open its demo in your engine version.

## Where godot-shaders is the wrong tool

This library will not help you if you need a supported, versioned dependency. The licence is reported as NOASSERTION, and the README does not spell out terms, so if your project has licence review requirements you have to read the LICENSE file yourself rather than rely on the repository metadata. It is also a poor fit if you want a curated, tested set of effects with a compatibility matrix: the README gives a flat list of names with no per-shader status, and the port tracker lives in an issue rather than in the documentation. Finally, the repository is a teaching artefact tied to a paid course, Godot Shader Secrets, and the README frames the free shaders as part of that course's material. If you want a library whose maintainers commit to API stability, look elsewhere; if you want to learn how a dissolve, a force field or a palette swap is written in Godot Shader Language, the source is right there and the demos are runnable.

## Alternatives and how the approach differs

The obvious alternative is writing the shader yourself from the Godot Shader Language documentation, which is the reference the engine ships. The difference is scope: the engine docs explain the language and the built-in functions, while godot-shaders gives you a finished effect with a demo scene showing the uniforms and the node setup. If you already know the language and only need a specific effect, the docs plus a blank shader file may be faster than reading someone else's code. The reverse case is a beginner who does not yet know what a fragment function looks like in practice: a working dissolve shader with a demo is more useful than a syntax reference. A second alternative is a general shader collection for another engine, ported by hand. That is a real option because the README itself notes that the stylized fire was adapted from a Unity tutorial by @minionsart, which shows the technique transfers across engines with rewriting. What you lose in that route is the Godot-specific plumbing: the demo scenes, the node types and the uniform names that this repository already sets up for you.

## Maintenance, upgrades and licence questions

The last push to the default branch was on 2026-05-16, and the README still carries the port warning, so the repository is being worked on but the Godot 4 conversion is not finished. Upgrading means tracking issue 53 rather than bumping a version number, because there is no Godot 4 release to bump to. If you vendor shader files into your own project, you own the upgrade cost: you re-read the shader against your engine version and re-copy it when the repository changes. On licensing, the repository metadata reports NOASSERTION, which is not a licence statement, and the README does not describe terms for reuse. The README does credit @minionsart for the stylized fire adaptation, which is the kind of provenance detail you want to check before shipping an effect in a commercial build. Read the LICENSE file in the repository root before you redistribute anything from Shaders/ or Demos/, and treat the NOASSERTION label as a reason to look rather than a reason to assume.

## Conclusion

Adopt godot-shaders if you want readable reference shaders to study or adapt inside a Godot 4 project and you are willing to check each demo against your engine version, since the README states the port is in progress. Do not adopt it if you need a stable, versioned dependency for a shipping title: the only tagged release is 1.0.0, the archived Godot 3 set, and the repository carries no versioning scheme for the in-progress Godot 4 work. Before you copy anything, open the demo scene that ships with the shader and confirm it renders as expected in your Godot build, then read the shader source for hardcoded texture paths and uniform defaults.

## FAQ

### How do I use godot-shaders in my own project?

Clone the repository and open the Godot project it contains, then browse Demos/ to find the scene for the effect you want. To reuse it, copy the shader file from Shaders/ into your project and assign it as a ShaderMaterial, using the demo's material inspector as the reference for uniform values.

### How do I apply godot-shaders to a node?

The README does not describe an application workflow beyond pointing at the Shaders/ and Demos/ directories. The demo scenes are the working example: open one and inspect the material on the node to see how the shader is attached and which uniforms are set.

### What language are godot-shaders written in?

The repository lists its primary language as GDShader, which is Godot's shader language. The shader files live in the Shaders/ directory of the project.

### Which version of Godot do godot-shaders target?

The README warns that the project is in the process of being ported to Godot 4, and the only tagged release, 1.0.0, is the archived Godot 3 shader set. For a working Godot 3 copy the README sends you to that release; for Godot 4 the default branch is the in-progress work.

## Sources

- [gdquest-demos/godot-shaders on GitHub](https://github.com/gdquest-demos/godot-shaders)
- [Issues](https://github.com/gdquest-demos/godot-shaders/issues)
- [README](https://github.com/gdquest-demos/godot-shaders/blob/main/README.md)
- [Releases](https://github.com/gdquest-demos/godot-shaders/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/gdquest-demos-godot-shaders
