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.
1 | local msg = Instance.new( "Message" , game:GetService( "Players" ).LocalPlayer.Character) |
2 | local part = Instance.new( "Part" , msg) |
2nd way, using the camera.
1 | 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!