I may have my old flashlight mutator hanging around on one of my old computers or harddrives. I'll either post it, or the code, or both. I had made a simple 'mini-maglight' mesh for the flashlight and it used the Inventory item system (so it could be activated while holding a weapon and turned on and off after binding a key to the Inventory activate command) so it appeared in the player model's hand along with the weapon.
As for the lighting effect, it can be kind of tricky and I remember experimenting with several different combinations of dynamic lights and
projectors (with various textures). The final flashlight effect I use now for my mod involves one dynamic light (actually just a subclass of 'effects' with bDynamicLight=true) placed several UnrealUnits back from whatever wall/object a 'trace' hits (using the distance from the flashlight to scale the light radius and inversely, brightness as I recall), and two projectors; one projector with one texture for BSP/terrain, and another projector (with slightly different texture) for staticmeshes and skeletal mesh actors (by altering the various bProject* default properties). I found that certain light spot textures and FrameBufferBlendingOp settings worked better on BSP and Terrain, and other settings worked better on SMs and SkeletalMeshes.
[edit] depending on the texture used for the projector, they can definitely gray-out (or really any color used) or overpower the underlying texture color. I never did find a satisfying mixture of projector
blend modes that appeared to just "lighten" the underlying triangle's texture. Since lights only affect the vertices of StaticMeshes, you kind of had to use projectors to simulate the flashlight otherwise the effect simply would not work (especially on larger SMs where the vertices were any more than 16-48 UUs apart).
You might be able to use a DynamicLight with the LightEffect set to LE_Spotlight, but I seem to recall that it could easily cause crashes in UT2Kx engine because, unlike the old UT99 engine, the light could 'touch' some many more triangles (static meshes etc) that it eats too much memory or something and kills the game engine. Dynamically moving Projectors are pretty intensive too (they duplicate every triangle they project on, and crop themselves too, and apply the projector texture) but seem to work better.