lighting works in one by not the other?

Hi, trying ot learn lighting (seems perty easy). I look it up in the forum and found this code.

from direct.showbase.DirectObject import DirectObject 
from pandac.PandaModules import * 
import direct.directbase.DirectStart 
import sys 


class World(DirectObject): 
    def __init__(self): 
        render.setShaderAuto() 

        self.staticWorld = loader.loadModel("models/environment") 
        self.staticWorld.setScale(0.25,0.25,0.25)
        self.staticWorld.setPos(-8,42,0)
        self.staticWorld.reparentTo(render) 

        base.camera.setPos(0, -30, 30) 
        base.camera.setHpr(0, -45, 0) 

        self.spot = Spotlight("spot") 
        self.spot.setColor(Vec4(1, 1, 1, 1)) 
        self.lens = PerspectiveLens() 
        self.lens.setFov(40) 
        self.spot.setLens(self.lens) 
        self.spotNP = render.attachNewNode(self.spot) 
        render.setLight(self.spotNP) 
        self.spotNP.setPos(0, 0, 150) 
        self.spotNP.setHpr(0, -130, 0) 

        self.accept("escape", sys.exit) 
        self.accept("p", self.perPixel) 
        self.accept("v", self.perVertex) 

    def perPixel(self): 
        render.setShaderAuto() 
    
    def perVertex(self): 
        render.setShaderOff() 

# Now let's make everything. 
world = World() 

run() 

It seem to work and light up the map. So I took the code and added it to my mine in my game. Making this code:

    def camera(self):
      if self.zone == self.zone:
        base.camera.setPos(0,0,77)
        base.camLens.setFar(50000)
        #self.myFog = Fog("Fog Name")
        #self.myFog.setColor(167,162,154)
        #self.myFog.setExpDensity(.0001)
        #render.setFog(self.myFog)
        base.setBackgroundColor(167,162,154)
        render.setShaderAuto() 
        self.spot = Spotlight("spot")
        self.spot.setColor(Vec4(1, 1, 1, 1)) 
        self.lens = PerspectiveLens() 
        self.lens.setFov(40) 
        self.spot.setLens(self.lens) 
        self.spotNP = render.attachNewNode(self.spot) 
        render.setLight(self.spotNP) 
        self.spotNP.setPos(0, 0, 150) 
        self.spotNP.setHpr(0, -130, 0) 

But for some reason I get this error: self.spot = Spotlight(“spot”)
NameError: global name ‘Spotlight’ is not defined

Werid thing is, fog is the same way for setting the name up like that too and it works jsut fine.

Why this?

It means exactly what it says: you forgot to import the Spotlight class.
Add this near your includes:

from pandac.PandaModules import Spotlight

Alright thanks, that seems to work… actully what happen was- I misstake and put a # by from pandac.PandaModules import * lmao.