With this function you can create a simple effect beneath all instances of your room (it is actually created at a depth of 100000). If the effect is anything other ef_rain or ef_snow then you can define an x/y position to create the effect, and the size can be a value of 0, 1, or 2, where 0 is small, 1 is medium and 2 is large.
It is worth noting that these effects can have their drawing toggled on and off, as well as have their drawing paused, by using the functions part_system_automatic_draw and part_system_automatic_update with the appropriate value for the particle system index (where 0 is for effects below and 1 is for effects above).
effect_create_below(kind, x, y, size, colour);
|kind||The kind of effect (use one of the constants listed here).|
|x||The x positioning of the effect if relevant.|
|y||The y positioning of the effect if relevant.|
|size||The size of the effect.|
|colour||The colour of the effect.|
if speed > 0
effect_create_below(ef_smoke, x, y, 0, c_gray);
The above code will create a small puff of gray smoke every step that the instance speed is greater than 0 at the instance x,y coordinates.