couple things..
first Trigger Once won't work on loops like that.
second, are you using Visible as "visible on the screen"? because all objects are visible until you make them not visible. You probably want to use Is On Screen instead.
third, Play At Object is bugged and produces a weird static sometimes so I suggest using Play and set the volume dB depending on how far away the player is with: -(distance(Magma.X,Magma.Y,Player.X,Player.Y) / 50)
also I would suggest running all your magma sounds through one tag "Magma" and then On Start of Layout add a Compressor effect to "Magma" (use default settings is fine) this way they will never clip, like if you were close to a lot of them at once.
Also think about adding a small pitch variance after each one: tag: "" Playback rate: random(0.98,1.03) this range might be to be widened depending on the sound.
also make sure you use "" for tag and not your actual tag name since this will only change the last played sound and not all sounds for "Magma"