Xonotic Forums
[NEED HELP] Custom Shader/Material not working ingame - Printable Version

+- Xonotic Forums (https://forums.xonotic.org)
+-- Forum: Creating & Contributing (https://forums.xonotic.org/forumdisplay.php?fid=10)
+--- Forum: Xonotic - Editing and Concept Art (https://forums.xonotic.org/forumdisplay.php?fid=11)
+--- Thread: [NEED HELP] Custom Shader/Material not working ingame (/showthread.php?tid=10148)



Custom Shader/Material not working ingame - Josch - 04-18-2026

Hi all,

I am super new to Xonotic mapping and have an issue with using a custom texture. This is my setup, I tried setting it up with the help of ChatGPT...


/home/josch/Games/Xonotic/data/textures/garden:
 - grass_01.jpg
 - grass_01_normal.jpg


/home/josch/Games/Xonotic/data/scripts:
garden.shader
shaderlist.txt  -> only contains the word "garden"


the garde.shader contains:
textures/garden/grass_01
{
    qer_editorimage textures/garden/grass_01.jpg

    {
        map textures/garden/grass_01.jpg
    }

    normalmap textures/garden/grass_01_normal.jpg
}

In netradiant (working on linux) I see the garden directory in the texturebrowser, but it shows the diffuse AND the normal map. According to ChatGPT a sign of the shader not working.

I can assign the diffuse texture to a brush, but when I go ingame the texture is invisible (not showing at all).

Any help on what I am doing wrong would be highly appreciated Smile
Thansk!


RE: Custom Shader/Material not working ingame - Josch - 04-19-2026

Just in case anyone stumbles over that post. I got support in the discord channel and the solution is that one here:

julius — Yesterday at 11:48 AM
don't put anything related to normal map in the shader
the normal map will be used automatically by the engine if we are talking of DarkPlaces (engine used by Xonotic)
julius — Yesterday at 11:56 AM
a basic lightmapped shader would be this:
textures/garden/grass_01
{
    qer_editorImage textures/garden/grass_01.tga

    {
        map textures/garden/grass_01.tga
        rgbGen identity
    }
    {
        map $lightmap
        rgbGen identity
        blendFunc filter
    }
}