Running out of Shader Keywords
This page used to describe a real constraint. On the Unity versions this asset supports it is not one anymore, and there is nothing you need to do about it.
The current limits
Section titled “The current limits”Unity allows more than four billion global keywords, and up to 65,534 local keywords per shader. The old ceilings, a couple of hundred global and 64 local, are what used to make a keyword heavy asset a problem in a keyword heavy project. They are gone.
One number is still worth knowing: a shader that uses more than 128 keywords pays a small runtime cost.
How many this asset uses
Section titled “How many this asset uses”The shader declares 67 keywords, covering the three shapes and every effect. Unity then adds its own on top, from multi_compile directives for things like fog, GPU instancing and particle streams, plus the four it always reserves, so the real figure per shader is higher than 67 and still under the line.
Why that no longer matters
Section titled “Why that no longer matters”Of those 67, 64 are local keywords, which scopes them to the shader and means they are set per material rather than project wide. They do not touch the global budget at all, so no number of All In 1 Vfx materials in your project can use it up. Three are still declared globally, which is harmless against a limit measured in billions.
Older versions of this page asked you to open the shaders and replace shader_feature with shader_feature_local by hand. Do not do that. The conversion already shipped, and the Lit shader is regenerated automatically whenever the Unity version or render pipeline changes, so edits to it are overwritten.
If you landed here because materials turn invisible or pink in a build
Section titled “If you landed here because materials turn invisible or pink in a build”That is a different problem with a similar smell. It is caused by a shader variant that was never built, not by running out of keywords, and it comes up when effects are toggled by keyword at runtime. See How to Enable/Disable Effects at Runtime.
