Lag generator is any object/npc/monster which substantially affects game performance while active. Typical source of lag:
1.Particle swarms: spell or effect generating lots of particles.
Solution: reduce the lifetime or quantity of particles.

2.Multiplying particle/objects: e.g. spell that doubles/splits/multiplies projectiles.
e.g.lightning splits on impact with monster.
Solution:hard cap on number of projectiles/particles emitted by single source.

3.Screen-size effects: effects applied to entire screen(color, position,morph,motion) introduce extra load while all objects on screen are modified.
e.g.add debuff effects to 200 monsters at once.
Solution: localize effects that demand full screen graphics changes to a smaller radius or just replace them with something more manageable(e.g. avoiding animating the effects).

4.Sound generator overload: event in game introduce numerous sounds which play at once.
Solution:set priorities for sound sources, and only display the top N sounds at once.

5.Physics loop: physical effect continues in a loop due terrain or positioning.
E.g. monsters bouncing stuck between two objects rapidly.
Solution:limit physics effects/collisions to specific time, allow to move through.

6.Load delays: textures/models aren't preloaded before use and are loaded during gameplay.
Solution:pre-load the assets before player enters the level.

7.Desync repair: client desyncs repeatedly and tries to revert to older state.
Solution: Desync revert should be avoided and server data loaded as is: client only interprets the server data and builds the scene around it.