Changing the skybox texture

the thread has been made in the past here: http://forum.facepunch.com/showthread.php?t=1076425
but, the code that was given as the answer isn’t working for me.


local SourceSkyname = GetConVar("sv_skyname"):GetString() --We need the source of the maps original skybox texture so we can manipulate it.
local SourceSkyPre  = {"lf","ft","rt","bk","dn","up",}
local SourceSkyMat  = {
    Material("skybox/"..SourceSkyname.."lf"),
    Material("skybox/"..SourceSkyname.."ft"),
    Material("skybox/"..SourceSkyname.."rt"),
    Material("skybox/"..SourceSkyname.."bk"),
    Material("skybox/"..SourceSkyname.."dn"),
    Material("skybox/"..SourceSkyname.."up"),
}
 
function ChangeSkybox(skyboxname)
    for i = 1,6 do
        local D = Material("skybox/"..skyboxname..SourceSkyPre*):GetMaterialTexture("skybox/sky_borealis")
        SourceSkyMat*:SetMaterialTexture("skybox/sky_borealis",D)
    end
end

this does not change the skybox to sky_borealis

Probably because SetMaterialTexture doesn’t exist anymore. I think it was replaced by SetTexture.


Material(<string>):SetTexture("$basetexture",<texturestring>)

IMaterial:SetTexture

Read what the stuff in <> says and replace it…

Yes, I did that


Material("painted"):SetTexture("$basetexture","sky_day01_09") -- also tried skybox/sky_day01_09

Oh, btw, the error for that is:


function Example()
local SourceSkyname = GetConVar("sv_skyname"):GetString() --We need the source of the maps original skybox texture so we can manipulate it.
local SourceSkyPre  = {"lf","ft","rt","bk","dn","up",}
local SourceSkyMat  = {
    Material("skybox/"..SourceSkyname.."lf"),
    Material("skybox/"..SourceSkyname.."ft"),
    Material("skybox/"..SourceSkyname.."rt"),
    Material("skybox/"..SourceSkyname.."bk"),
    Material("skybox/"..SourceSkyname.."dn"),
    Material("skybox/"..SourceSkyname.."up"),
}
    for i = 1,6 do
		local D = Material("skybox/"..SourceSkyname..SourceSkyPre*):GetTexture("$basetexture")
        SourceSkyMat*:SetTexture("$basetexture", "skybox/sky_day01_09")
    end
end

This is what I have so far, no errors, but it’s not working

The second argument to SetTexture is a texture, not a string. You made the variable D which returns the texture you’re trying to get but you still have skybox/sky_day01_09 as a string in the SetTexture

Even if I do


SourceSkyMat*:SetTexture("$basetexture", D)

It doesn’t work. The reason it was like that was that I did countless edits on it.

:snip: I was wrong and dumb