Actually the defineParticleSystem part does not necessarily need to be in materials.lua, it could as well be in other .lua files that get called before the dungeon is loaded. But you should keep them in one place to find them again
I copied the structure from the original asset pack:
init.lua -> added the line import "particles.lua"
created a new script: particles.lua -> this just imports a single script for each particle system placed in a seperate folde, for example:
import "mod_assets/particles/laser.lua"
import "mod_assets/particles/smoke.lua"
import "mod_assets/particles/steam.lua"
where laser, smoke ans steam are individual particle systems or particle groups if you will. I hope that is not confusing more than it is helping , but I think that is a nice way of organizing your particles.