Migrate SVQC particle effects to CSQC
Moving particle effects to CSQC whenever possible means they can leverage the existing entity culling to improve FPS, save bandwidth, and remove any cheating potential.
The server doesn't cull particles and it would be relatively expensive for the server to cull them and wouldn't be backwards compatible, see: darkplaces#343
It appears intended that CSQC would be responsible for particle effects, from DP_SV_POINTPARTICLES doc:
this is a port of particle effect features from clientside QC (EXT_CSQC) to server QC, as these effects are potentially useful to all games even if they do not make use of EXT_CSQC
so Xonotic shouldn't be using that ;) see: second video in #2207 (closed)
For items, see !1202 (merged) and !1216 (merged)
There may be edge cases where CSQC is aware of an entity the player can't see and so draws its particles. Culling them in the client generally shouldn't be done, on modern machines it will tend to be more expensive than just letting the GPU draw them and then draw the rest of the world over the top. Also a certain amount of "looseness" is desirable to prevent pop-in.