I would like to spawn in some enemies in the “Workspace” when no one is looking at their spawn location.
I am already aware of the “WorldToScreenPoint” method, but that’s only do-able in the client, I can’t have each client tell the server whether or not they can see the objects with said method because of latency.
Are there any ways to check if an object is visible to the player directly from the server? Preferably at a minimal performance cost.
You could do a whole bunch of calculations on where the player is facing, and if the character is facing that spawn location. Keep in mind, FACING not LOOKING AT. Looking at would be with the camera, so you would have to lock their camera to first person if you wanted them not to be able to look at the object with the camera, but fully turn their character towards it. If you wanted them to be able to zoom out, you’d have to use WorldToScreenPoint and have the server and client(s) constantly communicating.
There are many posts about this subject you posted about ( or similar to ) here are some;