Exakt. Die haben das damit gelöst. Sieht dann etwa so aus:
Code:
Begin StreicherMusikSkript
Float Timer
	Set Timer To ( Timer + GetSecondsPassed )
	If ( Timer < 1 )
		; "MeinVerzeichnis" liegt hier: Data Files\Music\MeinVerzeichnis
		StreamMusic "MeinVerzeichnis\MeinSong.mp3"
	EndIf

	If ( Timer >= 188 )
		Set Timer To 0
		Return
	EndIf
	If (CellChanged == 1)
		Set Timer To 0
	EndIf

End StreicherMusikSkript
StreamMusic würgt den aktuell gespielten Song ab und startet den angegebenen Track. Da nach dessen Ende ein neuer Zufallssong kommt, startet das Skript den Song nach dessen Laufzeit (hier 188 Sekunden) neu. Das Skript muß auf einem Activator in der Zelle laufen.

Entsprechend müßtest du in der Außenwelt ein anderes Skript auf einen Activator packen, der wieder ein Zufallslied startet. Müßte in etwa so aussehen:
Code:
Begin StreicherMusikResetSkript
	If ( CellChanged == 1 )
		StreamMusic Explore 
	EndIf
End StreicherMusikSkript
Wobei...das wird wahrscheinlich auch dann getriggert, wenn die Zelle von anderswo her geladen wird. Das könnte man über eine eigens dafür angelegte globale Variable vermeiden. Nennen wir sie mal StreicherMusicPlaying, Typ Integer.
Code:
Begin StreicherMusikSkript
Float Timer
	Set Timer To ( Timer + GetSecondsPassed )
	If ( Timer < 1 )
		StreamMusic "VerzeichnisImMusicFolder\MeinSong.mp3"
		Set StreicherMusicPlaying to 1
	EndIf

	If ( Timer >= 188 )
		Set Timer To 0
		Return
	EndIf
	If (CellChanged == 1)
		Set Timer To 0
	EndIf

End StreicherMusikSkript
Code:
Begin StreicherMusikResetSkript
	If ( CellChanged == 1 )
		If ( StreicherMusicPlaying == 1)
			StreamMusic Explore 
		EndIf
	EndIf
End StreicherMusikSkript
Das ist jetzt alles reine Theorie...ausprobieren mußt du selber.