IE, if I wanted the world to be dark for some players, but a script make the world brighter to a specific player, like nightvision, is this possible?
Yes you can use FilteringEnabled and change the lighting on a local script. You can also connect a function to the .Changed event in lighting on both client and server side and change the settings in that (however this is EXTREMELY bad code practice, please use FilteringEnabled instead).
I think that it's hard to understand magnalite's answer. This is would I would of done. There is this thing called a LocalPart which uses a local script(obviously...). I would use local parts even though it shouldn't be used, but's it's like: remove:destroy::LocalPart:Non-hackish-way-of-making-a-part-visible-to-other-players.
There are 2 ways of making local parts. The first is using a local script and a message.
local msg = Instance.new("Message", game:GetService("Players").LocalPlayer.Character) local part = Instance.new("Part", msg)
2nd way, using the camera.
local part = Instance.new("Part", workspace.Camera) --LocalScript
All you need is to edit the position, size, and everything you would do to a normal part made by a normal script. Remember to add the light into it, like a point light.
Read all the warnings under the "Caveats" section: Here
Hope this helps!