Extend or change the asset shader
The asset was designed with the most common use cases in mind. This means that the effect order and features have been carefully crafted to cover the most frequent project requirements. However, these carefully designed defaults may not perfectly match your specific project's unique needs. In such cases, you may want to modify a particular effect's implementation, change effect execution order, or add entirely new effects. Let's explore these customization options.
Important Note: Modifying the shader code is an advanced topic that requires shader programming knowledge. Always create complete backups of your project before making any modifications, and be aware that custom changes will need to be manually reapplied when updating the asset.
Before we start, let's cover the basics. The main shader file is located here:

In this file we'll add or change the base properties of the shader that the effects use. You don't need to worry about the other shader variants files since the asset will automatically update them based on the changes made to the base "AllIn13DShader" file. The main shader only defines the shader properties and shader passes, the rest of the code is scattered across these files:

But you only need to know about these: - AllIn13DShader_Features: Shader keywords that define the effects - AllIn13DShader_FragmentEffects: Fragment Shader or Color effects code - AllIn13DShader_AlphaEffects: Alpha or Transparency effects code - AllIn13DShader_VertexEffects: Vertex or Mesh effects code - AllIn13DShader_UVEffects: Uv or Texture Coordinates effects code - AllIn13DShaderCore: Order of the effects
Now that we've covered the basics, let's get into the steps to make custom changes to better match your requirements.
Modify effect implementation
First we'll need to localize the shader keyword of the effect we need to change. Say we want to change the Emission effect code. So we'll go into the Material Inspector, hover the mouse over the effect and we'll get the shader keyword name (the name of the effect in code):

Alternatively, you can also enter the main shader and look for "Hue", there you'll find the Keyword name in the [Toogle(SHADER KEYWORD)]:

Once you have that, open the relevant effects file. In this case, since it's a color effect, we'll open "AllIn13DShader_FragmentEffects" and look for the shader keyword "_HUE_SHIFT_ON" and we'll find:

And if we Ctrl+Click on the HueShift method or Ctrl+Shift+F "HueShift(" we'll find the effect implementation that we can change however we want:

Important note: Some few effects implementations are not located in any of the "Effects" files. If you can't find the code for them, a sure way to find the implementation code is to search for the effect shader keyword across the whole project. For example "_EMISSION_ON" code is in the BasePass file, but searching for the keyword we can find the code. See image below

Change the effect order
Just like before, we'll first locate the shader keyword, once we have it, we'll go into the "AllIn13DShaderCore" file. If we search again for the Hue effect shader keyword we'll find it here:

To change the order of the effect we just need to move this block or code up or down. For example if we want the Hue Shift to happen after the Contrast And Brightness effect, we'll move it to after the current line 391.
Add a new effect
The easiest way to add a new effect is to find a similar one and repicate what it's doing. Since we are using Hue Shift as an example let's make a new test color effect called "Color Tint Sine" that will do a tint animation using a sine wave. Probably a terrible effect, but let's do it for teaching purposes.
1.Let's start at the base "AllIn13DShader" file, look for the Hue Shift reference we are using and add the properties for our new effect:

Here I copied the whole Hue Shift block and started renaming and tweaking the properties to match the new effect requirements.
2.Next step is to declare the shader keyword. To do so we'll go into "AllIn13DShader_Features" and create the new shader keword that we already defined in step 1 (inside the [Toggle(SHADER KEYWORD)]:

3.Declare the shader properties so that the effect code can use them. To do so we scroll down in the AllIn13DShader_Features file, find how Hue Shift is doing it and replicate it with our new properties:

Note how we'll use DECLARE_PROPERTY_FLOAT if it's a regular float and DECLARE_PROPERTY_FLOAT4 if it's a color and that you'll need to add a DECLARE_TEX2D further down if you also need a texture. See how effects with textures do it.
4.Finally we add the effect code. As we saw in Modify effect implementation we'll go to "AllIn13DShader_FragmentEffects", search again for the shader keyword "_HUE_SHIFT_ON" (the effect we are using as a template) and add the effect logic below like this:

This implementation is just an example. With these knowledge and using other effects as a template I'm sure you'll able to create any effect you wish. Also using ChatGPT or Claude may be helpful to you in this process since these tools are very good at following patterns to generate new content and code.
If you add a few more effects you may run into issues due to Unity shader keywords restrictions: https://docs.unity3d.com/2021.3/Documentation/Manual/shader-keywords.html If that happens, the best solution is to remove some excess keywords from effects you aren't using from "AllIn13DShader_Features". By removing the keywords and the properties in "AllIn13DShader" you should be good to go, no need to remove the rest of the code, although you are welcome to do so.
Last updated