Lighting in CrystalSpace is complex. It depends on many factors:
Renderloop: Depending on what shaders you use you need different renderloops. I have some good information about renderloops on my website on this page:
http://vaalnor.mine.nu/psdoc/?q=node/48Now lights have two types: static or dynamic ( there is also pseudo dynamic in certain renderloops but I don't understand that fully myself ).
Static lights require the lighting to be pre-calculated with a lighter. There is the standard lighter, and the new lighter - lighter2 which is more accurate. If you use the mesh type: genmesh (which you absolutely should) and use the shader std_lighting.xml then lighter2 can do lightmaps on genmeshes. The old lighter only supports lightmaps on thing meshes which are being obsoleted anyways. If you light genmeshes with a standard shader applied with the standard lighter, then the lighting is calculated based on vertex shading. This works great for somewhat complex geometry, but for big flat surfaces is fairly useless. For this reason I favor genmesh + lighter2.
Dynamic lights do not require relighting, and if used in moderation can do some really nice things. Map testing is also quicker as it never requires relighting. Too many has a horrible performance hit though, so you need to be careful.
So whether a light casts a true shadow is dependent on what type of shader is used on a mesh, and in what renderloop. You can also set intensity, as well as influence radius, attenuation, etc. You can also set color, and use ipo for animating them if they are dynamic, including animating a color change.